永久开启转发功能,解决方法:编辑/etc/sysctl.conf或者其他相关配置文件,添加或修改以下行():


net.ipv4.ip_forward=1
#下面直接输入
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

然后执行启动命令

sudo sysctl -p

先在内核里打开ip转发功能(可能是临时的)

echo 1 > /proc/sys/net/ipv4/ip_forward

用ifconfig命令查看网卡名称,默认一般是eth0。然后在终端里输入这条命令:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 10000:20000 -j DNAT --to-destination :8443
(我用的服务器监听端口是50002,所以这里我把端口8443改为50002)

特别说明:8443 也是要开放端口。

在 Debian11 系统上,可以使用 iptables-persistent 包来保存和恢复 iptables 规则

apt install iptables-persisten

或者

apt-get update
apt-get install iptables-persistent -y
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 10000:20000 -j DNAT --to-destination :8443
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

保存当前规则

sudo iptables-save > /etc/iptables/rules.v4  # IPv4 规则
sudo ip6tables-save > /etc/iptables/rules.v6  # IPv6 规则

如果无法转发,请检查 网卡是否是eth0 ,用ifconfig查看

记得使用 下面命令 先删除前面的错误规则

sudo iptables -t nat -D PREROUTING -i eth0 -p udp --dport 10000:20000 -j DNAT --to-destination :8443

查看 端口转发列表

iptables -t nat -L

遇到重启后规则无法保存的情况,请重新安装iptables,内核版本也会引起无法保存的规则如(XANMOD官方内核)。

sudo apt-get remove iptables
#用这个脚本安装,需要注意,它可能识别错误的IP地址,造成转发失败
wget -N --no-check-certificate https://www.idcbest.com/js/iptables-pf.sh && chmod +x iptables-pf.sh && bash iptables-pf.sh


标签: none

添加新评论