V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jtsai
V2EX  ›  问与答

iptables 求助 !!!!!

  •  
  •   jtsai · 2017-07-28 16:41:48 +08:00 · 1180 次点击
    这是一个创建于 2710 天前的主题,其中的信息可能已经有所发展或是发生改变。

    局域网 192.168.1.1 / 192.168.1.2 / 192.161.1.3

    我想用 iptables 转换 ip 同一个 ip 就能转换 比如 192.168.1.1:80 转换成 192.168.1.1:8000 ( iptables -t -nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j DNAT --to-destiantion 192.168.1.1:8000 ) [成功]

    但是, 不同 ip 就不能转换 比如 192.168.1.1 转成 192.168.1.2 ( iptables -t -nat -A PREROUTING -d 192.168.1.1-j DNAT --to-destiantion 192.168.1.2 ) [失败]

    上面失败的这句的目的我是要访问 192.168.1.1 就变成 192.168.1.2、如果这样不行,那正确的操作是怎样的

    5 条回复    2017-07-28 17:37:52 +08:00
    coolxl
        1
    coolxl  
       2017-07-28 16:50:44 +08:00   ❤️ 1
    -A PREROUTING -d 192.168.1.1/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.2:8000
    -A POSTROUTING -d 192.168.1.2/32 -p tcp -m tcp --dport 8000 -j SNAT --to-source 192.168.1.1
    这样试试,把 1.1 的 80 端口转发到 1.2 的 8080 端口。
    jtsai
        2
    jtsai  
    OP
       2017-07-28 17:00:53 +08:00
    @coolxl 非常感谢!!!

    我失败的原因是没有写 POSTROUTING 把 源地址重写。原来不同 IP 要重写一下我不知道。
    jtsai
        3
    jtsai  
    OP
       2017-07-28 17:20:48 +08:00
    @coolxl 在求助一下,我内网要转到外网怎么办。

    我要访问外网要通过路由

    我把 POSTROUTING 的源地址写出路由的 10.0.01 。

    但是失败了。

    想知道这个失败的原因。要怎么样才能成功。
    jtsai
        4
    jtsai  
    OP
       2017-07-28 17:23:02 +08:00
    @jtsai 补充。我想访问 192.168.1.1 转成 x.x.x.x 外网

    我在 192.168.1.1 写了

    DNAT --to-destination x.x.x.x
    SNAT --to-source 10.0.0.1 (路由)
    coolxl
        5
    coolxl  
       2017-07-28 17:37:52 +08:00   ❤️ 1
    只要你的 1.1 能访问外网,就把目标地址改成外网 IP 就行了。即把 1.2 替换成外网 IP。好像跟路由没什么关系。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2401 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:21 · PVG 10:21 · LAX 18:21 · JFK 21:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.