iptables 求助 !!!!!

2017-07-28 16:41:48 +08:00
 jtsai

局域网 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、如果这样不行,那正确的操作是怎样的

1178 次点击
所在节点    问与答
5 条回复
coolxl
2017-07-28 16:50:44 +08:00
-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
2017-07-28 17:00:53 +08:00
@coolxl 非常感谢!!!

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

我要访问外网要通过路由

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

但是失败了。

想知道这个失败的原因。要怎么样才能成功。
jtsai
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
2017-07-28 17:37:52 +08:00
只要你的 1.1 能访问外网,就把目标地址改成外网 IP 就行了。即把 1.2 替换成外网 IP。好像跟路由没什么关系。

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

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

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

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

© 2021 V2EX