代理连上了但打不开网站
发布: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 是不够的。它是一个很小、又经常被缓存的请求,它成功的同时正常上网照样可能全挂。
依次排查
-
代理类型改成 SOCKS5。用 HTTP 类型时,只有 HTTP/HTTPS 流量走代理,DNS 查询仍走本地网络。本地 DNS 被污染或拿到出口不可达的地址,表现出来就是「能连上代理但网站打不开」。ip.sb 之所以能开,往往是因为它被缓存或恰好解析成功。改成 SOCKS5 后域名解析也走代理,这一类问题基本消失。
-
路由改成全局「代理」。Shadowrocket 默认的「配置」模式带规则集,一部分域名会被判定直连。排查阶段先切成全局代理,确认能通之后再考虑分流。
-
确认链式代理已配置(中国大陆用户必做)。大陆网络无法直连我们的网关,必须先有出境线路,再把我们的 IP 串在后面。缺这一步在大陆网络下必定失败,配法见 Shadowrocket 配置教程的链式代理一节。
-
命令行单独确认。跑上面那条
curl。命令行能通、客户端不通,基本就锁定在客户端配置上了。
症状二:客户端导入后开启,没有任何反应
- 先点选服务器,再开开关。没选中线路时开开关不会有任何动作——不报错,也没有流量。
- 确认 VPN 配置真的装上了。iOS:设置 → 通用 → VPN 与设备管理,看有没有对应的配置。之前误点过「不允许」的话这里是空的,删掉重新导入、这次选允许即可。macOS 在系统设置 → 网络里看,详见 macOS 配置教程。
- 检查用户名密码有没有带上首尾空格。复制粘贴时很容易多带一个,而且大多数客户端不会提示,只是认证失败。
症状三:访问不了 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 试用期间尤其如此。
还是不行
带上这三样信息联系客服,能省掉一轮来回:
- 你的操作系统和客户端名称(例如:iOS 18 + Shadowrocket)。
- 代理类型(SOCKS5 还是 HTTP),以及是否配了链式代理。
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 试用足够确认问题是否解决,再决定充值。