记一次 移动公网 IP 在 PT 站点无法识别的问题

2021-12-22 10:27:36 +08:00
 freyz
为了保证家庭用网的稳定性,上周多拉了一条有 IPV4 公网( 112.10 开头)的移动千兆宽带( 300M 上),打算专门用来 PT 上传和下载,但实际中发现没有那么美好。部分站点速度非常快,包括 hdhome 、opencd 等;部分站点上传几乎没有速度,包括 hdsky 、chdbits 和 MT 等。再深入看下,发现上传没有速度的站点是因为 BT 客户端 IPV4 的 IP 识别错误,被识别成香港、联通等 IP ,导致无法链接。论坛里面发了贴,没有回复,周末捣鼓了下,基本搞明白了原因,过程记录下:

首先,做了 traceroute ,包括 traceroute chdbits.co ,traceroute tracker.hdskey.me,traceroute tracker.m-team.cc 等等,仔细看了下路径,发现内站的几乎都是一样网络部署,都采用了 cloudflare 的 cdn (用作防火墙?),通过 cloudflare 代理链接到站点的 tracker 服务器。

然后,既然 cloudflare 本身就是代理,躲在 cloudflare 后面的 tracer 服务器怎么拿到用户的 IP 呢,Google 了一把,很快找到了 cloudflare 的 doc ,https://support.cloudflare.com/hc/en-us/articles/200170786-How-do-I-restore-original-visitor-IP-with-Nginx ,内站大多是 nexusphp 架构,看下 Nginx 相关的内容,很快找到 cloudflare 默认配置:
#use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;
再点 https://developers.cloudflare.com/fundamentals/get-started/http-request-headers 链接,看下两个 http header 的说明:X-Forwarded-For maintains proxy server and original visitor IP addresses. CF-Connecting-IP provides the client IP address, connecting to Cloudflare, to the origin web server. This header will only be sent on the traffic from Cloudflare's edge to your origin webserver. 两个的区别在哪里?文档里面写的很清楚,X-Forwarded-For 会把路径上所有的 IP 都带上,通过逗号分割; CF-Connecting-IP 只包含最后一个 IP ,譬如 getRemoteAddress 方法。

然后,为什么我的 IP 地址 家园可以解析,其他站点不可以?首先,家园可以,说明 cloudflare 可以把这个 IP 地址给到 tracker 服务器;然后,其他站点移动公网 IP 地址解析错误,电信 IP 地址解析没问题,再联想 解析出来的 IP ,原因就不难猜测:首先,移动运营商 为了降低网络之间的费用结算,中间做了某些不可描述的运营商内部的代理,他把原始的地址通过 X-Forwarded-For 传递了下去;而站点采用了 CF-Connecting-IP 这个配置,所以 只拿到了最后一个出口的 IP ,所以,对于可能中间有代理的情况下,会解析到最后的 IP ;而家园 应该是采用了 X-Forwarded-For ,通过字符串解析,取第一个 IP ,所以可以解决代理的问题,进而拿到了正确的 IP 。

最后,如果是移动公网 IP 来搞 PT 的话,大家不用纠结,作用也不是很大,然后,坛子里面有大佬可以解决这个问题嘛?跪求解决方案。。。
2789 次点击
所在节点    宽带症候群
17 条回复
ggf
2021-12-22 10:32:48 +08:00
移动透传了吧
happyeveryday
2021-12-22 10:35:29 +08:00
家庭用户怎么办带公网的移动宽带?也是去营业厅吗,自费如何
ggf
2021-12-22 10:42:27 +08:00
我这边移动家宽拿了公网 ip 一个电话就给改了,但是目前并没有透传,所以正常(以前也碰到过透传
xiashali
2021-12-22 11:01:29 +08:00
tracker 地址后面加 /cdn-cgi/trace
azhangbing
2021-12-22 11:22:12 +08:00
我家的 IPV6 正常。。。
v2tudnew
2021-12-22 11:28:01 +08:00
X-Forwarded-For 必须明文吧?你用 https 的 tracker 应该就解决了,除非你梯子代理了 tracker 。
bipy
2021-12-22 11:55:05 +08:00
villivateur
2021-12-22 12:03:49 +08:00
我觉得你把 tracker 服务器都改用 https ,这样应该就都连不上了
keith1126
2021-12-22 12:28:06 +08:00
如果我没记错的话,各大 PT 站点的规矩是:不允许在公开论坛透露站点信息,包括名称和 URL 。

有心人举报一下的话,就不是连不连的上 tracker 的问题了,而是你的账号会被 ban 。
cwbsw
2021-12-22 13:03:35 +08:00
很多 BT 客户端都可以手动设定 announce ip 的。
cwbsw
2021-12-22 13:06:11 +08:00
tracker 都是 cloudflare ,有的没问题有的有问题,你把有问题的 tracker 手动解析到没问题的 cloudflare ip 上不就好了。
freyz
2021-12-22 13:52:24 +08:00
我尝试过 announce ip ,但发现没有效果;另外,cloudflare ip 解析没有问题,主要还是 tracker 服务器客户端 ip 判断出问题了
freyz
2021-12-22 13:52:57 +08:00
@villivateur 目前就是 https ,不是连不上,是连上了,客户端显示的 ip 不是真实的 ip
freyz
2021-12-22 13:53:27 +08:00
@xiashali 晚上试试看,这个什么原理
bibiisme
2021-12-22 14:15:57 +08:00
很多地方为了提升国际速度,到 cf 搞了 iplc 走穿透,楼主不妨发下 tracert 结果?
freyz
2021-12-22 14:28:16 +08:00
@keith1126 感谢提醒,已经设置为仅自己可见和禁止搜索,谢啦
GhostiKing
2021-12-22 17:20:46 +08:00
我 ipv6 也正常,nat1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823687

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX