这个 nat 规则怎么解释呢? iptables -t nat -A POSTROUTING -s 10.0.0.1 ! -d 10.0.0.1 -j MASQUERADE

2017-02-24 16:50:42 +08:00
 liashui
我的理解:
1.“-t nat -A ” 表示给 nat 表添加规则到末尾
2.“ POSTROUTING -s 10.0.0.1 -j MASQUERADE ”表示来自 10.0.0.1 的数据包的来源改成 eth0 的 ip 发出去

疑问:
1.“! -d 10.0.0.1 ” !代表了什么意思?求高手解答
14931 次点击
所在节点    程序员
10 条回复
bellchu
2017-02-24 17:04:33 +08:00
!代表除 10.0.0.1 的所有地址
bozong
2017-02-24 17:05:33 +08:00
同上
Beebird
2017-02-24 17:07:30 +08:00
源地址为 10.0.0.1 ,且目标地址不是 10.0.0.1 的全部数据包吧
liashui
2017-02-24 17:10:43 +08:00
@bellchu @bozong 谢谢给我回复,那就是对 source 是 10.0.0.1 & destination 为非 10.0.0.1 的包 做一次 source ip 的伪装,这样子理解对吗?
liashui
2017-02-24 17:15:48 +08:00
@Beebird 我现在理解和你一样
bellchu
2017-02-24 17:18:01 +08:00
@liashui Masquerade NAT 是个很中性的词组哈
liashui
2017-02-24 17:24:14 +08:00
@bellchu Masquerade Nat 很中性,怎么个说法呢?
liuchen9586
2017-02-24 20:15:39 +08:00
iptables -t nat -A POSTROUTING -s 10.0.0.1 ! -d 10.0.0.1 -j MASQUERADE

向 NAT 表的 POSTROUTING 链条列尾添加一条规则,规则的具体内容是:
对源 IP 为 10.0.0.1 ,目标 IP 不为 10.0.0.1 的数据包做 IP 伪装,伪装成接口的第一个 IP ,这个功能在所有接口上都激活,但是数据从哪个接口出去,就伪装成哪个接口的第一个 IPv4 的 IP 。
liashui
2017-02-25 00:14:04 +08:00
@liuchen9586 你所说的接口是 eth0 , eth1 , tun0 这些?, ipv4 我明白,第一个 ipv4 什么意思呢?
liuchen9586
2017-02-25 03:07:11 +08:00
@liashui 一个接口上可能会有多个 IPv4 地址, MASQUERADE 会取第一个 IP 做 NAT 。

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

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

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

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

© 2021 V2EX