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转发,具体操作过程中需要根据实际情况。

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • 如果碰巧你使用的是官方tar包,那么恭喜你,你make的时候可能会遇到如下错误,很多网友都会遇到的。 ../src/.libs/libeglib.a(libeglib_la-gunicode.o): In function `monoeg_g_get_charset':/root/mono/egli...
  • 配置时区的命令是: $sudo dpkg-reconfigure tzdata(root下无须sudo) 它会改这两个文件: 1. /etc/timezone 2. /etc/localtime 第一个文件写的是系统的时区,国内默认为 Asia/Shanghai 第二个文件还可以这样改 ln -sf...
  • 首先我们来大致评估下问题的根源,从报错的信息来看肯定是出在环境变量的配置上。 有两种情况导致环境变量出现异常: 1.增加了自定义的环境变量到文件中,结果没留意,“=”两旁出现了空格,如: export TEST = "test" 像上面显示的那样,存在了空格,导致了异常。 2.文件的格式被改 很可能...
  • 在 Linux 中为了安全起见,小于1024的端口都归root用户所有,其他用户没有使用这些端口的权限。 因此大量的新手或粗心的运维就会遇到伤害了。怎么解决呢?有两种方式,一种是用 root 账户来执行,另一种就是利用 iptables 进行端口转发。 但是若是用 root 账户来启动服务,如 to...
  • 这是源码安装软件时配置环境用的,根据你的配置选项和你的系统情况生成makefile文件,为make 做准备。 最常用的参数就是: ./configure --prefix=xxx 若不指定prefix,则可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置...
微信扫一扫即可带走我!