分为两种情况: ## 拥有路由器管理权限 1. MAC地址绑定:在路由器中绑定服务器的MAC地址,使其获得固定的内网IP地址。
- 端口映射:在路由器中设置端口映射,将公网IP的某个端口映射到服务器的内网IP的某个端口上。
- 找到路由器管理页面中的 转发规则、NAT 设置 或类似选项(名称因品牌而异)。
- 添加一条新的端口转发规则:
- 外部端口(External Port):在公网访问时使用的端口(例如 80)。
- 内部端口(Internal Port):服务器监听的端口(例如 80)。
- 内部 IP 地址(Internal IP):服务器的 IP 地址(例如
- 协议类型(Protocol):选择 TCP、UDP 或 TCP/UDP(通常选择 TCP 或 TCP/UDP)。
- 保存设置。
查看公网ip地址:在路由器状态页或通过IP 检测网站查看路由器的公网 IP 地址。
测试,例如ssh登录:
ssh -p <公网端口> user@<公网IP>
(端口转发设置的内网端口为22)。
注意 - 如果你的公网IP是一个私有IP地址(如 192.168.x.x、172.16.x.x、10.x.x.x),那么你的路由器可能处于双重 NAT 环境中。在这种情况下,你需要拥有公网IP地址的路由器才能进行端口映射。 - 一般路由器重启后公网ip会变化。 可以使用动态域名解析服务(DDNS)或者联系互联网提供商ISP来解决这个问题。 或者通过一个脚本定期检查公网IP地址并通过某个外部服务器或邮件通知自己。
#!/bin/bash
IP=$(curl -s ifconfig.me) # 获取公网IP
echo "当前公网IP是:$IP"
# 发送邮件或更新外部服务
curl -X POST -d "ip=$IP" http://yourserver.com/update_ip
动态域名解析(DDNS)服务 动态域名解析(DDNS)允许你将动态公网 IP 绑定到一个固定的域名,当 IP 变化时,DDNS 服务会自动更新域名指向的 IP 地址。
配置步骤: 1. 注册 DDNS 服务 - 选择一个 DDNS 提供商(通常是免费的或附带在路由器服务中),如: - No-IP - DynDNS - 路由器品牌自带的 DDNS 服务(如 TP-Link、华为等)。 - 注册一个域名,例如 myserver.ddns.net。
- 配置路由器的 DDNS
- 登录路由器管理界面。
- 找到 DDNS 设置(通常在网络或高级设置下)。
- 输入 DDNS 提供商信息:
- 服务提供商(例如 No-IP、DynDNS)。
- 注册的域名(例如 myserver.ddns.net)。
- 登录凭据(用户名和密码)。
- 启用 DDNS。
- 验证配置
- 检查DDNS状态,确认域名已成功绑定到当前公网IP。
- 之后,通过 http://myserver.ddns.net:<端口号> 访问你的服务器。
无路由器管理权限
使用第三方内网穿透服务,绕过公网 IP 限制。例如: - Ngrok:通过创建一个临时的公网地址,将流量转发到你的服务器。 - Cloudflare Tunnel(Argo Tunnel):直接通过 Cloudflare 提供的域名访问你的服务器。 - Tailscale / ZeroTier:创建虚拟私有网络(VPN)实现远程访问。 这些服务可以帮助你在无法访问路由器设置的情况下,实现公网访问内网服务器的需求。但一般需要收费。