跳到主要内容
← 指南列表

在防火墙中开放端口

像网站(80/443)、游戏服务器(例如:Minecraft 25565)、自己编写的程序(例如:8080)这样需要从外部访问的服务,需要在服务器防火墙中开放相应端口。

⚠️ 开启防火墙之前,请先允许用于连接的端口(Linux SSH 22、Windows RDP 3389)。如果这些端口被阻止,将无法连接服务器,个人中心中也可能会显示“服务器无响应”。如果不小心阻止了,可以通过浏览器控制台(VNC)进入并还原。

Linux(Ubuntu)—— ufw

Ubuntu 中自带一个名为 ufw 的简单防火墙工具。

查看当前状态

sudo ufw status

如果显示 Status: inactive,说明防火墙处于关闭状态,所有端口都是开放的。

开启防火墙(首次,仅需一次)

sudo ufw allow 22/tcp      # 先允许 SSH(必须!)
sudo ufw enable

开放 / 关闭端口

sudo ufw allow 80/tcp          # Web(HTTP)
sudo ufw allow 443/tcp         # Web(HTTPS)
sudo ufw allow 25565/tcp       # Minecraft
sudo ufw delete allow 25565/tcp   # 关闭之前开放的端口

仅允许特定 IP

像 DB 这样只需您自己访问的端口,只允许您的 IP 会更安全。

sudo ufw allow from your-ip-address to any port 3306 proto tcp

Windows 服务器 —— Windows Defender 防火墙

通过界面设置

  1. Win + R → 输入 wf.msc → Enter
  2. 左侧 入站规则 → 右侧 新建规则
  3. 选择 端口 → TCP,在“特定本地端口”中输入端口号(例如:8080)
  4. 允许连接 → 勾选所有要应用的配置文件 → 输入规则名称后点击“完成”

用 PowerShell 一行设置

用管理员权限打开 PowerShell 后输入。

New-NetFirewallRule -DisplayName "My App 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

已开放端口但仍无法连接

  • 请确认程序是否设置为在 0.0.0.0(所有地址)而不是 127.0.0.1(仅限内部)上监听。
  • 请确认程序是否确实在服务器中运行。Linux 可用 sudo ss -tlnp 查看正在监听的端口。
  • 如果仍然不行,请查看无法连接服务器时,或联系技术支持。

如果问题仍未解决,请在 Discord 提交工单。