1. 前提条件
- Windows 已安装 WSL(推荐 Ubuntu 22.04/24.04)。
- 已安装
yt-dlp或youtube-dl(本文使用yt-dlp)。 - Windows 上已安装 v2rayN 并配置 Hysteria2 节点。
- 已知 Windows 本机在局域网中的 IP(非 127.0.0.1)。
2. 创建 Hysteria2 节点
在 Windows 上使用官方脚本创建 Hysteria2 节点:
bash <(wget -qO- https://raw.githubusercontent.com/yonggekkk/sing-box-yg/main/sb.sh)
执行后按照提示完成节点配置。
然后在 v2rayN 中:
- 选中你刚创建的 Hysteria2 节点。
- 勾选“允许来自局域网的连接”(Enable LAN Access)。
3. 获取 Windows IP
在 Windows 命令行执行:
ipconfig
找到你的 IPv4 地址,例如:172.27.112.1。
4. 在 WSL 中设置代理
打开 WSL 终端,设置 ALL_PROXY 环境变量,指向 Windows 上的 v2rayN 节点:
# 假设 Windows IP 为 172.27.112.1,v2rayN Hysteria2 节点端口为 10808
export ALL_PROXY="socks5://172.27.112.1:10808"
注意:这里用的是 SOCKS5 协议,如果 Hysteria2 节点使用 HTTP 或其他协议,请根据实际修改。
测试代理是否生效:
curl --socks5-hostname 172.27.112.1:10808 https://www.google.com
如果能返回 HTML 页面或状态码 200,即代理配置成功。
5. 安装 yt-dlp
在 WSL 中执行:
sudo apt update
sudo apt install -y python3-pip ffmpeg
pip3 install --upgrade yt-dlp
注意:ffmpeg 是为了支持视频转码和合并音视频流。
6. 使用 yt-dlp 下载 YouTube 视频
在 WSL 终端执行:
# 下载单个视频
yt-dlp https://www.youtube.com/watch?v=视频ID
# 下载整个播放列表
yt-dlp -i https://www.youtube.com/playlist?list=播放列表ID
这里 yt-dlp 会自动使用 ALL_PROXY 指定的代理访问 YouTube。
常用参数示例:
# 下载最高画质 mp4 视频
yt-dlp -f "bestvideo+bestaudio" https://www.youtube.com/watch?v=视频ID
# 指定输出文件名
yt-dlp -o "~/Videos/%(title)s.%(ext)s" https://www.youtube.com/watch?v=视频ID
# 下载字幕
yt-dlp --write-sub --sub-lang en https://www.youtube.com/watch?v=视频ID
7. 常见问题
- 代理无效
- 检查 Windows v2rayN 是否开启 LAN 访问。
- WSL 端
ALL_PROXY地址是否正确。
2.下载失败
- 使用
yt-dlp -v URL查看详细日志。 - 检查 YouTube 是否被墙,确保代理生效。
3.视频和音频分离
- yt-dlp 默认可能下载分离流,确保
ffmpeg安装完成以合并视频。
8. 总结
- Windows 上运行 Hysteria2 节点 + v2rayN。
- WSL 中通过
ALL_PROXY使用 Windows IP 访问代理。 - 安装
yt-dlp并下载视频,支持高画质、字幕、播放列表。 - 可用同样方式配置其他需要代理的工具(如 wget、curl、pip 等)。