Linux下,使用nftables进行端口(域名)转发;支持端口段,自动探测本机IP

仅适用于centos8、redhat8、fedora31

1、特色
实现动态nat:自动探测配置文件和目标域名IP的变化,除变更配置外无需任何手工介入
支持IP和域名
以配置文件保存转发规则,可备份或迁移到其他机器
自动探测本机ip
开机自启动
支持端口段

2、一键关闭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"
if [ $? -ne 0 ]; then
    echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
fi
yum install -y  nftables

3、使用教程

# 必须是root用户
# sudo su

# 下载可执行文件

wget -O /usr/local/bin/nat https://bmvps.com/wp-content/uploads/2020/03/dnat
chmod +x /usr/local/bin/nat

# 生成配置文件,配置文件可按需求修改(请看下文)

cat > /etc/nat.conf < /lib/systemd/system/nat.service <

# 设置开机启动,并启动该服务

systemctl daemon-reload
systemctl enable nat
systemctl start nat

配置文件内容说明

/etc/nat.conf 如下:

SINGLE,49999,59999,baidu.com
RANGE,50000,50010,baidu.com

每行代表一个规则;行内以英文逗号分隔为4段内容
SINGLE:单端口转发:本机49999端口转发到baidu.com:59999
RANGE:范围端口转发:本机50000-50010转发到baidu.com:50000-50010

请确保配置文件符合格式要求,否则程序可能会出现不可预期的错误,包括但不限于你和你的服务器炸掉。
如需修改转发规则,请 vim /etc/nat.conf 以设定你想要的转发规则。修改完毕后,无需重新启动vps或服务,程序将会自动在最多一分钟内更新nat转发规则(PS:受dns缓存影响,可能会超过一分钟)

转自:https://github.com/arloor/nftables-nat-rust

发表评论

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