iptables 利用 linux 的一个内核模块进行ip包的转发,工作在 linux 的内核态,不涉及内核态和用户态的状态转换
本脚本支持 CNAME ,支持 TCP + UDP, 不支持端口段转发
1. 准备工作
- 关闭firewalld
- 关闭selinux
- 开启内核端口转发
复制以下代码直接执行即可
systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
sed -n '/^net.ipv4.ip_forward=1/'p /etc/sysctl.conf | grep -q "net.ipv4.ip_forward=1"
if [ $? -ne 0 ]; then
echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
fi
2. 下载 iptables 转发脚本
wget -qO natcfg.sh https://raw.githubusercontent.com/arloor/iptablesUtils/master/natcfg.sh && bash natcfg.sh
输出如下:
用途: 便捷的设置 iptables 端口转发
注意1: 到域名的转发规则在添加后需要等待2分钟才会生效,且在机器重启后仍然有效
注意2: 到IP的转发规则在重启后会失效,这是iptables的特性
你要做什么呢(请输入数字)?Ctrl+C 退出本脚本
1) 增加到域名的转发 3) 增加到IP的转发 5) 列出所有到域名的转发
2) 删除到域名的转发 4) 删除到IP的转发 6) 查看iptables转发规则
#?
此时按照需要,输入1-6中的任意数字,然后按照提示即可
参考来源:
iptablesUtils