iptables转发实战教程,一条命令搞定端口映射,简直太爽了!

在你配置VPS时,是不是也被“端口转发”这几个字搞得头晕脑涨?面对 iptables 时不知道从那下手,所以这一篇文章我就告诉你iptables转发,如何它学会、用好、用爽。用通俗易懂的方式,配合实战指令,让你从一个怕 iptables 的人也可以变成高手。

iptables转发实战教程,一条命令搞定端口映射,简直太爽了!

一、iptables转发到底是干嘛用的?

iptables 是 Linux 自带的防火墙系统,转发(Forwarding)功能,就是去把一个端口的访问请求转移到另一个IP或端口。

你在 VPS 上部署了一个本地服务(比如 docker 容器、内网服务),监听的是 127.0.0.1:8000,外网访问不到。你有一台服务器做跳板,希望把外部端口 8080 映射到内网中某个服务 192.168.1.10:80。你在用 VPS 做某种“端口代理”或“翻转访问”,比如将 HTTP 转发至某个局域网服务或本机其他服务端口。

这时候,iptables 的 NAT表 + FORWARD链 + PREROUTING / POSTROUTING 出场了!

二、iptables转发配置实战

第一步:开启内核转发

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

或者修改配置文件:vim /etc/sysctl.conf

添加或取消注释:net.ipv4.ip_forward = 1

然后执行:sysctl -p

这一步不做,iptables 配再多也不会生效!

第二步:配置端口转发(常见PREROUTING用法)

场景外部访问VPS的 公网IP:8080,自动转发到 VPS 内部的 127.0.0.1:8000

iptables -t nat -A PREROUTING -p tcp –dport 8080 -j REDIRECT –to-port 8000

这条命令的意思是:监听进入8080端口的TCP请求;将它重定向到本机的8000端口上;

场景外部访问 公网IP:8080,转发到“另一个IP”的某个端口(跨主机)

iptables -t nat -A PREROUTING -p tcp -d YOUR_PUBLIC_IP –dport 8080 -j DNAT –to-destination 192.168.1.100:80

别忘了加 FORWARD 链允许转发:iptables -A FORWARD -p tcp -d 192.168.1.100 –dport 80 -j ACCEPT

这一种用法适用于做 端口跳板 或 内网穿透出口代理。

第三步(可选):让本机出去的连接使用伪装(源地址伪装)

iptables -t nat -A POSTROUTING -j MASQUERADE

这适用于数据需要返回给公网IP,而不是“原始内部源IP”。

查看当前规则 iptables -t nat -L -n -v

保存规则(不同系统略有不同):

Debian/Ubuntu:

apt install iptables-persistent netfilter-persistent save

CentOS/RHEL:

service iptables save

三、iptables转发常见误区

忘了开启内核转发!你配得再漂亮,net.ipv4.ip_forward=0 也是白搭。

配置了 PREROUTING 却没设 FORWARD 规则,转发没被允许,数据包自然“中道崩殂”。

公网IP写错或漏了 -d 参数,有时候不指定 -d 的目标IP 会导致规则无效。

没有做 NAT 出口伪装,数据返回的路径不对,被目标主机直接丢弃了。

规则未持久化,重启就失效,做完记得保存,否则下次重启等于白干。

四、iptables转发适配场景总结

使用场景具体做法是否建议
本地端口映射REDIRECT非常实用
跨IP转发DNAT + FORWARD需要搭配配置
NAT 伪装POSTROUTING常用于数据返回
内网穿透配合VPN或Wireguard更优更复杂但更灵活

总结

搞定iptables转发,你的VPS就不再是单机。很多人玩 VPS 只会开服务,顶多开个宝塔,但你如果想进阶成系统玩家”,iptables转发是你绕不开的路。

原创文章,作者:VPS,如若转载,请注明出处:https://www.whalevpsreview.com/383.html

(0)
VPSVPS
上一篇 2025年6月22日 上午10:59
下一篇 2025年6月23日 上午2:57

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注