曲径通幽论坛
标题:
POSTROUTING 和 PREROUTING 应用举例
[打印本页]
作者:
beyes
时间:
2014-4-16 11:08
标题:
POSTROUTING 和 PREROUTING 应用举例
1. POSTROUTING 举例
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to 118.88.19.110
复制代码
-t nat
: 选择表,表示使用 Netfilter 的 NAT 机制。
-A POSTROUTING
: 选择功能,表示要执行的操作为 SNAT 机制。
-o eth0
: 选择数据包流向的网口,在执行 SNAT 或 DNAT 时该项必选,否则出错。
-s 192.168.0.0/24
: 指定来源网段。
-j SNAT --to
118.88.19.110
: 如果数据包符合上面给出的条件,那么将源 IP 改为 118.88.19.110,这个就是 NAT 主机对外的公网 IP 了。
经过上面的设置后,处于 192.168.0.0/24 网段中的计算机就可以上网了。可能会对此有疑问,只设置数据包的流出方向,而不设置数据包的进入方向?答案是,我们不必要担心这个问题,因为 Netfilter 的工程师也早已想到,为了我们的方便,就自动的将另一半给补上了,这对于我们来说是透明的。因此,不管使用的是 SNAT 还是 DNAT 规则,NAT 机制都会自动为我们考虑另一个方向的数据包。
2. PREROUTING 举例
iptables -t nat -A PREROUTING -i eth0 -d 118.99.19.110 -j DNAT --to 192.168.1.100
复制代码
如果说 POSTROUTING 是用于内网向外网 NAT 的转换访问,那么 PREROUTING 则用在外网向内网的 NAT 访问了。比如,我们在内网里假设了一台 WEB 服务器(IP 地址为 192.168.1.100),而在路由主机的公网 IP 是 118.99.19.110,这时候就要用到 PREROUTING 。
上面命令的语法和 SNAT 的相似。需要注意的是,POSTROUTING 时,网卡那里是 -o eth0,而 PREROUTING 时,用的是 -i eth0 。整条命令的意思是(以 WEB 服务器为例说明),外网向 118.99.19.110 这个 IP 发送 HTTP 请求时,都转到 192.168.1.00 这台内网计算机上。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2