diff --git a/content/Network-How-email-works-3.md b/content/Network-How-email-works-2.md similarity index 100% rename from content/Network-How-email-works-3.md rename to content/Network-How-email-works-2.md diff --git a/content/about-aria2.md b/content/Network-aria2.md similarity index 98% rename from content/about-aria2.md rename to content/Network-aria2.md index e537773..8d2d46e 100644 --- a/content/about-aria2.md +++ b/content/Network-aria2.md @@ -1,9 +1,9 @@ +++ -title = "乱七八糟:Aria2各平台使用指南" +title = "网络艺术:Aria2使用指南" date = 2025-04-15 [taxonomies] -tags = ["乱七八糟"] +tags = ["网络艺术"] +++ 前言 Aria2是一款开源、跨平台的命令行界面下载管理器,常常被各种下载器软件使用。 @@ -114,4 +114,4 @@ systemctl --user status aria2.service - [aria2-ariang-docker](https://github.com/wahyd4/aria2-ariang-docker) --- -**Done.** \ No newline at end of file +**Done.** diff --git a/content/Network-download-1.md b/content/Network-download-1.md index 45ac104..575d926 100644 --- a/content/Network-download-1.md +++ b/content/Network-download-1.md @@ -1,6 +1,6 @@ +++ title = "网络艺术:下载技术的历史" -date = 2024-02-09 +date = 2025-04-11 [taxonomies] tags = ["Network"] diff --git a/content/Network-zuwang.md b/content/Network-homenet-1.md similarity index 99% rename from content/Network-zuwang.md rename to content/Network-homenet-1.md index db945f0..e0ed39e 100644 --- a/content/Network-zuwang.md +++ b/content/Network-homenet-1.md @@ -1,5 +1,5 @@ +++ -title = "网络艺术:家庭组网方案与设备选购" +title = "家庭组网系列(1):方案与设备选购" date = 2025-01-21 [taxonomies] diff --git a/content/Network-homenet-2.md b/content/Network-homenet-2.md new file mode 100644 index 0000000..982816b --- /dev/null +++ b/content/Network-homenet-2.md @@ -0,0 +1,89 @@ ++++ +title = "家庭组网系列(2):路由器性能测试" +date = 2025-01-22 + +[taxonomies] +tags = ["Network"] ++++ + +前言 本文介绍常用的家庭网络测试方法,包括开源固件和闭源商用设备的测试。 + + +随着Wi-Fi7设备的逐渐普及和家用路由器的性能提升,百元以内的wifi6路由器性价比变得非常高,可以用非常少的预算搭建高速网络;然而即使是同样的方案,各家路由器的实际体验却不一致,因此这里记载一些测试路由器性能的方法。 + +开源固件如OpenWrt,无论是软路由还是硬路由都很方便测试。为了方便测试,我们假设你的网络拓扑为简单的光猫+无线路由器;实际使用中自上而下的,运营商的套餐带宽/限速/QOS,设备的转发性能和网线/网卡的质量都会引起整个网络的波动。 + + +## 性能指标 + +| 指标 | 含义 | +| --------------- | --------------- | +| 吞吐量(Throughput) | 最大数据传输速度 | +| 延迟 / 抖动 | 延迟和波动情况 | +| 转发性能 / pps | 每秒能转发多少数据包 | +| 并发连接数 | 同时建立多少TCP连接 | +| NAT / 防火墙性能 | 打开转发、NAT、规则后的性能 | + +## 带宽 + +带宽,也叫吞吐量,是我们最为关心的一个性能指标之一。 + +理论上1000兆宽带的极限下载速度为125MB每秒,实际上日常生活中少有跑满带宽的使用情况,毕竟商用服务器的带宽成本高,比如B站的视频降码率等等。对于极客玩家来说,内网文件共享,游戏串流,NAS服务和外网多线程下载,BT下载等等需要比较高的带宽性能。以下是一些常见的测试方法: + +开源固件可以使用[iperf3](https://github.com/esnet/iperf)来测试。 + +在路由器A上和设备B上安装iperf3,openwrt为``opkg install iperf3``,随后在A上使用命令``iperf3 -s``开启服务端;在B上使用命令``iperf3 -c ``,即可测试B到A的TCP单线程上传速率(本地带宽),应该和A的物理端口速率相近。若要测试下载速率,``iperf3 -c -R``即可。 + +TCP单线程下载测试示例: +![iperf3.webp](/images/iperf3.webp) + +如果你的路由器为闭源固件,也可以到在线测速站进行简单测试: + +- [测速网:speedtest.cn](https://www.speedtest.cn/) +- [中国科学技术大学测速网站](https://test.ustc.edu.cn/) +- [Netflix运营的fast.com](fast.com) +- [Openspeedtest](https://openspeedtest.com/) +- [Cloudflare测速](https://speed.cloudflare.com/) + +这些网站的测试速度随着节点的不同而有所差异,比如测试节点在北京联通而你是广东电信,会和实际差距较大。当然,还有一个简单权威的方法,就是下载一个Steam上的大型游戏,Steam的节点在任何国家基本都可以跑满。 + +## 延迟与抖动 + +简单的ping命令即可测试延迟,对网络排除故障很有帮助。ping命令是一个广泛使用的命令,在各种系统上都有。 + +使用``ping <目标IP> -c 20``命令进行测试,可以看到min/avg/max三个值,即为最小/平均/最大延迟; + +![ping](/images/ping.webp) + +也可以使用iperf3来测试UDP抖动:使用命令``iperf3 -c -u -b 100M -t 10``,-u表示使用udp,-100M表示使用100兆带宽,可逐渐调高并接近极限性能。 + +![iperf3-udp](/images/iperf3-udp.webp) + +## 转发 + +路由器的CPU作为核心,需要处理外网与内网IP的转发,这种转发能力称为包转发率,通常拿小包的转发率来衡量能力的高低。测试“小包转发能力”其实就是测试 PPS(Packets Per Second)能力,在x86软路由上面这个性能尤为重要,因为无线路由器有硬件级别的加速芯片而软路由没有。 + +> 以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。对于千兆以太网来说,计算方法如下:1,000,000,000bps/8bit/(64+8+12)byte=1,488,095pps,说明:当以太网帧为64byte时,需考虑8byte的帧头和12byte的帧间隙的固定开销。故一个线速的千兆以太网端口在转发64byte包时的包转发率为1.488Mpps + +测试转发性能需要发包-转发-收包三台设备,或者使用环回测试仪。由于iperf3 处于 TCP/UDP 层,包也会变大且加了协议头,测试的结果误差很大,因此不建议用其进行测试小包性能。 + +--- +未完待续。 + + + + + + + + + + + + + + + + + + diff --git a/content/Network-yt-dlp.md b/content/Network-yt-dlp.md new file mode 100644 index 0000000..314fa7d --- /dev/null +++ b/content/Network-yt-dlp.md @@ -0,0 +1,190 @@ ++++ +title = "网络艺术:Yt-dlp使用指南" +date = 2025-04-12 + +[taxonomies] +tags = ["网络艺术"] ++++ + +前言 有时候我们想要视频保存到本地以便离线回看。yt-dlp是一款功能强大的命令行工具,专注于下载视频与音频内容,支持数千个平台,是开源下载工具爱好者的常用选择。 + + + + +## 历史沿革:从 youtube-dl 到 yt-dlp + +- **起源与演进** + `youtube-dl` 由 Ricardo García González 于 **2006 年**创建,最初仅支持 YouTube,随后扩展至其他网站,成为 GitHub 上最受欢迎的开源下载项目之一.项目维护者在 2011 年、2021 年等阶段陆续交替,由 phihag、dstftw 等接手.2020 年,唱片业协会(RIAA)发起 DMCA 要求删除该项目,虽一度被移除,但在公众与 EFF 的推动下于当年 11 月恢复,并促使 GitHub 改进相关策略. + +- **停滞,youtube-dlc → yt-dlp 的诞生** + 随着开发进度放缓,社区于 2020 年衍生出 youtube-dlc 分支,随即在 **2021 年**演变为更活跃的 `yt-dlp` 项目,它继承了 youtube-dl 的核心功能,并引入更多改进,包括更好的格式选择、多线程下载等,迅速在 Linux 发行版中取代 youtube-dl (如 Ubuntu 22.04 之后). + +- **重构与功能拓展** + `yt-dlp` 从 youtube-dlc 完全重构,新增许多 extractor(解析器)、改进配置与默认行为,还扩展了插件系统和兼容性支持. + + +## 各平台安装指南 + +- 通用(Linux/macOS/Windows) + +下载官方最新可执行文件: + +```bash +sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp +sudo chmod a+rx /usr/local/bin/yt-dlp +```` + +更新版本: + +```bash +yt-dlp -U +``` + +- Python Pip 安装 + +```bash +python3 -m pip install -U yt-dlp +``` + +- Linux 发行版仓库 + +各发行版可能提供略滞后的 yt-dlp: + +- Debian / Ubuntu:`sudo apt install yt-dlp` +- Arch / Manjaro:`sudo pacman -S yt-dlp` +- Fedora:`sudo dnf install yt-dlp` 等。 + +- Android(Termux) + +```bash +pkg update && pkg upgrade +pkg install python libexpat openssl ffmpeg +python3 -m pip install -U yt-dlp +``` + +## 常用命令 + +- **下载视频**: + + ```bash + yt-dlp "视频链接" + ``` + +- **提取为 MP3 音频**: + + ```bash + yt-dlp -x --audio-format mp3 "视频链接" + ``` + +- **下载播放列表**: + + ```bash + yt-dlp -i "播放列表链接" + ``` + +- **批量处理(文件或多个 URL)**: + + ```bash + yt-dlp -a urls.txt + ``` + +- **选择格式下载**: + + ```bash + yt-dlp -F "视频链接" # 显示所有格式 + yt-dlp -f 137+140 "链接" # 下载指定视频 + 音频合并 + ``` + +- **自定义输出路径与模板**: + + ```bash + yt-dlp -o '%(title)s by %(uploader)s on %(upload_date)s.%(ext)s' + ``` + +- **日期过滤**: + + ```bash + yt-dlp --dateafter 20230101 --datebefore 20231231 "链接" + ``` + +- **速度限制 / 恢复下载 / 年龄筛选**: + + ```bash + -r 500K # 限速 + -c # 断点续传 + --age-limit 18 # 仅下载适合年龄 ≥18 的视频 + ``` + +- **只输出描述,不下载内容**: + + ```bash + yt-dlp --skip-download "链接" + ``` + +- **下载封面、字幕、缩略图、元数据等**: + + ```bash + --write-thumbnail --write-sub --embed-subs --embed-thumbnail + ``` + +- **使用浏览器 Cookies 下载私密内容**: + + ```bash + --cookies your-cookies.txt + --cookies-from-browser firefox + ``` + +- **并行下载示例(Hacker News 用户提供)**: + + ```bash + yt-dlp --flat-playlist --print id playlist_url | \ + parallel yt-dlp -x --wait-for-video 3 --download-archive archive.txt https://www.youtube.com/watch?v={} + ``` + +- **记录下载历史**: + + ```bash + yt-dlp --download-archive archive.txt "链接" + ``` + +- **配置文件设定默认参数**: + + 在 `~/.config/yt-dlp/config` 文件中添加习惯参数,如下载路径、格式偏好等。 + +- **比如下载B站带字幕视频的命令**: + +``` +yt-dlp "https://www.bilibili.com/video/BVxxxxx" --write-subs --embed-subs --sub-langs all,-live_chat + +--write-subs: 将字幕文件下载为单独文件 (如 .vtt 或 .ass) + +--embed-subs: 将下载的字幕嵌入到视频文件中(如果格式支持) + +--sub-langs all,-live_chat: 下载所有字幕语言,但排除像“弹幕/实时聊天”之类的非标准字幕流 +``` + +--- + +## 进阶技巧 + +- **FFmpeg 合并支持**:若视频与音频分离,需安装 FFmpeg 才能完成合并。 + +- **处理地理限制**:结合 `--proxy` 或 `--geo-bypass` 等选项使用 VPN/代理绕过区域限制。 + +- **应对下载失败(如 403)**: + + ```bash + yt-dlp --rm-cache-dir + ``` + +- **设置 UA、Referer、打印请求头调试**: + + ```bash + --add-headers "User-Agent: ..." --print http_headers + ``` + +- **Stability & 更新问题**:建议避免使用发行版中的旧版本,推荐使用官方可执行或 pip 方法。 + +--- +**Done.** + diff --git a/static/images/iperf3-udp.webp b/static/images/iperf3-udp.webp new file mode 100644 index 0000000..b282804 Binary files /dev/null and b/static/images/iperf3-udp.webp differ diff --git a/static/images/iperf3.webp b/static/images/iperf3.webp new file mode 100644 index 0000000..16ce17a Binary files /dev/null and b/static/images/iperf3.webp differ diff --git a/static/images/ping.webp b/static/images/ping.webp new file mode 100644 index 0000000..a2e0516 Binary files /dev/null and b/static/images/ping.webp differ