本期视频是境外网络专题的第23期,我们来聊一个代理链嵌套的话题。对我们中国内地用户而言,当开启全局代理,使用指纹浏览器时,就相当于用自建节点的代理A包裹了住宅服务商IP的代理B,形成了代理链嵌套,从而来保证数据正常传输。

但是,如果你经常使用住宅IP服务,就会发现一种情况:在境外远程服务器中,自己买的住宅IP明明可以Ping通,也可以正常中转;可到了本地电脑中,无论是开“全局模式”、TUN虚拟网卡,还是修改路由器的分流规则,却都无法连接。

这到底是为什么?

恰好,我在测试一家住宅IP服务商——Thordata时,就遇到了这种情况。

Thordata这家服务商的产品还是有点意思的。除了我们常见的动态IP、静态IP外,也有不常见的无限量服务器,这个产品我之前也演示过类似操作。

另外,它的数据抓取工具和方案也很多。比如SERP API,就可以查看不同搜索引擎下关键词的排名表现。做海外推广的朋友肯定会喜欢这个功能。

所以,仅仅把Thordata当作IP服务商来用,有点大材小用。它的价值更多是在数据采集上。有需要的朋友可以详细了解下。

当然,本期视频我们还是先解决中国内地用户正常使用Thordata的问题。

所以,就来和大家分享下,在“指纹浏览器—自建代理节点—住宅IP网关—目标网站”这条代理链中,到底应该修改哪些环节的配置。

🔗 **【相关链接】**
* 住宅IP及数据采集方案 Thordata 邀请链接:https://dlj.playfulzone.top/2a974j
* 指纹浏览器AdsPower:https://dlj.playfulzone.top/8axtgc

**🔗我用的VPS**
* **多国双ISP 住宅IP VPS:**https://dlj.playfulzone.top/wvk96m
* **三网优化 搬瓦工:**https://dlj.playfulzone.top/zfnw9k
* **优质线路 DMIT:**https://dlj.playfulzone.top/2etuq3
* **RackNerd-10美元:**https://dlj.playfulzone.top/4kmr6u
* **RackNerd-18美元:**https://dlj.playfulzone.top/qf5k7t
* **CloudCone:**https://dlj.playfulzone.top/9yp9mz
* **日本/新加坡VPS:**https://dlj.playfulzone.top/ghxgwr
* **YT香港:**https://dlj.playfulzone.top/hubqpe

一、真相:GeoIP规则误伤

如果你并不关心其中的原理,那只须做两个确认和三个修改,通常可以解决这个问题。

两个确认:

  • 正常链接确认:通过curl命令确定服务正常
  • 服务商网关IP确认:通过curl命令查看服务商网关IP来源

三个修改:

  • 关闭节点的嗅探(sniffing)功能
  • 在XUI出站设置的直连中,增加服务商的网关域名和IP
  • 在指纹浏览器中用网关IP替换网关域名

接下来,视频所有内容就是围绕这5个要点来讲清和讲透。

首先就是回答第一个问题:为什么说是GeoIP规则误伤。

当我们使用XUI一键脚本在VPS自建节点时,这类脚本通常都有一个默认的防御机制:拦截所有发往中国大陆的IP,也就是Blocked黑洞规则。识别IP来源的方法就是GeoIP数据库。我们常用的分流语法:geoip/geosite,都是靠geoip数据来分类识别域名/IP的来源。

GeoIP数据库在识别国家时,靠的是事先划分好的IP地址段。于是问题就来了,像阿里云、腾讯云这种中国公司的海外数据中心,其IP段通常也会被GeoIP一律判定为中国IP(CN)。一旦判定为CN,就会触发Blocked规则,销毁数据。

然后,一些住宅IP服务商为了提供高并发的动态IP提取服务,他们的代理网关服务器,也就是我们看到的域名,可能会部署在全球多个的云服务器厂商中,其中就可能包括腾讯云、阿里云的海外数据中心。

于是,中国国内用户通过自建节点,无法使用这类住宅IP服务的真相就是:你的数据并没有从VPS中传出,而是被Xray底层的GeoIP规则“误杀”销毁了。但是,服务器直连又不受这个规则的影响。所以,你通过SSH远程登陆VPS,并用curl命令查看,住宅IP又是可以正常使用的。

所以,接下来我们就来看下排查和解决的方法。

二、排查与解决

明白了问题在哪里,接下来我们就需要做两件事:确认住宅IP服务商的网关服务器是谁,以及修改代理链中的出站设置。

2.1 确认住宅IP服务是否正常

不要在指纹浏览器或本地电脑测试,直接远程登陆VPS,运行以下命令:

# HTTP协议测试:
curl -v -x http://你的账号:你的密码@网关域名或IP:端口 ip.sb

# SOCKS5协议测试(很多静态ISP代理用这个):
curl -v -x socks5://你的账号:你的密码@网关域名或IP:端口 ip.sb

thordata就是:

curl -v -x http://td-customer-cCBS1yZqi4w6gk-country-US-state-California-city-Losangeles-asn-AS701-sessid-USl49bhlx0bvh8716-sesstime-30:[email protected]:9999 ip.sb

结果判定:

  • 如果成功返回了海外IP:说明住宅IP服务完全正常,且你的VPS没有被对方风控。问题100%出在你的 VPS出站规则 或 本地网络配置上。
  • 如果提示 Connection refused407 Proxy Auth:说明账号密码错,或者服务商风控拦截了你的 VPS 机房 IP。

2.2 确认网关真实IP

其实,在2.1的步骤中,已经可以在运行日志中看到真实的网关IP。但如果你不会看,也可以用这个办法:

在本地电脑关闭所有代理后,在终端中运行

ping 网关域名

比如,Thordata就是:

ping sadiqrwv.na.thordata.net

这里会有一个操作误区,如果你开启了代理,在本地终端运行这个命令,就会得到“198.18.0.x”这样的“Fake-IP”(假IP)。Fake-IP 是代理软件为了防止DNS污染和加速域名解析,自动生成的虚拟IP,这个IP没什么价值。

2.3 本地电脑开“全局”

首先再次强调,使用指纹浏览器,必须开全局代理。另外,很多指纹浏览器为防止真实IP泄漏,会直接绕过系统代理层,调用底层网卡。所以,无论你用什么软件,最好都开启TUN模式(虚拟网卡)。

其次,对于Thordata这样使用了腾讯云海外数据中心的住宅IP服务商,仅仅在电脑本地开启“全局”是不够的。因为,我们的代理访问其实是分为了两段:

第一段:“从电脑到VPS”,本地电脑开“全局代理”是解决这个问题;

第二段:“从VPS到住宅IP网关”,由于Xray把腾讯云海外数据中心IP识别为“中国”,所以电脑的流量虽然进入了VPS,但在VPS内部直接触发了Blocked规则,然后被销毁,也就无法到达住宅IP网关。

2.4 修改XUI出站配置

接下来,我们要做的就是,让Xray单独放行腾讯云海外数据中心的域名和IP,也就是修改XUI的出站配置(开白名单)。

如果你直接看过我的XUI分流教程,估计会熟悉一些:

登陆XUI—左侧“面板设置”—Xray配置出站设置,大概在中部的位置,找到routing -> rules 数组。要在**geoip:cn** 规则上方,添加一条规则:

      {
        "type": "field",
        "ip": [
          "43.153.52.244", 
          "95.134.95.63" 
        ],
        "outboundTag": "direct"
      },
      {
        "type": "field",
        "domain": [
          "sadiqrwv.na.thordata.net", 
          "thordata.online"
        ],
        "outboundTag": "direct"
      },

填写完成后,保存并重启面板。

2.5 关闭节点嗅探(sniffing)

就算改了出站规则,如果不关嗅探,依然连不上!

在 X-ui 面板的“入站列表”中,编辑你当前使用的节点,将“流量探测 (Sniffing)”功能强制关闭

这是因为,VPS 服务端默认开启嗅探,是为了提取数据包里包含的真实域名(比如你要访问的 google.com),以便实现精准的规则分流或去广告。

但是,对于我们的代理嵌套操作来说,就不合适了! 当你的指纹浏览器试图通过 ThorData 中转访问 Google 时,如果开启嗅探功能,VPS 就会嗅探到了里面的目标地址是 Google,它就会篡改路由,直接把数据发给 Google,彻底抛弃了 ThorData 网关

结果就是:Google 收到了带有 ThorData 密码验证的代理请求包,完全看不懂,直接给你一个 Connection Reset (连接重置)。

因此:为了保证代理握手协议的完整性,中转节点就需要关闭嗅探功能。

2.6 修改指纹浏览器设置

到这一步,是不是就万事大吉了呢?

并不是!

最后,在指纹浏览器中,我们仍然需要改一个设置,那就是把代理服务器的主机名从域名改为网关的真实IP。

在实际的使用中,我们会发现,即使将网关域名和IP都加入了Xray出站的直连白名单,仍然会出现以下情况:

  • 填写域名,无法连接
  • 填写IP,正常连接

产生这个问题的情况同样比较复杂。

这是因为我们的本地代理软件(如Clash/Shadowrocket)可能会出现 Fake-IP 反向解析失败的情况。 当你在指纹浏览器填域名时,本地代理软件塞给浏览器一个假IP(如 198.18.0.X)。按理说,代理软件要把域名发给VPS,但有时候它却直接把这个内部假IP 198.18.0.X 发给了VPS!VPS 拿着这个莫名其妙的内网IP去比对白名单,查无此人,最终连接失败。

此外,直接填IP也能完美绕过网关域名背后的多IP负载均衡,防止解析出不在白名单里的新IP。由于真正影响动态IP更换的,是账户中的 sessid 。因此,固定网关IP完全不影响你获取新的住宅IP。

所以,最简单且一劳永逸的处理办法,就是把指纹浏览器中的网关域名改为我们抓出来的真实IP:43.153.52.244 ,彻底斩断 DNS解析 和 Fake-IP 机制带来的不确定因素。

三 小结

最后,我们照例小结下。

在使用住宅IP服务商的服务时,如果出现了境外服务器连接正常、国内连接失败的情况:

  1. 首先确认网关域名的IP来源(是否命中了GeoIP阻断);
  2. 修改 Xray 的出站配置,添加白名单放行;
  3. 创建一个关闭嗅探(Sniffing)功能的纯净节点;
  4. 将指纹浏览器中的代理服务器由域名改为IP。

通常来说,做到这四步后,从本地电脑—VPS—住宅IP网关到目标网站这套复杂的跨国代理链就能真正跑通了。

好啦,这就是本期视频的全部内容,如果觉得有用的话,可以关注下我的频道。

作者 龙sir

一个喜欢用有趣抵御平庸的普通人; 经常会把自己的兴趣写成文章; 所以你会看到科技、数码、娱乐、信用卡、上网…… 拒绝高大上,不做伪专家; 让专业生活化,生化有趣化; 嗯,就这样吧~

分享
复制链接