路由器上做 端口映射(NAT 转发)

500 阅读3分钟

问题描述:如何在路由器上做 端口映射(NAT 转发),把公网 IP 的请求转发到你这台服务器。

非常好 👍,这是实现公网访问公司服务器的关键一步。我来一步步教你如何在路由器上做 端口映射(NAT 转发 / Port Forwarding) ,让外网访问你的服务器。


🧠 一、原理图(先理解一下)

互联网(公网)  
   │
公网IP:123.45.67.89  ← 分配给你公司宽带  
   │
【公司路由器】
   │
内网:192.168.1.0/24
   │
服务器:192.168.1.100(运行 Nginx/Spring Boot)

💡 目标:
当外网访问 http://123.45.67.89:80 时,
让路由器把请求转发到公司内网的服务器 192.168.1.100:80


⚙️ 二、设置 NAT 端口映射的步骤

不同品牌路由器界面略有不同(华为、TP-Link、中兴、H3C、MikroTik 等),但原理完全一样。

✅ 第 1 步:登录路由器后台

  1. 在公司电脑浏览器中输入路由器网关地址,例如:

    http://192.168.1.1
    或
    http://192.168.0.1
    
  2. 输入管理员账号密码登录(不知道可以问网络管理员)。


✅ 第 2 步:找到端口映射/NAT设置

在菜单中查找如下名称(各品牌略有不同):

  • 端口转发
  • 虚拟服务器
  • NAT 映射
  • Port Forwarding
  • 应用规则(Application Rules)

✅ 第 3 步:添加一条端口映射规则

字段示例值说明
名称web-server规则备注
协议TCP一般只选 TCP
外部端口(WAN端口)80访问公网端口
内部端口(LAN端口)80服务器上运行的端口(如 Nginx)
内部IP地址192.168.1.100你的服务器内网地址
状态启用(Enable)开启规则

📍 如果你的后端是 Spring Boot,监听 8080 端口,则:

外部端口:8080
内部端口:8080
内部IP:192.168.1.100

✅ 第 4 步:保存并重启路由器(某些型号需要)


✅ 第 5 步:测试是否成功

  1. 在外网电脑(非公司 Wi-Fi)上访问:

    http://你的公网IP:80
    

    或(若配置了域名解析)

    http://www.example.com
    
  2. 如果出现你服务器的页面,说明端口映射成功 🎉。


🧩 三、可选:多端口映射

你可以根据需要开放多个端口:

服务外部端口内部端口协议
Nginx 网站8080TCP
HTTPS443443TCP
Spring Boot 接口80808080TCP
MySQL(不推荐)33063306TCP

⚠️ 安全建议:尽量不要开放数据库端口(如 3306)到公网!


🔒 四、安全注意事项

  1. 固定服务器内网 IP
    在路由器 DHCP 设置中,将服务器的 192.168.1.100 绑定到它的 MAC 地址,避免重启后 IP 变化导致转发失效。

  2. 关闭多余端口
    只开放必要的端口(80、443、8080)。

  3. 防火墙放行端口
    Windows 或 Linux 防火墙要允许对应端口访问:

    # Windows
    netsh advfirewall firewall add rule name="WebServer" dir=in action=allow protocol=TCP localport=80
    
    # Linux(CentOS)
    firewall-cmd --add-port=80/tcp --permanent
    firewall-cmd --reload
    

🧰 五、检查公网是否真的通

  1. 查看公网 IP
    在浏览器访问 ip138.com
    → 显示的 IP 就是你公司对外公网 IP。

  2. 测试端口开放情况
    在外网电脑(或用手机4G)访问:

    http://123.45.67.89:80
    

    或使用命令:

    telnet 123.45.67.89 80
    

    如果能连通,就表示 NAT 转发生效 ✅。

💡 六、标准端口号对照(常见参考)

端口号默认用途协议
20/21FTP(文件传输)TCP
22SSH 远程登录TCP
25SMTP 邮件发送TCP
53DNS 域名解析TCP/UDP
80HTTP(网站)TCP
90🔸无默认用途,可自定义使用TCP
110POP3(邮件接收)TCP
143IMAP(邮件接收)TCP
443HTTPS(加密网站)TCP
3306MySQLTCP
8080HTTP 备用端口(常用于测试)TCP
9000+常用于 Web 服务、开发调试等TCP