iptables -t nat -I POSTROUTING 1 -p all -s 192.168.x.y -j SNAT --to-source 1.2.3.4
有人能帮我理解一下吗?我对 Linux 还很陌生。
答案1
这条规则意味着:
制作一些小包......(哪些?那些有来源(-s)IP地址192.168.XY,属于每一个协议 (-p 全部)
... 出现仿佛它们来自地址 1.2.3.4 (-j SNAT --到源 1.2.3.4)...
...并且此规则必须占据第一名(-I 后路由 1) 在里面路由后NAT 表的队列(-t NAT)。
基本上,规则 3 说明了规则必须添加的位置(并且它是正确的,源地址转换规则进入NAT
表的 POSTROUTING 队列),规则 2 指定它适用于哪些数据包(基本上,适用于全部来自 IP 地址为 192.168.XY 的机器的数据包,以及全部协议,TCP,UDP,ICMP,....全部其中,规则 1 指定必须采取的操作,在这种情况下,重写数据包的标头,就好像数据包不是来自 IP 地址 192.168.XY,而是来自 IP 地址 1.2.3.4。
总而言之,这只是一个普通的 NAT 规则,允许一台机器(192.168.XY)与互联网通信,即使它有一个私有的、不可路由的 IP 地址,赋予它,事实上,具有公共可路由 IP 地址 1.2.3.4。