V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
freyz
V2EX  ›  宽带症候群

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

  •  
  •   freyz · 155 天前 · 1449 次点击
    这是一个创建于 155 天前的主题,其中的信息可能已经有所发展或是发生改变。
    为了保证家庭用网的稳定性,上周多拉了一条有 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 的话,大家不用纠结,作用也不是很大,然后,坛子里面有大佬可以解决这个问题嘛?跪求解决方案。。。
    ggf
        1
    ggf  
       155 天前
    移动透传了吧
    happyeveryday
        2
    happyeveryday  
       155 天前
    家庭用户怎么办带公网的移动宽带?也是去营业厅吗,自费如何
    ggf
        3
    ggf  
       155 天前
    我这边移动家宽拿了公网 ip 一个电话就给改了,但是目前并没有透传,所以正常(以前也碰到过透传
    xiashali
        4
    xiashali  
       155 天前
    tracker 地址后面加 /cdn-cgi/trace
    azhangbing
        5
    azhangbing  
       155 天前
    我家的 IPV6 正常。。。
    v2tudnew
        6
    v2tudnew  
       155 天前
    X-Forwarded-For 必须明文吧?你用 https 的 tracker 应该就解决了,除非你梯子代理了 tracker 。
    bipy
        7
    bipy  
       155 天前
    villivateur
        8
    villivateur  
       155 天前 via Android
    我觉得你把 tracker 服务器都改用 https ,这样应该就都连不上了
    keith1126
        9
    keith1126  
       155 天前
    如果我没记错的话,各大 PT 站点的规矩是:不允许在公开论坛透露站点信息,包括名称和 URL 。

    有心人举报一下的话,就不是连不连的上 tracker 的问题了,而是你的账号会被 ban 。
    cwbsw
        10
    cwbsw  
       155 天前 via iPad
    很多 BT 客户端都可以手动设定 announce ip 的。
    cwbsw
        11
    cwbsw  
       155 天前 via iPad
    tracker 都是 cloudflare ,有的没问题有的有问题,你把有问题的 tracker 手动解析到没问题的 cloudflare ip 上不就好了。
    freyz
        12
    freyz  
    OP
       155 天前
    我尝试过 announce ip ,但发现没有效果;另外,cloudflare ip 解析没有问题,主要还是 tracker 服务器客户端 ip 判断出问题了
    freyz
        13
    freyz  
    OP
       155 天前
    @villivateur 目前就是 https ,不是连不上,是连上了,客户端显示的 ip 不是真实的 ip
    freyz
        14
    freyz  
    OP
       155 天前
    @xiashali 晚上试试看,这个什么原理
    bibiisme
        15
    bibiisme  
       155 天前
    很多地方为了提升国际速度,到 cf 搞了 iplc 走穿透,楼主不妨发下 tracert 结果?
    freyz
        16
    freyz  
    OP
       155 天前
    @keith1126 感谢提醒,已经设置为仅自己可见和禁止搜索,谢啦
    GhostiKing
        17
    GhostiKing  
       155 天前
    我 ipv6 也正常,nat1
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1203 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:51 · PVG 06:51 · LAX 15:51 · JFK 18:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.