用 iptables 做端口映射

最近 DNS 服务器在局部地区出现污染的情况,原本为了简单易用的初衷没有开启非标准端口,现在看来不得不开启了。

这里使用 iptables 进行流量端口映射

首先执行下面命令开启流量转发功能 (仅 CentOS)

echo '1' > /proc/sys/net/ipv4/ip_forward
echo '1' > /proc/sys/net/ipv6/ip_forward   # IPv6 用户选用

接下来添加流量转发规则,将外网 5353 的端口映射到服务器内部 53 端口

iptables -t nat -A PREROUTING -p udp --dport 5353 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 5353 -j REDIRECT --to-ports 53

保存规则

centOS

/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart

Ubuntu

iptables-save > /etc/iptables.up.rules