Centos 6 + iptables 作为网关NAT转发、端口转发笔记

By | 2018 年 7 月 15 日

偶尔会使用iptables的NAT转发功能,但是每次都没做笔记。每次都忘记导致调试半天。还是做个笔记吧:
首先开启ip转发功能

echo "1" > /proc/sys/net/ipv4/ip_forward
#修改net.ipv4.ip_forward = 1 
vim /etc/sysctl.conf
#生效配置文件。
sysctl -p 

以下命令3选一

#只指定出口网卡
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#指定只转发192.168.254.0/24段与出口网卡
iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j MASQUERADE
#指定只转发192.168.254.0/24段与出口IP 192.184.1.2
iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -j SNAT --to-source 192.184.1.2

只放行192.168.254.0/24网段转发

iptables -P FORWARD DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.254.0/24 -j ACCEPT

端口映射

#把eth0网卡的TCP 21999端口映射给192.168.254.6的8999(如果前后两个端口相同,后面可以不写)
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 21999 -j DNAT --to-destination 192.168.254.6:8999
#放行TCP 8999端口转发
iptables -A FORWARD -p tcp -m tcp --dport 8999 -j ACCEPT 
#把eth0网卡的UDP 21999端口映射给192.168.254.6的8999(如果前后两个端口相同,后面可以不写)
iptables -t nat -A PREROUTING -i eth0 -p udp -m udp --dport 21999 -j DNAT --to-destination 192.168.254.6:8999
#放行UDP 8999端口转发
iptables -A FORWARD -p udp -m udp --dport 8999 -j ACCEPT
#列出所有转发规则
iptables -t nat -L -n 

3 thoughts on “Centos 6 + iptables 作为网关NAT转发、端口转发笔记

  1. Gimi.Shi

    您好, 我在 Centos 7.5 上部署了 KVM 创建了一个虚拟机器, 采用 NAT 方式(默认的 default), 现在虚拟机都安装好了, VNC 也正常访问, 但是一直配置不好端口转发. 想请教一下您.

    宿主机: 192.168.7.2
    NAT: 192.168.122.1 virbr0
    虚拟机: IP 配置为192.168.122.240 window 2008r2

    现在想把宿主机的13389端口转发到虚拟机的3389端口, 按网上配置了好几次都不行. 搞了几天了.
    所以想请您帮帮忙. 谢谢.

    Reply

回复 hitsword 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注