不懂就问,有没有办法能实现在通过代理服务器访问时,让服务器拿到客户端的 ip 而不是代理服务器的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
monkeyWie
0.65D
V2EX    宽带症候群

不懂就问,有没有办法能实现在通过代理服务器访问时,让服务器拿到客户端的 ip 而不是代理服务器的

  •  
  •   monkeyWie 2020-03-27 18:21:45 +08:00 3485 次点击
    这是一个创建于 2048 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如客户端 ip 是 1.1.1.1,通过一个 HTTP 代理服务器 2.2.2.2 访问 www.baidu.com ,百度获取到我的客户端 ip 是 2.2.2.2,有没有办法让百度拿到客户端的 ip 1.1.1.1 呢?

    在应用层伪造 HTTP 请求头(x-forwarded-for)基本上是不行的,能不能改变 TCP 上的源 ip 来实现呢?

    33 条回复    2020-03-29 01:30:28 +08:00
    ThirdFlame
        1
    ThirdFlame  
       2020-03-27 18:29:09 +08:00
    如果代理 给你发来了 x-forwarded-for,那么可以参考这个值。

    改变 tcp 源 IP,那你服务器数据回复到哪里呢。

    再说一点,不用代理了。用梯子,你怎么找到源 ip 。 所以请放弃 挣扎。
    jangit
        2
    jangit  
       2020-03-27 18:31:08 +08:00 via iPhone
    不大可能呢
    代理后面的客户端说不定是内网地址呢
    monkeyWie
        3
    monkeyWie  
    OP
       2020-03-27 18:32:46 +08:00
    @ThirdFlame 额,可能我没太说明白,我现在的角色是客户端和代理服务器,就是想让别人知道我的真实 ip,而不是代理服务器 ip
    monkeyWie
        4
    monkeyWie  
    OP
       2020-03-27 18:35:10 +08:00
    @jangit 客户端出网是外网 ip 呀,代理服务器和客户端不是一个局域网下的,代理服务器单独部署在外网。
    yaoliyc
        5
    yaoliyc  
       2020-03-27 18:35:46 +08:00 via iPhone
    代理服务器转发可以拿到,不转发拿不到
    CallMeReznov
        6
    CallMeReznov  
       2020-03-27 18:41:31 +08:00
    WebRTC 可以拿到,不过也可以关闭
    Tianao
        7
    Tianao  
       2020-03-27 18:43:50 +08:00   1
    只要你可以控制代理服务器,代理服务器就可以伪造源 IP,但伪造生成的 IP 报文能不能被路由到目标服务器,又能不能从目标服务器被路由回来就看你本事了,这里的本事就是操纵 IP 路由的本事。比如这两天闹得沸沸扬扬的中间人攻击事件的攻击者就有这个本事。
    wwbfred
        8
    wwbfred  
       2020-03-27 18:48:55 +08:00
    没试过,理论上应该可以做到,但为了满足需求可能要动内核,且回程必定是直连.
    你可以先试试 iptables 在本地和代理各做一次 DNAT,不要 SNAT,然后看看本地是怎么对待返回包的.
    geekvcn
        9
    geekvcn  
       2020-03-27 19:28:38 +08:00
    楼主需求,我想要快递直接把货送到我家里,但是不想让快递知道我在哪个小区,怎么办
    hshpy
        10
    hshpy  
       2020-03-27 19:30:42 +08:00
    请求头不可信,除非你控制得了代理服务器,不然拿不到。
    cyberpoint
        11
    cyberpoint  
       2020-03-27 19:31:54 +08:00
    做梦
    unixeno
        12
    unixeno  
       2020-03-27 19:40:34 +08:00 via Android
    如果代理服务器和目标服务器都是你控制的话,可以
    jugelizi
        13
    jugelizi  
       2020-03-27 19:42:29 +08:00 via iPhone   1
    好比你叫了一个跑腿的 去超市买袋米 跑腿的买米自己付钱 拿回来给你 请问超市怎么知道你在买米?
    Vhc001
        14
    Vhc001  
       2020-03-27 19:43:39 +08:00
    TCP 不行,服务器拿到的 100%是真实 IP (就是你代理服务器的 IP )
    UDP 可以
    ALLLi
        15
    ALLLi  
       2020-03-27 19:45:39 +08:00 via Android
    @Vhc001 TCP 可以,OPTION 头几年可以记录真实 IP
    Vhc001
        16
    Vhc001  
       2020-03-27 19:47:57 +08:00
    @ALLLi #15 那你挂全局代理访问百度试试
    guoqiyi
        17
    guoqiyi  
       2020-03-27 19:53:54 +08:00
    真有这技术,本站不少人早被请去喝茶了
    IsA26hN4DcQDS7Z9
        18
    IsA26hN4DcQDS7Z9  
       2020-03-27 19:55:55 +08:00
    能,

    挂全局还能获取真实 ip,环境是常规电脑,不做其它匿名操作

    不知道怎么实现的
    ThirdFlame
        20
    ThirdFlame  
       2020-03-27 20:04:51 +08:00
    @monkeyWie 那你的代理 就加 x-forwarded-for 即可。服务器端如果认可这个就 ok 了。
    但是 由于 x-forwarded-for 可以伪造,所以好多服务器端已经不认这个了。

    那么你可以和服务器端协商一个 header,代理用这个 header 写上客户端 ip,发给我服务器端即可。
    ALLLi
        21
    ALLLi  
       2020-03-27 20:05:15 +08:00 via Android
    肯定是自己的代理服务器才可以,别人的不行
    jim9606
        22
    jim9606  
       2020-03-27 20:07:18 +08:00
    你是希望你要访问的站点直到客户端真实 IP 吧
    HTTP 层面就是 X-Forward-For: client,proxy1,proxy2...
    但是代理服务器(客户控制的)可以伪造这个头,所以站点认不认这个头要看情况
    很多时候站点知道客户端真实 IP 并没有什么用,例如你客户端用的是私有地址
    whywhywhy
        23
    whywhywhy  
       2020-03-27 20:12:38 +08:00 via Android
    如果目标服务器是你的,有办法,如果不是你的,早点休息,晚安
    xcstream
        24
    xcstream  
       2020-03-27 20:20:40 +08:00
    普通需求 x-forwarded-for 可以
    伪不伪造是另一个问题,需要加密协议
    Vhc001
        25
    Vhc001  
       2020-03-27 21:12:37 +08:00
    @ALLLi #19 受教 [抱拳]
    yulihao
        26
    yulihao  
       2020-03-28 09:24:57 +08:00
    如一楼,除了 x-forwarded-for,没有其他办法
    楼主在搞 DoH ?
    monkeyWie
        27
    monkeyWie  
    OP
       2020-03-28 09:31:44 +08:00 via Android
    @Raynard 有例子吗?
    monkeyWie
        28
    monkeyWie  
    OP
       2020-03-28 09:35:25 +08:00 via Android
    @yulihao x-forwarded-for 不行啊,目标服务器基本都是直接拿的 remote_ip
    cdh1075
        29
    cdh1075  
       2020-03-28 16:16:42 +08:00
    改一下代理服务器上代理程序的源代码和 iptables 脚本,把所有来自 1.1.1.1 去往百度的数据包的源 ip 都改成 1.1.1.1,这是唯一的办法
    其他人所说的办法只是百度可以那样干,但百度并没有那样干,想让百度那样干只有改百度的代码,但你的条件中说你的角色是客户端和代理服务器,很显然改不了百度的代码
    百度的代码只看一样东西,就是数据包的源 ip,既然你改变不了百度,只能把 1.1.1.1 写在那
    cdh1075
        30
    cdh1075  
       2020-03-28 16:18:52 +08:00
    另外记得客户端的代理程序和 iptables 也要做相应的适应性更改
    fan88
        31
    fan88  
       2020-03-28 19:31:53 +08:00 via Android
    那必然是不可能的,即使你通过 iptables 或者别的东西做 nat 把 TCP 数据包的源 IP 改了。
    一旦源 IP 改了,数据包不会返回给你的代理服务器,而是直接去客户端了。
    你的客户端收到这个数据包以后会丢弃他,客户端建立连接的对象是代理服务器。
    WuhuiMurong
        32
    WuhuiMurong  
       2020-03-29 01:29:39 +08:00
    @Raynard l 浏览器的 webRTC...
    WuhuiMurong
        33
    WuhuiMurong  
       2020-03-29 01:30:28 +08:00
    浏览器 WebRTC 很容易泄露
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1030 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 98ms UTC 22:54 PVG 06:54 LAX 14:54 JFK 17:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86