IPtables实现nat方式的流量转发

NAT可以方便的完成这种流量穿通功能,即把外网数据通过NAT(中转设备)来穿透进内网,内网数据通过NAT(中转设备)穿透出外网。

那linux下iptables如何实现nat转发?这里将以Debian7主机下的测试为例。

1、开启IP_FORWARD

vi /etc/sysctl.conf
#在文件末添加以下一行(如已有则不必添加,直接将注释解除即可)
net.ipv4.ip_forward=1

2、使用IPTABLES,转发TCP、UDP流量

#TCP
iptables -t nat -A PREROUTING -p tcp --dport 映射地址 -j DNAT --to-destination 目标地址:目标端口
iptables -t nat -A POSTROUTING -p tcp -d 目标地址 --dport 目标端口 -j SNAT --to-source 映射地址

#UDP
iptables -t nat -A PREROUTING -p udp --dport 映射地址 -j DNAT --to-destination 目标地址:目标端口
iptables -t nat -A POSTROUTING -p udp -d 目标地址 --dport 目标端口 -j SNAT --to-source 映射地址

#其中“目标地址:目标端口”是目标服务器的IP与端口,“映射地址”是本机的公网IP。

3、保存IPTABLES

#这里使用 iptables-save 保存iptables配置,也可以使用其他方法保存。
iptables-save > /etc/iptables.up.rules

需要注意的是,并非所有服务器环境都支持UDP转发,具体操作过程中需要根据实际情况。

相关推荐:
如果碰巧你使用的是官方tar包,那么恭喜你,你make的时候可能会遇到如下错误,很多网友都会遇到的。 ../src/.libs/libeglib.a(libeglib_la-gunicode.o): In function `monoeg_g_get_charset':/root/mono/eglib/src/g …
软件的安装 Linux下软件的安装主要有两种不同的形式。第一种安装文件名为xxx.tar.gz;另一种安装文件名为xxx.i386.rpm。以第一种方式发行的软件多为以源码形式发送的;第二种方式则是直接以二进制形式发送的。 先普 …
在编译php的时候,经常会遇到一些依赖的问题,比如这里曝露出的curl问题,具体的出错信息为: configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/ …
PureFTP是目前很多Linux平台流行的FTP服务端之一,最近配置服务器使用到了PureFTP,中间也出现了各种连接问题,总之就是无法正常传输数据,防火墙也开放了21端口,但最要命的是客户端使用被动模式怎么也连不上。 我 …
一般我们在更换DNS源或配置了HOSTS后,刷新DNS缓存让你可以得到新的域名解析。当你无法正确访问一个新注册的域名时就可以刷新dns缓存试试,但是不同的系统如Windows、Mac OS和Linux上的方法是不一样的。 如果是 Win …
拿起手机扫一扫即可带走我!