iptables端口转发配置

AI摘要

正在生成中……


步骤 1:开启 IP 转发,并设置为永久生效

1
2
3
4
5
6
7
8
9
# 立即开启 IP 转发
echo 1 > /proc/sys/net/ipv4/ip_forward

# 写入配置文件以确保重启后仍生效
sed -i '/^net.ipv4.ip_forward/d' /etc/sysctl.conf
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

# 应用更改
sysctl -p

步骤 2:设置 iptables 端口转发规则

替换 1.2.3.4 为你的落地机真实 IP:

1
2
3
4
5
6
7
# TCP 端口转发
iptables -t nat -A PREROUTING -p tcp --dport 52492 -j DNAT --to-destination 1.2.3.4:12492
iptables -t nat -A POSTROUTING -p tcp -d 1.2.3.4 --dport 12492 -j MASQUERADE

# UDP 端口转发
iptables -t nat -A PREROUTING -p udp --dport 52492 -j DNAT --to-destination 1.2.3.4:12492
iptables -t nat -A POSTROUTING -p udp -d 1.2.3.4 --dport 12492 -j MASQUERADE

步骤 3:保存 iptables 规则为永久

crontab实现

1
2
@reboot iptables -t nat -A PREROUTING -p tcp --dport 52492 -j DNAT --to-destination 1.2.3.4:12492
@reboot iptables -t nat -A POSTROUTING -p tcp -d 1.2.3.4 --dport 12492 -j MASQUERADE

步骤 4:让 ufw 允许转发的连接通过

UFW 默认禁止 FORWARD,你需要显式允许转发流量。

执行:

1
ufw default allow FORWARD

这个命令会修改 /etc/default/ufw 并立即生效,允许系统进行转发。

步骤 5:如何查看 / 删除 iptables 规则?

🔍 查看规则(含行号)

1
iptables -t nat -L -n --line-numbers

输出大概像这样:

1
2
3
4
5
6
7
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:52492 to:1.2.3.4:12492

Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 MASQUERADE tcp -- 0.0.0.0/0 1.2.3.4 tcp dpt:12492

删除规则(按编号)

比如你看到 PREROUTING 中第1条就是你刚加的:

1
iptables -t nat -D PREROUTING 1

同样地,删除 POSTROUTING:

1
iptables -t nat -D POSTROUTING 1

注: v2rayN那里落地机节点修改地址和端口为中转机的