基于 iptables 转发教程(TCP+UDP)

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