| 2025-07-31
(1)确认路由器管理地址和登录信息:通常,路由器的管理地址印在路由器的说明书或机身上,常见的如 192.168.1.1 或 192.168.0.1。打开浏览器,在地址栏输入该管理地址,回车后会弹出登录界面。默认的用户名和密码一般是 admin,若之前修改过,则需输入修改后的信息。
(2)进入端口映射设置页面:成功登录路由器管理界面后,不同品牌和型号的路由器,其端口映射设置位置可能有所不同,但一般都在 “高级设置”“转发规则” 或 “虚拟服务器” 等类似的菜单选项中。例如,TP - LINK 路由器可在 “高级设置” - “虚拟服务器” 中找到端口映射设置入口;D - Link 路由器则在 “转发规则” - “虚拟服务器” 处进行设置。
(3)添加端口映射规则:进入端口映射设置页面后,点击 “添加新条目” 或类似按钮来创建新的映射规则。以将内网中一台 Web 服务器(IP 地址为 192.168.1.100,运行在 80 端口)映射出去为例,需要填写以下信息:
(4)服务名称:可自定义,方便识别,如 “Web Server”。
(5)外部端口:即外网用户访问时使用的端口,这里填写 80。也可根据需求改为其他未被占用的端口,但需注意,若更改,外网访问时也需使用更改后的端口。
(6)内部端口:对应内网服务器实际运行服务的端口,同样填写 80。
(7)内部 IP 地址:填写内网 Web 服务器的 IP 地址,即 192.168.1.100。
(8)协议类型:Web 服务一般使用 TCP 协议,所以此处选择 TCP。若不确定服务使用的协议,可查看服务器软件的相关文档或咨询技术支持人员。
(9)保存设置并生效:填写完上述信息后,点击 “保存” 或 “应用” 按钮,使设置生效。此时,路由器会将外部端口(如 80)接收到的请求转发到内部 IP 地址(192.168.1.100)的对应内部端口(80)上,外网用户就可以通过路由器的公网 IP 地址访问到内网中的 Web 服务器了。
(1)准备公网服务器:首先需要一台具有公网 IP 的服务器作为 frp 的服务端。如果没有自己的公网服务器,可以从云服务提供商处租用,如阿里云、腾讯云等。
(2)安装 frp 服务端程序:在公网服务器上,从 frp 的官方仓库(https://github.com/fatedier/frp/releases)下载对应系统架构的 frp 压缩包。以 Linux 系统为例,假设下载的是 frp_0.49.0_linux_amd64.tar.gz,使用命令tar -zxvf frp_0.49.0_linux_amd64.tar.gz解压。解压后进入解压目录,修改 frps.ini 配置文件,基本配置如下:
[common]
bind_port = 7000
这里的 bind_port 表示 frp 服务端监听的端口,可根据实际情况修改,但要注意在服务器安全组或者防火墙中开放此端口。然后使用命令nohup ./frps -c frps.ini &启动 frp 服务端。
(3)安装 frp 客户端程序并配置:在需要进行端口映射的内网机器(客户端)上,同样从 frp 官方仓库下载对应系统的客户端程序并解压。比如在 Windows 系统上下载了 frp_0.49.0_windows_amd64.zip,解压后修改 frpc.ini 配置文件。假设要将内网机器上的 Web 服务(运行在 127.0.0.1:80 端口)映射出去,配置如下:
[common]
server_addr = 公网服务器的IP地址
server_port = 7000
[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = 你自己的域名(如果没有可以不填,frp会生成随机二级域名供测试)
其中 server_addr 填写之前准备的公网服务器 IP,server_port 要与服务端配置的 bind_port 一致。type 表示代理类型,这里因为是 Web 服务所以选 http。local_ip 和 local_port 填写内网服务实际的 IP 和端口。custom_domains 如果有自己的域名,可以配置,这样通过自己的域名就能访问内网服务,并且需要在域名解析处添加一条 CNAME 记录指向 frp 服务端分配的地址;如果没有则留空,frp 会自动生成一个二级域名用于访问。配置完成后,在客户端使用命令frpc -c frpc.ini启动客户端。
(4)实现端口映射:完成上述配置和启动步骤后,如果使用了自定义域名,确保域名解析生效后,在浏览器中输入配置的域名(或者 frp 生成的二级域名)就可以访问到内网机器上的 Web 服务了,也就成功实现了在无公网 IP 情况下的端口映射。
除了 frp,花生壳和 nat123 等工具也能实现类似功能。花生壳使用时,先下载安装花生壳客户端,注册登录后,在客户端界面添加映射,填写内网服务的相关信息(如 IP、端口、服务类型等),花生壳会分配一个外网访问地址,通过该地址即可访问内网服务。nat123 也是类似流程,下载安装客户端,登录后添加端口映射规则,选择映射类型,填写内网地址和端口,设置外网访问信息(可使用自定义二级域名或绑定自己域名),保存后即可通过设置的外网地址访问内网服务。
在设置端口映射时,务必注意安全问题。比如,选择可靠的内网穿透工具,避免使用来源不明的软件带来安全隐患;对于有公网 IP 通过路由器设置端口映射的情况,要谨慎设置端口和访问权限,防止非法访问和攻击。同时,无论是内网服务还是相关的服务器,都要及时更新软件补丁,设置强密码等,以保障网络和服务的安全稳定运行。
1、什么是 NAT(网络地址转换):NAT 是一种将内网私有 IP 地址转换为公网 IP 地址的技术。它让多个内网设备可共用一个公网 IP 访问外网,解决了公网 IP 地址短缺问题。工作时,NAT 设备会在数据包进出时修改 IP 地址和端口信息,实现内外网通信的地址转换。
2、端口映射中 TCP 和 UDP 协议有何区别:TCP 是面向连接的协议,通信前需建立可靠连接,数据按序传输,适合对数据准确性要求高的应用,如 HTTP、FTP。UDP 是无连接协议,不保证数据可靠传输,但传输速度快、开销小,常用于对实时性要求高、能容忍少量数据丢失的场景,像视频流、DNS 查询等。
3、如何查询端口是否被占用:在 Windows 系统中,可在命令提示符下输入 “netstat -ano | findstr 端口号”,若有结果显示,则端口已被占用,进程 ID 可在结果中查看,通过任务管理器可根据 ID 找到对应进程。Linux 系统下,使用 “lsof -i: 端口号” 命令,若返回相关进程信息,表明端口被占用。