SNAT(源地址转换)主要用于修改数据包的源IP和源端口,一般在nat表的PREROUTING链中增加规则:局域网内所有设备要上外网,如果每个设备都分配一个公网ip成本太大,可以在路由器出口分配一个公网ip,局域网内的设备访问外网时统一走路由器出口,路由器此时需要做两件事: 数据包从出口出去之前,将数据包的源地址和源端口改成...
iptables -t nat -A PREROUTING -s 0/0 -d 1.0.0.2 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.22:80 SNAT :源地址转换,静态地址转换,我指定多少地址,就只能转换多少地址. 示例: iptables -t nat -A POSTROUTING -s 10.0.1.0/24 ! –d 10.0.1.0/24 -j SNAT --to-source 172.18.1.6...
如:把内网中的80端口映射到路由器外网端口上(路由前,修改目的地址的) Postrouting 用来修改源地址用来做SNAT 。如:内网通过路由器NAT转换功能实现内网PC机通过一个公网IP地址上网 (家庭路由,SNAT) 总结:iptables 三个表,5个链接 Raw 表:用于异常处理,包括的链有prerouting,output ;一般使用不当 列出iptables 的规则...
FORWARD: 处理转发数据包,匹配流经本机的数据包 PREROUTING: 在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上 POSTROUTING: 在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址...
PREROUTING链:用于在数据包进入其他表之前进行原始处理,通常用于设置连接跟踪规则。 而NAT是iptables中的一项主要功能,主要包括源地址转换(SNAT)和目标地址转换(DNAT)。在iptables的NAT功能中,主要涉及到三个链(Chain): PREROUTING链 POSTROUTING链。 FORWARD链。
prerouting 链中的规则存放于三张表中,而这三张表中的规则执行的优先级如下:raw --> mangle --> nat 但是我们知道,iptables为我们定义了4张"表",当他们处于同一条"链"时,执行的优先级如下。优先级次序(由高而低):raw --> mangle --> nat --> filter 但是我们前面说过,某些链天生就不能使用某些...
PREROUTING 一般用作对包进行目标地址修改。比如将该包的目标地址,修改为非本机的另外的网络ip,一般通过DNAT规则进行修改。 路由决策(Routing Decision) 决定一个包该走哪个链。如果上述PREROUTING 链对包进行了目标网络ip更改。那么决策会觉得这个是一个需要转发的数据包,于是会将该包转发给 FORWARD 链。
iptables五种链接分别是prerouting、input 、output 、forward 、postrouting prerouting:流入的数据包进入路由表之前。 input :通过路由表判断后目的地址是本机,然后进入本机内部资源。 output :由本机产生的数据向外转发 forward :通过路由表判断目的地址是本机,然后通过路由转发到其他地方。
Raw 表目的是跳过其它表,所以只需要在接收和发送两大过程的最开头处把关,所以只需要用到 PREROUTING 和 OUTPUT 两个钩子。 Mangle 表有可能会在任意位置都有可能会修改网络包,所以它是用到了全部的钩子位置。 NAT 分为 SNAT(Source NAT)和 DNAT(Destination NAT)两种,可能会工作在 PREROUTING、INPUT、OUTPUT、POST...