请教 iptables 为某些 ip 段单独做 跳板 的配置办法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
yongw520
V2EX    Linux

请教 iptables 为某些 ip 段单独做 跳板 的配置办法

  •  
  •   yongw520 Feb 22, 2018 5429 views
    This topic created in 2986 days ago, the information mentioned may be changed or developed.
    看了半天文章,实在搞不懂。。。遂来求教

    需求:
    A 为跳板 111.111.111.111
    B 为目标主机 222.222.222.222

    A 作为日常使用代理,但不能访问某网站。
    而 B 流量少,链路差,但可以访问某网站。
    需求是 A 作代理访问某网站的 IP 段时(已知),转发至 B.

    查到如下全部转发的办法,尝试了下可以正常工作。
    iptables -t nat -A PREROUTING -p tcp --dport A 的端口 -j DNAT --to-destination B 的 IP:B 的端口
    iptables -t nat -A POSTROUTING -p tcp -d B 的 IP --dport B 的端口 -j SNAT --to-source A 的 IP
    iptables -t nat -A PREROUTING -p udp --dport A 的端口 -j DNAT --to-destination B 的 IP:B 的端口
    iptables -t nat -A POSTROUTING -p udp -d B 的 IP --dport B 的端口 -j SNAT --to-source A 的 IP
    7 replies    2018-04-06 09:46:56 +08:00
    defunct9
        1
    defunct9  
       Feb 22, 2018 via iPhone
    如上的例子用 nginx 来做岂不是更好一些
    Geoion
        2
    Geoion  
       Feb 22, 2018
    /div>
    没看太懂,但是好像 qtunnel 能满足需求
    msg7086
        3
    msg7086  
       Feb 22, 2018   2
    前几天刚刚做过类似的配置。
    我们的场景是,A 要访问某个主机 C,但是由于某些原因 C 把 A 的流量 block 了,于是需要用 B 中转。

    B 机
    iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source B 机 IP
    iptables -A FORWARD -i eth0 -o eth0 -s A 机 IP -j ACCEPT
    iptables -A FORWARD -i eth0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

    A 机
    ip r add C 机 IP/32 dev eth0 via B 机 IP

    当然我们是内网环境,所以没有加额外的保护,你用的话应该要加上 IP 限定。
    但是反正就是 SNAT 的事情。
    mingl0280
        4
    mingl0280  
       Feb 22, 2018
    你这个需求在本地做 PAC 代理规则比较好……因为是 HTTP/HTTPS,iptables 起来比较烦,因为有各种 CDN 啊什么的
    如果非要搞的话
    -t nat -A PREROUTING -d [final_target_addr] -p tcp --dport [final-target-port] -j DNAT --to-destination [B-addr]:[B-port] #去程的包转发到跳板机
    -t nat -A POSTROUTING -s [source_addr] -o [income_netdevice] -j MASQUERADE #返回的包让他自动搞去
    scegg
        5
    scegg  
       Feb 22, 2018
    直接加个 route 不就好了。。。
    debian 语法:
    route add -net 1.2.3.0/24 gw gateway.ip.address
    yongw520
        6
    yongw520  
    OP
       Feb 22, 2018
    感谢提供帮助的各位, 最终使用 shadowsocks-libev-redir 并配合 iptables 与 ipset 再做了层代理.
    参考了该思路: https://medium.com/@terrancesiu/rixcloud%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5-cf9d828f82fd
    Abby11
        7
    Abby11  
       Apr 6, 2018
    @yongw520 请问你有碰到这个问题么?如何解决?
    # whois -h riswhois.ripe.net -- '-i origin AS14618' | grep "route: " | awk '{print $NF}' | sort | /usr/local/sbin/listclean.sh >>/root/as14618.txt
    -bash: /usr/local/sbin/listclean.sh: Permission denied

    我用了 chmod 777 还是不行
    About     Help &nsp;   Advertise     Blog     API     FAQ     Solana     3887 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 47ms UTC 10:34 PVG 18:34 LAX 03:34 JFK 06:34
    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