iptables实现网口数据转发

当wifi的数据想通过运营商网络访问外网时,需要将wifi的数据转发到运营商网络的网卡上。

需要在主机上打开 ip 转发以保持连接通道。

查看是否已打开 ip 转发(1 表示打开):

cat /proc/sys/net/ipv4/ip_forward

如果未打开,则用以下命令打开:

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

POSTOUTING链:用于源地址转换(SNAT)。

MASQUERADE:IP伪装(NAT),用于ADSL。

如何区分SNAT和DNAT

从定义来讲它们一个是源地址转换,一个是目标地址转换。都是地址转换的功能,将私有地址转换为公网地址。

要区分这两个功能可以简单的由连接发起者是谁来区分:

内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。

当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。

在配置防火墙或者路由acl策略时要注意这两个NAT一定不能混淆。


查看规则: 

iptables -t nat -vnL POSTROUTING --line-number

你可能感兴趣的:(wifi)