关于 iptables 入站 出站以及NAT实例
- 格式:doc
- 大小:25.00 KB
- 文档页数:5
关于iptables入站出站以及NAT实例本文是自己工作上的iptables笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!iptbales默认ACCEPT策略,也称通策略,这种情况下可以做拦截策略,还有种叫堵策略,然后开放通的规则。
(我偏向堵策略,自己需要开放什么在开,以下例子也是在此基础上的)iptables 一些参数名称:四表五链:fifter表、NAT表、Mangle表、Raw表。
INPUT 链、OUTPUT链、FORWARD链、PREROUTING链、POSTROUTING链INPUT链–处理来自外部的数据。
OUTPUT链–处理向外发送的数据。
FORWARD链–将数据转发到本机的其他网卡设备上。
PREROUTING链–处理刚到达本机并在路由转发前的数据包。
它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
(NAT表需要开启linux路由net.ipv4.ip_forward = 1)POSTROUTING链–处理即将离开本机的数据包。
它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。
OUTPUT链–处理本机产生的数据包。
iptables 新建时情况所有记录iptables -Fiptables -Xiptables -F -t mangleiptables -t mangle -Xiptables -F -t natiptables -t nat -X开放22 SSH端口iptables -A INPUT -p tcp -p tcp --dport 22 -j ACCEPT (允许外部访问本机的22端口)iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (有进就有出,IP包是来回的)例如一条比较完整的SSH端口限制:(意思为:从eth0进来的SSH访问,除了公司192.168.16.0/24不限制,其他的地址都限制为每个ip最多5个SSH连接,且只为NEW和ESTABLISHED的连接,其他的都拒接)iptables -A INPUT -i eth0 ! -s 192.168.16.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -m connlimit --connlimit-above 5 -j REJECT----iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT (允许本机去ssh其他的服务器的22端口)iptables -A INPUT -p tcp --sport 22 -j ACCEPT设置默认规则为DROPiptables -P INPUT DROPiptables -P OUTPUT DROP此时占时不要service iptables save,先用客户端ssh连接一下服务器,看看可以连接吗?如果不行最起码还可以重启,这样规则没保存重启是不生效,如果保存了发现不通就麻烦一些了!当发现可以SSH的时候,我们就可以继续下面的步骤了!打开回环地址,为了本地访问,如本地访问数据库之类iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT打开服务器的ping功能,我觉得有必要打开,可以检测服务器状况iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT (此2条规则是允许本机ping外网的ip,不包括域名,其中8是icmp的请求,0是icmp的响应)iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT----iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT (此2条规则是允许外部ping本机)iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT允许内部ping外部的域名iptables -A INPUT -p udp --sport 53 -j ACCEPTiptables -A OUTPUT -p udp --dport 53 -j ACCEPT允许外部访问本机的80服务,且只允许新连接的和已经连接的会话(状态检测)iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT允许外部访问我本地多个端口如 8080,8081,8082,且只允许是新连接,已经连接的和已经连接的在延伸出新连接的会话iptables -A INPUT -p tcp -m multiport --dport 8080,8081,8082 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPTiptables -A OUTPUT -p tcp -m multiport --sport 8080,8081,8082 -m state --state ESTABLISHED -j ACCEPT 允许外部访问本机81端口,且本机初始只允许有200个连接,超过了此数量,然后每秒新增加2个连接,如果访问超过此限制则拒接(此方式可以限制一些攻击)iptables -A INPUT -p tcp --dport 81 -m limit --limit 2/s --limit-burst 200 -j ACCEPTiptables -A OUTPUT -p tcp --sport 81 -j ACCEPT限制除用户192.168.16.99以外的IP连接数为50 (相当于可以给自己开特权^_^)iptables -A FORWARD -p tcp -s !192.168.16.99 -m connlimit --connlimit-above 50 -j REJECTTCP匹配扩展协议--tcp-flagsiptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK,RST SYN (表示 SYN,FIN,ACK,RST的标识都检查,但只匹配SYN标识)iptables -A INPUT -p tcp --syn (如果这是为了匹配SYN标识位也可以写成这样,选项—syn相当于”--tcp-flags SYN,RST,ACK SYN”的简写。
iptables 配置nat masquerade规则iptables是Linux操作系统中一个重要的防火墙软件,它可以用来配置和管理网络数据包的转发和过滤规则。
其中一项常见的配置是nat masquerade规则,用于实现网络地址转换(Network Address Translation,NAT),将内部局域网的私有IP地址转换为公共IP地址,实现内网与外网的通信。
本文将逐步解释iptables配置nat masquerade 规则的步骤和原理。
第一步:了解nat masquerade的原理在深入了解iptables配置nat masquerade规则之前,我们首先需要了解nat masquerade的原理。
当内部局域网上的设备通过路由器连接到互联网时,由于内网使用的是私有IP地址,而互联网上使用的是公共IP地址,所以需要进行地址转换。
nat masquerade将内部局域网的私有IP 地址转换为路由器的公共IP地址,使得内网设备可以正常访问互联网。
第二步:确认系统中是否已安装iptables在开始配置nat masquerade规则之前,我们需要确认系统中是否已经安装了iptables。
可以通过在终端执行以下命令来检查:shelliptables -V如果系统已安装iptables,将显示出iptables的版本号和其他信息。
如果系统未安装iptables,可以通过以下命令来安装:shellsudo apt-get install iptables请根据使用的Linux发行版选择相应的命令。
第三步:创建一个新的iptables链接下来,我们需要创建一个新的iptables链来存储nat masquerade规则。
可以使用以下命令创建一个名为"MASQUERADE"的新链:shellsudo iptables -t nat -N MASQUERADE这将在iptables的nat表中创建一个新的自定义链。
Linux命令高级技巧使用iptables进行端口转发和NAT在Linux系统中,iptables是一个非常强大的工具,用于配置和管理网络包过滤规则。
除了基本的网络包过滤功能,iptables还可以用于端口转发和网络地址转换(NAT)。
本文将介绍如何使用iptables进行端口转发和NAT,以及一些高级技巧。
1. 端口转发端口转发是一种将网络流量从一个端口转发到另一个端口的技术。
它在网络中广泛应用于代理服务器、端口映射、负载均衡等场景。
下面是使用iptables进行端口转发的示例命令:```iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.100:80```在上述命令中,`-t nat`表示我们要操作的是`nat`表,`-A PREROUTING`表示将规则添加到`PREROUTING`链中,`-p tcp --dport 8080`表示匹配TCP协议和目标端口号8080,`-j DNAT`表示采取目标网络地址转换,`--to-destination 192.168.0.100:80`表示将数据包转发到目标IP地址192.168.0.100的80端口。
2. 网络地址转换(NAT)网络地址转换(NAT)是一种将私有网络中的IP地址转换为公共网络中的IP地址的技术。
它广泛应用于家庭网络和企业网络中,允许多台设备共享一个公共IP地址。
下面是使用iptables进行NAT的示例命令:```iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE```在上述命令中,`-t nat`表示我们要操作的是`nat`表,`-A POSTROUTING`表示将规则添加到`POSTROUTING`链中,`-s192.168.0.0/24`表示源IP地址为192.168.0.0/24的网络,`-o eth0`表示出去的网络接口为eth0,`-j MASQUERADE`表示使用动态地址转换。
Linux下iptables超详细教程和使⽤⽰例iptables的结构:iptables由上⽽下,由Tables,Chains,Rules组成。
⼀、iptables的表tables与链chainsiptables有Filter, NAT, Mangle, Raw四种内建表:1. Filter表Filter是iptables的默认表,它有以下三种内建链(chains):INPUT链 – 处理来⾃外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他⽹卡设备上。
2. NAT表NAT表有三种内建链:PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。
它会转换数据包中的⽬标IP地址(destination ip address),通常⽤于DNAT(destination NAT)。
POSTROUTING链 – 处理即将离开本机的数据包。
它会转换数据包中的源IP地址(source ip address),通常⽤于SNAT(source NAT)。
OUTPUT链 – 处理本机产⽣的数据包。
3. Mangle表Mangle表⽤于指定如何处理数据包。
它能改变TCP头中的QoS位。
Mangle表具有5个内建链(chains):PREROUTINGOUTPUTFORWARDINPUTPOSTROUTING4. Raw表Raw表⽤于处理异常,它具有2个内建链:PREROUTING chainOUTPUT chain5.⼩结⼆、IPTABLES 规则(Rules)规则的关键知识点:Rules包括⼀个条件和⼀个⽬标(target)如果满⾜条件,就执⾏⽬标(target)中的规则或者特定值。
如果不满⾜条件,就判断下⼀条Rules。
⽬标值(Target Values)在target⾥指定的特殊值:ACCEPT – 允许防⽕墙接收数据包DROP – 防⽕墙丢弃包QUEUE – 防⽕墙将数据包移交到⽤户空间RETURN – 防⽕墙停⽌执⾏当前链中的后续Rules,并返回到调⽤链(the calling chain)中。
Iptables 应用解析II---NAT/Mangle (ZZ)来源: ChinaUnix博客日期:2009.04.29 21:15(共有条评论) 我要评论Iptables 应用解析II---NAT/Mangle上篇Filter的解析已是一周前的事了,上周一直比较忙也没时间整理繁琐的笔记.呵呵,这周补上吧!接上篇Filter来介绍NAT Mangle的功能及用法.亦附上数据穿越IP层的示意图:1.NAT --- Network Address Translation 网络地址转换网络地址转换即改变数据包的源/目的地址,做过NAT操作的数据包的地址就被改变了,当然这种改变是根据我们的规则进行的。
属于一个流的包只会经过这个表一次。
如果第一个包被允许做NAT或Masqueraded,那么余下的包都会自动地被做相同的操作。
也就是说,余下的包不会再通过这个表,一个一个的被NAT,而是自动地完成。
这就是我们为什么不应该在这个表中做任何过滤的主要原因。
PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,OUTPUT链改变本地产生的包的目的地址,POSTROUTING链在包就要离开防火墙之前改变其源地址。
所以NAT分为SNAT DNAT SNAT作用只限于POSTROUTING 而DNAT作用于PREROUTING OUTPUTA.SNAT 源地址NAT常用于linux网关例:内网10.0.0.0/8 外网192.168.14.14/24 内网通过此外网机器访问外网#iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j SNAT --to 192.168.14.14 网关凡是来自内网10.0.0.0/8的包,把src换成192.168.14.14转发出若把-j SNAT --to192.168.14.14换为MASQUERDE 适合动态可变的IP,即根据本机路由选择IP 注:DNAT由网关192.168.14.14自动完成B.DNAT 目的地址NAT常用于解决内网的Server发布内网端口的映射例:内网:10.0.0.2/8:80 外网:192.168.14.14/24:8001#iptables -t nat -A PREROUTING -d 192.168.14.14 -p tcp --dport 8001 -j DNAT --to10.0.0.2:80凡目的地址为192.168.14.14:8001的数据包目的地址改为10.0.0.2:80注:--to [ipaddr]-[ipaddr] [:port-port] 可多IP(范围)作负载均衡(轮转),但存在单点故障#iptables -t filter -A FORWARD -p udp -j DROP#iptables -t nat -A PREROUTING -s 10.0.0.0/8 -p udp --dport 53 -j DNAT --to192.168.14.254上面二条规则限制网关将不转发udp包,内网的任何DNS查询将被发往指定的企业DNS服务器,实现DNS的透明代理.#iptables -t nat -A PREROUTING -s 10.0.0.0/8 -p tcp--dport 80 -j DNAT --to 192.168.14.14:3128 此句实现web透明代理#iptables -t nat -I PREROUTING -m mac --mac-source 00:1A:A0:98:B1:6E -j DROP#iptables -A FORWARD -i eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT 网关常用 #iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 端口NAT #iptables -A FORWARD -s 192.168.1.189 -m limit –limit 20/s -j ACCEPT#iptables -A FORWARD -s 192.168.1.189 DROP 以二句用在网关上限速..iprange模块的应用..#iptables -t nat -I PREROUTING -i eth2 -m iprange--src-range 192.168.1.102-192.168.1.102 -j ACCEPT #iptables -t nat -A PREROUTING -m iprange --src-range 192.168.0.20-192.168.0.255 -i eth1 -p tcp -m tcp --dport 1:65535 -j REDIRECT --to-ports 80string模块的应用..#iptables -I FORWARD -s 192.168.1.189 -m string --string "" -j DROP-m comment --comment "denny go to "#iptables -I FORWARD -m string --string "腾讯" -j DROP#iptables -I FORWARD -s 192.168.1.189 -m string --string "" -j DROP#iptables -I FORWARD -p tcp --sport 80 -m string --string "广告" -j DROPcomment模块的应用..#iptables -I FORWARD -s 192.168.1.189 -p tcp --dport 80 -j DROP-m comment --comment "the bad guy can not online"#iptables -I FORWARD -s 192.168.3.159 -m string --string "" -j DROP-m comment --comment "denny go to "其它常应用:#iptables -t nat -I PREROUTING -p udp --dport 53 -j ACCEPT#iptables -t nat -I PREROUTING -p tcp --dport 80 -j ACCEPT#iptables -t nat -I PREROUTING -p gre -j ACCEPT#iptables -t nat -I PREROUTING -p icmp -j ACCEPT#iptables -A INPUT -i tun+ -j ACCEPT#iptables -A FORWARD -i tun+ -j ACCEPT2.Mangle 数据包高级管理这个表主要用来mangle数据包。
iptables系统配置防火墙和NAT功能的实例学习来源: ChinaUnix博客日期:2007.11.01 11:55(共有0条评论) 我要评论关于Slackware 9.1.0 的配置说明********************************************************** ********关于防火墙系统恢复操作和启动方法说明******************** **********************************************************该系统主要作用就是对内部服务器作静态nat映射和端口访问控制。
在防火墙中,系统启动时已经自动启动了以上防火墙脚本,启动位置为:/etc/rc.d/rc.local文件中,sh /etc/rc.d/nat_firewall.sh #在系统启动时自动启动该脚本如果需要手动启用防火墙和静态nat映射功能,操作以下步骤即可。
cd /etc/rc.d/./portnat.sh如果用户不需要对内部服务器作任何端口控制,只需要作静态nat映射,只要执行以下文件,即可恢复不设防火墙状态。
cd /etc/rc.d/./no_firewall.sh*********************************************************** *****关于Slackware 9.1.0 系统配置防火墙和NAT功能的配置说明*********(nat_firewall.sh) ***********************************************************#!/bin/sh# make:zcatlinux# time:2004-06-18# e-mail:xuequansongmo@PATH=/sbin:/bin:/usr/sbin:/usr/bin#设置内部服务器对外的tcp端口,如果需要修改对内部访问的端口号,直接在这里修改即可,#添加规则就是之间端口号之间有一个空格就可以了。
Iptables防火墙与NAT的服务(一) Iptables防火墙与NAT的服务防火墙是保护计算机及网络的一种重要安全措施,常用的防火墙包括硬件防火墙和软件防火墙。
Iptables是一种常用的软件防火墙,它具有灵活性高、配置简单等优点。
除了提供基本的网络安全功能外,Iptables还可以提供网络地址转换(NAT)的服务。
下面将详细介绍Iptables防火墙和NAT的服务。
一、Iptables防火墙1. Iptables的基本概念和功能Iptables是一种Linux内核防火墙工具,用于过滤网络数据包。
它提供了一种灵活的配置方式,可以根据管理员的需求,对网络数据包进行过滤、修改或重定向等操作。
常用的Iptables命令包括iptables -L、iptables -F、iptables -A等。
2. Iptables的配置文件Iptables的配置文件位于/etc/sysconfig/iptables,管理员可以通过编辑该文件来进行防火墙规则的添加、修改和删除。
每个规则由一个匹配条件和一个动作组成,如果数据包符合规则中的匹配条件,则执行规则中的动作。
3. Iptables的过滤规则Iptables支持不同类型的过滤规则,常见的规则如下:(1)INPUT:用于控制进入本机的数据包(2)OUTPUT:用于控制从本机出去的数据包(3)FORWARD:用于控制转发的数据包(4)PREROUTING:用于控制数据包到达本机前进行的操作(5)POSTROUTING:用于控制数据包离开本机后进行的操作二、NAT的服务1. NAT的基本概念NAT是一种网络地址转换技术,用于将一个IP地址转换成另一个IP地址,从而实现内网与外网之间的通信。
NAT常用于家庭或办公网络中,因为内网只有一个IP地址,而多个设备需要共享该IP地址。
NAT还可以提高网络安全性,因为外网无法直接访问内网设备。
2. Iptables的NAT规则Iptables可以通过NAT规则实现网络地址转换。
关于 iptables 入站出站以及NAT实例本文是自己工作上的iptables笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!iptbales默认ACCEPT策略,也称通策略,这种情况下可以做拦截策略,还有种叫堵策略,然后开放通的规则。
(我偏向堵策略,自己需要开放什么在开,以下例子也是在此基础上的)iptables 一些参数名称:四表五链:fifter表、NAT表、Mangle表、Raw表。
INPUT链、OUTPUT链、FORWARD链、PREROUTING链、POSTROUTING链INPUT链–处理来自外部的数据。
OUTPUT链–处理向外发送的数据。
FORWARD链–将数据转发到本机的其他网卡设备上。
PREROUTING链–处理刚到达本机并在路由转发前的数据包。
它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
(NAT表需要开启linux路由 net.ipv4.ip_forward = 1)POSTROUTING链–处理即将离开本机的数据包。
它会转换数据包中的源IP 地址(source ip address),通常用于SNAT(source NAT)。
OUTPUT链–处理本机产生的数据包。
iptables 新建时情况所有记录iptables -Fiptables -Xiptables -F -t mangleiptables -t mangle -Xiptables -F -t natiptables -t nat -X开放22 SSH端口iptables -A INPUT -p tcp -p tcp --dport 22 -j ACCEPT (允许外部访问本机的22端口)iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT (有进就有出,IP包是来回的)例如一条比较完整的SSH端口限制:(意思为:从eth0进来的SSH访问,除了公司192.168.16.0/24不限制,其他的地址都限制为每个ip最多5个SSH连接,且只为NEW和ESTABLISHED的连接,其他的都拒接)iptables -A INPUT -i eth0 ! -s 192.168.16.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -m connlimit --connlimit-above 5 -j REJECT----iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT (允许本机去ssh其他的服务器的22端口)iptables -A INPUT -p tcp --sport 22 -j ACCEPT设置默认规则为DROPiptables -P INPUT DROPiptables -P OUTPUT DROP此时占时不要service iptables save,先用客户端ssh连接一下服务器,看看可以连接吗?如果不行最起码还可以重启,这样规则没保存重启是不生效,如果保存了发现不通就麻烦一些了!当发现可以SSH的时候,我们就可以继续下面的步骤了!打开回环地址,为了本地访问,如本地访问数据库之类iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT打开服务器的ping功能,我觉得有必要打开,可以检测服务器状况iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT (此2条规则是允许本机ping外网的ip,不包括域名,其中8是icmp的请求,0是icmp的响应)iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT----iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT (此2条规则是允许外部ping本机)iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT允许内部ping外部的域名iptables -A INPUT -p udp --sport 53 -j ACCEPTiptables -A OUTPUT -p udp --dport 53 -j ACCEPT允许外部访问本机的80服务,且只允许新连接的和已经连接的会话(状态检测)iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT允许外部访问我本地多个端口如 8080,8081,8082,且只允许是新连接,已经连接的和已经连接的在延伸出新连接的会话iptables -A INPUT -p tcp -m multiport --dport 8080,8081,8082 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPTiptables -A OUTPUT -p tcp -m multiport --sport 8080,8081,8082 -m state --state ESTABLISHED -j ACCEPT允许外部访问本机81端口,且本机初始只允许有200个连接,超过了此数量,然后每秒新增加2个连接,如果访问超过此限制则拒接(此方式可以限制一些攻击)iptables -A INPUT -p tcp --dport 81 -m limit --limit 2/s --limit-burst 200 -j ACCEPTiptables -A OUTPUT -p tcp --sport 81 -j ACCEPT限制除用户192.168.16.99以外的IP连接数为50 (相当于可以给自己开特权^_^)iptables -A FORWARD -p tcp -s !192.168.16.99 -m connlimit --connlimit-above 50 -j REJECTTCP匹配扩展协议--tcp-flagsiptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK,RST SYN (表示SYN,FIN,ACK,RST的标识都检查,但只匹配SYN标识)iptables -A INPUT -p tcp --syn (如果这是为了匹配SYN标识位也可以写成这样,选项—syn相当于”--tcp-flags SYN,RST,ACK SYN”的简写。
)实例://nmap-xmasiptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP (检查所以的标识位,匹配到FIN URG PSH的丢弃)//nmap-pushiptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP (检查所以的标识位,匹配到SYN RST ACK FIN URG的丢弃)// Nulliptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP (检查所以的标识位,没标志位的丢弃)iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP(检查SYN,RST标识位,匹配到 SYN,RST的丢弃,SYN是建立连接,RST是重置连接,所以这样的包是有问题的)iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP (检查SYN,FIN标识位,匹配到 SYN,FIN的丢弃,SYN是建立连接,FIN是结束连接,所以这样的包是有问题的)iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j DROPiptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROPSNAT 和 DNATSNAT:假如我要让公司192.168.10.0/24段的地址都通过linux服务器的eth0 :123.123.123.123上网iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 123.123.123.123DNATGATEWAY eth0:123.123.123.123 eth1:192.168.10.1 内网主机:192.168.10.10 要使访问123.123.123.123的80 自动跳到192.168.10.10的80端口上iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 --dport 80 -j DNAT --to-destination 192.168.10.10:80iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.10 --dport 80 -j SNAT --to-source 192.168.10.1 (内网之间进行nat才加上)第一条:将外部数据包的目的地址改到内网主机的指定端口第二条:转发前,将外部源地址改为内网本地地址。