代理连上了但打不开网站

发布:2026 年 7 月 19 日 · 阅读约 7 分钟

一句话总结:IP 换了但网站全超时,基本都是客户端用了 HTTP 类型、DNS 没走代理,先改成 SOCKS5。诊断请用 curl -v -x socks5h://gw.roamproxy.com:41080 -U '用户名:密码' https://ip.sb——漏掉 -x 的话 curl 会明文直连,返回你自己的本机 IP。

先跑这条命令:它能直接告诉你问题出在哪一层

动手改客户端之前,先在终端里跑一次。它直连我们的网关,能把「账号或线路有问题」和「客户端配错了」分开。

curl -v -x socks5h://gw.roamproxy.com:41080 -U '用户名:密码' https://ip.sb

这条能返回代理 IP、客户端却不通,说明账号和线路都没问题,是客户端配置的事。这条也失败的话,直接看 curl 的报错文字,一般会把原因写明白。

这条命令有两个常见写法错误,而且错了以后结果具有误导性:

  • 代理地址必须跟在 -x 后面。很多教程写成 curl -v socks5h://gw.roamproxy.com:41080 ...,把代理当成 URL 传。curl 会直接忽略它、明文直连,返回的是你自己的本机 IP,看起来就像代理完全没生效——于是把好好的线路误判成坏的。
  • 用户名密码用 -U 单独传并加单引号,不要塞进 URL。密码里含 #@/: 时,塞进代理 URL 会被截断,或者直接报 Unsupported proxy syntax。放在 -U '...' 里两个问题都没有。

症状一:ip.sb 能打开、IP 也换了,但其他网站全部超时

这是最常见的一种,也最容易被误判成「产品坏了」。IP 已经换了,说明认证和连接都是通的,问题出在走代理的流量类型上——通常是 DNS。

只验证 ip.sb 是不够的。它是一个很小、又经常被缓存的请求,它成功的同时正常上网照样可能全挂。

依次排查

  1. 代理类型改成 SOCKS5。用 HTTP 类型时,只有 HTTP/HTTPS 流量走代理,DNS 查询仍走本地网络。本地 DNS 被污染或拿到出口不可达的地址,表现出来就是「能连上代理但网站打不开」。ip.sb 之所以能开,往往是因为它被缓存或恰好解析成功。改成 SOCKS5 后域名解析也走代理,这一类问题基本消失。

  2. 路由改成全局「代理」。Shadowrocket 默认的「配置」模式带规则集,一部分域名会被判定直连。排查阶段先切成全局代理,确认能通之后再考虑分流。

  3. 确认链式代理已配置(中国大陆用户必做)。大陆网络无法直连我们的网关,必须先有出境线路,再把我们的 IP 串在后面。缺这一步在大陆网络下必定失败,配法见 Shadowrocket 配置教程的链式代理一节。

  4. 命令行单独确认。跑上面那条 curl。命令行能通、客户端不通,基本就锁定在客户端配置上了。

症状二:客户端导入后开启,没有任何反应

  1. 先点选服务器,再开开关。没选中线路时开开关不会有任何动作——不报错,也没有流量。
  2. 确认 VPN 配置真的装上了。iOS:设置 → 通用 → VPN 与设备管理,看有没有对应的配置。之前误点过「不允许」的话这里是空的,删掉重新导入、这次选允许即可。macOS 在系统设置 → 网络里看,详见 macOS 配置教程
  3. 检查用户名密码有没有带上首尾空格。复制粘贴时很容易多带一个,而且大多数客户端不会提示,只是认证失败。

症状三:访问不了 ChatGPT / Claude

先明确一件事:这通常不是 IP 的问题。ChatGPT 和 Claude 对我们的出口 IP 是可访问的。访问不了,原因基本是下面两个之一。

1. 你在中国大陆,没配链式代理

大陆网络无法直连我们的网关,必须先有出境线路,再串我们的 IP。网关这一跳连不上,后面什么都不会通。配法见 Shadowrocket 配置教程的链式代理一节。

2. IP 地区和账号注册地不一致

这类服务会比对账号注册地和当前访问地。用日本 IP 登录一个美国注册的账号,可能触发风控要求验证。建议固定用同一地区的 IP,不要频繁切换——频繁切换正是触发验证的原因。

如果用的是机房 IP 而不是住宅 IP,被判定为自动化流量的概率明显更高。对这类站点建议使用住宅 IP:动态住宅 $2/GB,静态住宅 $4/IP/月。

症状四:后台显示产生了流量计费,但完全用不了

有流量计费说明连接建立成功、认证通过了——账号是好的。这种情况几乎都是症状一,按症状一那份清单排查。

需要注意:排查过程本身也会消耗流量。测试期间尽量用 curl https://ip.sb 这种小请求,不要开着网页反复刷新,300MB 试用期间尤其如此。

还是不行

带上这三样信息联系客服,能省掉一轮来回:

  1. 你的操作系统和客户端名称(例如:iOS 18 + Shadowrocket)。
  2. 代理类型(SOCKS5 还是 HTTP),以及是否配了链式代理。
  3. curl -v -x socks5h://gw.roamproxy.com:41080 -U '用户名:密码' https://ip.sb 的完整输出——密码记得打码

常见问题

为什么 ip.sb 能打开,别的网站都打不开?

几乎都是因为代理类型设成了 HTTP 而不是 SOCKS5。用 HTTP 时只有网页流量走代理,DNS 查询仍走本地网络,域名可能解析到出口不可达的地址。ip.sb 常常还是能开,因为它请求小、又经常被缓存。把客户端改成 SOCKS5,让域名解析也走代理即可。

curl 测试返回的是我自己的 IP,是代理坏了吗?

不是,基本可以确定是命令漏了 -x。写成 curl -v socks5h://gw.roamproxy.com:41080 等于把代理当 URL 传,curl 会忽略它并明文直连。正确写法是 curl -v -x socks5h://gw.roamproxy.com:41080 -U '用户名:密码' https://ip.sb,代理地址必须跟在 -x 后面。

密码里有特殊字符,一连就失败,是什么原因?

# @ / : 这类字符塞进代理 URL 会被截断,或者让 curl 直接报 Unsupported proxy syntax。用 -U 单独传用户名密码,并加单引号避免 shell 解析。图形客户端把用户名和密码分成两个输入框,也是同样的道理。

后台显示用了流量,但什么都打不开,是不是在为坏掉的服务付费?

有流量计费说明连接已建立、凭据也通过了,账号本身是好的。这种情况几乎都是症状一里说的 DNS / SOCKS5 问题。另外排查本身也消耗流量,测试请用 curl https://ip.sb 这类小请求,不要反复刷网页。

与其修一份配错的配置,按教程从头配一遍往往更快——见 Shadowrocket 配置教程macOS 配置教程。300MB 试用足够确认问题是否解决,再决定充值。