我们一直在努力

Linux系统下使用nftables进行端口转发教程,支持DDNS动态IP/端口转发设置

nftables是用于替换iptables的数据包过滤框架,目前已在Centos、debian等最新Linux系统发行版作为生产工具提供。相比较iptables,nftables优势更明显、支持对动态IP进行转发、端口段转发、自动检测本机IP等,以配置文件保存转发规则、对其设置更轻松。

1605623983-20201117223955

前言:适用于centos8、redhat8、fedora31和支持nftables的debian系linux发行版如debian10,项目地址:https://github.com/arloor/nftables-nat-rust

1、一般情况下,Linux最新发行版会默认安装nftables,使用以下命令关闭firewalld、关闭selinux、开启内核端口转发、安装nftables;

service firewalld stop
systemctl disable firewalld
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"
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ $? -ne 0 ]; then
echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
fi
yum install -y  nftables

2、下载可执行文件并赋予执行权限;

wget -O /usr/local/bin/nat https://zhujiget.com/wp-content/uploads/sh/dnat
chmod +x /usr/local/bin/nat

3、创建systemd服务;

cat > /lib/systemd/system/nat.service <<EOF
[Unit]
Description=dnat-service
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/nat /etc/nat.conf
LimitNOFILE=100000
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target
EOF

4、设置为开机启动,并启动该服务;

systemctl daemon-reload
systemctl enable nat
systemctl start nat

5、生成配置文件,也可以使用 vi /etc/nat.conf 命令添加删除修改转发规则;

cat > /etc/nat.conf <<EOF

SINGLE,22222,6666,zhujiget.com

RANGE,10000,20000,zhujiget.com

EOF

注释:

  • 每行代表1个规则,行内以英文逗号分隔为4段内容
  • SINGLE:代表单端口转发:本机22222端口转发到远程zhujiget.com域名或IP的6666端口
  • SINGLE:代表端口段转发:本机10000-20000转发到远程zhujiget.com域名或IP的10000-20000端口

6、停止以及卸载命令

## 停止定时监听域名解析地任务
service nat stop
## 清空nat规则
nft add table ip nat
nft delete table ip nat
## 禁止开机启动
systemctl disable nat
博客声明与版权说明
重要声明
内容性质说明
本博客专注于记录博主个人对服务器产品的测评体验与相关优惠资讯,不从事任何主机、服务器租赁业务,不参与任何交易,亦非中介机构。博客所载信息均来源于网络公开渠道或服务商主动提供,仅供个人记录与交流之用。
免责声明
本博客对所刊载内容不作任何明示或默示的保证(包括但不限于准确性、完整性、时效性),内容不构成任何购买、使用建议或引导。访问者请自行甄别信息,独立作出判断并承担相应风险。
合规使用要求
访问本博客请严格遵守中华人民共和国及所在地区有关互联网的各项法律法规。严禁利用本博客提及的任何内容从事违法违规活动,由此产生的一切法律责任与后果由行为人自行承担。
访问资格
未成年人及不具备独立承担法律责任能力的个人或群体请勿访问本博客。
协议生效
您一旦访问本博客,即视为您已充分阅读、理解并同意接受本声明的全部条款。
版权声明
本站原创内容采用 知识共享 署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0) 进行授权。
转载、引用请注明原文出处与作者信息。
文章名称:《Linux系统下使用nftables进行端口转发教程,支持DDNS动态IP/端口转发设置》
文章链接:https://www.52pchome.com/8569.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。