用心打造
VPS知识分享网站

VPS端口转发怎么设置?最新VPS端口转发教程

在学习使用VPS服务器的过程中,大家基本都会遇到一个技巧叫做端口转发,举个简单的例子,我有个服务只监听在内网 8080,怎么让外网用户能访问?或者我要把本地游戏服务器的 25565 端口转发到 VPS 上,虽有知道要利用端口转发来实现,但是小编自己当初也被这些个问题搞蒙了,后来一步步摸索,才搞清楚端口转发到底怎么玩,现在用自己的经验总结告诉大家端口转发到底是什么?分享一些实用的端口转发教程。

VPS端口转发怎么设置?最新VPS端口转发教程

一、什么是端口转发?应用场景和优缺点

端口转发,顾名思义,就是把 VPS 的一个端口流量,转发到其他设备或服务上。
最常见的用途有:

  • 把内网服务映射到公网(比如家里的 NAS、监控摄像头)
  • 做游戏服务器中转(Minecraft、CSGO 等)
  • 科学上网或反代服务(中转流量)
  • Docker、K8s 的服务暴露

优点:灵活,能“穿透”内网,帮你把服务放到公网让别人访问。
缺点:安全性要特别注意,配置不当可能被黑客扫描或者攻击。

二、端口转发的原理

说白了,端口转发就是让 VPS 充当“中间人”角色:
外部流量先到 VPS 的公网 IP:Port → VPS 收到后,再转发到内网的目标 IP:Port。

常见的方式有两种:

  • 本地转发:VPS 把本地端口流量转发到本地另一个端口。
  • 远程转发:VPS 把接收到的端口流量,转发到内网或其他服务器。

比如我在 VPS 上做一个 Minecraft 转发:

公网访问 VPS:25565 → VPS 转发到 我家里的 Minecraft 服务器:25565

三、详细配置教程:不同操作系统&不同工具

小编知道,很多新手面对“iptables”“端口转发”这几个字就头大。

1. Ubuntu / Debian:iptables 配置教程

检查和安装

先确保系统里有 iptables:

sudo apt update  
sudo apt install iptables  

开启 IP 转发

编辑 /etc/sysctl.conf,确保这行不被注释:

net.ipv4.ip_forward=1  

然后应用配置:

sudo sysctl -p  

设置转发规则

假设你要把 VPS 的 25565 端口转发到家里的 192.168.1.100:25565:

sudo iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination 192.168.1.100:25565  
sudo iptables -t nat -A POSTROUTING -j MASQUERADE  

保存规则

sudo apt install iptables-persistent  
sudo netfilter-persistent save  

2. CentOS / Rocky Linux:firewalld + iptables 配置

CentOS 7 / Rocky Linux 8 之后,默认用 firewalld,下面是详细操作。

开启 IP 转发

sudo sysctl -w net.ipv4.ip_forward=1  

配置 firewalld 允许转发

sudo firewall-cmd --permanent --add-masquerade  
sudo firewall-cmd --reload  

添加转发规则(如果要转发 25565)

sudo firewall-cmd --permanent --add-forward-port=port=25565:proto=tcp:toaddr=192.168.1.100:toport=25565  
sudo firewall-cmd --reload  

3. UFW(Ubuntu 自带防火墙)配置

启用 UFW

sudo ufw enable  

修改配置文件 /etc/ufw/sysctl.conf

net/ipv4/ip_forward=1  

修改 UFW 转发规则

编辑 /etc/ufw/before.rules,添加:

*nat  
:POSTROUTING ACCEPT [0:0]  
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE  
COMMIT  

然后重载 UFW:

sudo ufw reload  

4. Debian / Ubuntu:用 nftables(新系统默认)

启用 IP 转发

sudo sysctl -w net.ipv4.ip_forward=1  

配置 nftables

编辑 /etc/nftables.conf,添加:

table ip nat {  
    chain prerouting {  
        type nat hook prerouting priority 0;  
        tcp dport 25565 dnat to 192.168.1.100:25565  
    }  
    chain postrouting {  
        type nat hook postrouting priority 100;  
        masquerade  
    }  
}  

然后重载:

sudo systemctl restart nftables  

5. 特殊工具:用 socat 实现端口转发

如果你不想改防火墙,也可以用 socat 命令做“临时转发”:

socat TCP4-LISTEN:25565,fork TCP4:192.168.1.100:25565  

缺点是关闭终端后会失效,适合临时测试。

6. NAT64 / v6 only 场景:6tunnel 转发

如果 VPS 只有 IPv6,但目标只有 IPv4,可以用 6tunnel:

sudo apt install 6tunnel  
sudo 6tunnel -6 25565 192.168.1.100 25565  

这样外部访问 IPv6 VPS 的 25565,自动转发到目标 IPv4。

小贴士:每一步都要记得重载/保存!

很多新手配置完了忘记保存,重启就全没了!

  • iptables:sudo iptables-save > /etc/iptables/rules.v4
  • firewalld:sudo firewall-cmd --reload
  • UFW:sudo ufw reload
  • nftables:sudo systemctl restart nftables

四、常见问题排查

小编踩过不少坑,下面是排查思路分享给你:

  • 端口没开?
    ss -tuln 看看 VPS 上是否监听对应端口。
  • 安全组没放行?
    去云服务商控制台检查,别忘了给端口放行。
  • 本地服务没开?
    确保目标内网服务真的在目标 IP:Port 上运行。
  • 转发规则没生效?
    重启网络或 iptables 服务试试,常用命令:

    systemctl restart networking  
    systemctl restart iptables  
    

五、特定应用场景配置示例

Minecraft 服务器端口转发

在 VPS 上把 25565 端口转发到家用服务器:

iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination 192.168.1.100:25565  
iptables -t nat -A POSTROUTING -j MASQUERADE  

Docker 容器的端口转发

如果你在 VPS 上用 Docker,直接在 docker run 里用:

docker run -d -p 8080:80 nginx  

这相当于自动做了端口转发。

六、端口转发的安全性提示

1.只开放必要的端口,别全都暴露到公网。

2.用防火墙(iptables、ufw)限制来源 IP,降低被扫描攻击风险。

3.定期更新系统补丁,别让黑客趁虚而入。

4.不熟悉配置?用面板或者安全组先做简单测试,再上线。

七、转发配置简单,关键是别忽略安全

VPS 端口转发其实很简单,按上面一步步来,基本 10 分钟就能跑起来。关键是:先搞懂原理,再按需配置,别偷懒忽略安全

小编建议大家先在测试机多练习几次,等熟练了再放到正式环境,这样更省心、更安全。

赞(0)
未经允许不得转载;国外VPS测评网 » VPS端口转发怎么设置?最新VPS端口转发教程
分享到