如何在Linux环境下通过VPN实现公网地址转发至本地Ubuntu游戏服务器
如何在Linux环境下通过VPN实现公网地址转发至本地Ubuntu游戏服务器
兄弟,我完全懂你的需求——就是想让别人通过VPN的公网IP(比如你说的205.201.204.203)访问你Proxmox上的Ubuntu本地Minecraft服务器对吧?结合你手里的TP-Link ER605路由器和已经搭好的OpenVPN连接,咱一步步来搞,其实没那么复杂:
第一步:先确认VPN链路的基础连通性
首先打开你的ER605管理后台,找到VPN -> OpenVPN客户端,检查连接状态是不是显示「已连接」,并且能看到路由器通过VPN获取到的公网IP就是你说的205.201.204.203。这一步是前提,必须确保VPN通道是通的,不然后面的转发都是白搭。
第二步:在ER605上配置端口转发(核心步骤)
我们要把VPN公网IP的Minecraft请求,直接映射到你内网Ubuntu服务器的对应端口:
- 进入路由器后台的「高级」->「NAT转发」->「端口转发」
- 点击「新增」,填以下内容:
- 外部接口:选择你的OpenVPN客户端对应的接口(一般叫
OpenVPN_Client1之类的,看你自己的命名) - 外部端口:填25565(Minecraft默认端口,如果你改了自定义端口就填你自己的)
- 内部IP地址:填写Ubuntu服务器在你局域网内的IP(比如192.168.1.100,你可以在Ubuntu里用
ip a命令查) - 内部端口:和外部端口保持一致,填25565就行
- 协议:选UDP(Minecraft主要用UDP协议,稳妥点也可以选「TCP/UDP」兼容模式)
- 状态:勾选「启用」
- 外部接口:选择你的OpenVPN客户端对应的接口(一般叫
- 保存设置,路由器会自动生效规则。
第三步:确保Ubuntu服务器的防火墙放行端口
别忘记给Ubuntu的防火墙开个口子,不然请求到了服务器也会被拦:
- 登录Ubuntu服务器的终端(Proxmox控制台直接打开或者SSH连接都行)
- 如果用的是默认的ufw防火墙,运行以下命令:
sudo ufw allow 25565/udp sudo ufw allow 25565/tcp # 可选,如果你用TCP模式玩Minecraft的话 sudo ufw reload - 如果是用iptables的话,执行:
sudo iptables -A INPUT -p udp --dport 25565 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT sudo iptables-save > /etc/iptables/rules.v4 # 保存规则防止重启失效
第四步:验证连通性,测试效果
- 先在局域网内用另一台机器测试:直接输入Ubuntu的内网IP+端口(比如192.168.1.100:25565),确认Minecraft能正常连接,先排除本地服务的问题。
- 然后换个外部网络(比如手机开流量,别连家里WiFi),用VPN公网IP+端口(205.201.204.203:25565)尝试连接,如果能成功就搞定了!
额外注意点
- 如果Proxmox本身开了防火墙,记得在对应Ubuntu虚拟机的防火墙规则里,也允许25565端口的入站请求。
- 要是你之后想转发其他服务(比如Steam服务器、FTP),只要重复第二步的端口转发步骤,替换对应的端口就行。
备注:内容来源于stack exchange,提问作者Heisz
相关产品推荐
相关产品推荐

