提示

返回博客列表

直连被限、地区屏蔽?聊聊下载器里的代理与中转

直连被限、地区屏蔽?聊聊下载器里的代理与中转

有些资源,你本机直连就是下不动:要么速度被掐到几十 KB,要么直接 403,要么提示"你所在地区不可访问"。这时候在下载器里挂个代理/做个中转,往往立竿见影。这篇文章讲清楚代理在下载场景里怎么用、有哪些坑,以及它和"加 referer"绝不是一回事。

代理解决的是什么

  • 限速:单 IP 被限流,换个出口 IP 速度回来;
  • 地区限制:资源只在某国可访问,用当地节点"假装"在当地;
  • 连接被重置:某些网络环境对直连下载不友好,走代理绕开。

注意:代理管的是"从哪个 IP 发请求",而 referer 管的是"我是谁介绍来的"。上一篇讲 referer 是骗服务端来源的,代理是骗网络层位置的,两件事。

在命令行工具里用代理

yt-dlp、aria2 这类都支持:

# HTTP 代理
yt-dlp --proxy http://127.0.0.1:7890 "url"
# SOCKS5
yt-dlp --proxy socks5://127.0.0.1:1080 "url"

aria2 同理:

aria2c --all-proxy=socks5://127.0.0.1:1080 "url"

在自写下载器里用代理

Python 的 requests 直接传 proxies

proxies = {
    'http': 'http://127.0.0.1:7890',
    'https': 'http://127.0.0.1:7890',
}
r = requests.get(url, proxies=proxies, timeout=15)

如果是 SOCKS5,装个 requests[socks] 即可。

进阶:按任务轮换出口

下载一大堆文件时,固定一个代理 IP 也会被限。可以让每个任务随机选一个出口:

import random
pool = ['socks5://127.0.0.1:1080', 'socks5://127.0.0.1:1081', ...]
proxies = {'http': random.choice(pool), 'https': random.choice(pool)}

配合失败重试,单 IP 被封也能自动换下一个。

中转服务器

代理是你本地出去绕一圈;中转则是你搭一台有公网 IP 的服务器,把下载任务放到那台机器上跑,下完再回传给你。好处是服务器带宽通常比家宽猛,适合大文件。

常见问题

Q:代理很慢正常吗? 看代理节点质量和距离,绕路必然有点损,但比被限到几十 KB 强。

Q:为什么挂了代理还是 403? 服务端可能还校验 cookie/referer,代理解决不了这些,得一起配。

Q:免费代理能用吗? 能试,但慢且不稳,敏感账号别用不明代理,有泄露风险。

想亲手试试?用 VidDown 一键解析下载

粘贴视频链接即可解析,多平台支持、网页端即用;下载桌面客户端解锁海外平台本地解析,开通会员更享不限次下载。

顶部