内网部署的一个应用,想给外网玩?外部网络无法直接访问公司内网系统?在家办公或者需要远程访问内网资源?学会内网穿透怎么弄的,掌握本地IP端口开放给外网访问的快速部署方法!
百科的说法:内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。
大白话:通过一台公网服务器(自己的或别人提供的),把你的内网服务穿透出去,使得别人在公网也能访问你的服务。
用户访问我们的内网服务,本质上是通过了公网服务器这个桥梁。因为这个公网服务器是有公网IP的,而公网服务器和内网的服务器持久保持联系。所以,当用户有请求发送时,公网服务器将请求转发到我们的内网,内网再将响应回复给公网服务器,公网服务器将响应回复给用户。

如果你在搜索平台搜索内网穿透,会找到nat123、ngrok、FRP 等一些界面化工具或开源工具。对于有一定开发基础的小伙伴,使用像frp开源工具搞内网穿透还是很容易上手的。对于普通非专业人员和没有资源的,则使用像nat123这样的带界面化操作的较为简单操作设置。今天,就带着大家实操一番。
内网穿透可以通过一些第三方端口来实现,其中如nat123端口映射内网穿透软件,可以快速简单绑定自定义域名端口让外网访问本地指定端口应用,同时可按需选择同端口直连点到点模式或改变端口外网访问。下面我们来详细介绍一下使用它进行内网穿透的3个重要步骤。
在目标服务器本地,或所在内网互通另台设备上,下载安装nat123客户端;对应官网注册链接,自定义用户密码邮件获取自己帐号,然后登录安装好的客户端。
注意如是不同网络环境下多处登录使用不同应用场景,需要分别注册使用不同帐号区分。
安装完成后,登录软件并在默认主界面映射列表下方“添加映射”点击,添加映射并配置映射端口等信息。添加修改映射时,选择合适的映射类型(如80、443、非80),再自定义对应填写内网地址(本地应用局域网IP端口)和外网地址(自己域名或默认提供的自定义二级域名)即可。

添加保存后可见相关记录映射信息,对应自定义的外网域名端口地址就是映射后访问的地址,这个域名可以是自己拥有的域名,也可以是软件提示的默认域名。如果使用自己域名访问的,同时填写使用自己域名映射设置,和在自己注册域名解析网上添加对应cname指向让自己域名生效。
完成上述配置后,我们就可以使用对应自定义好的外网域名端口来访问对应的内网应用了。例如,我们可以访问自建的网站、私有云或者其他Web服务器。
在开始前,需要确保拥有以下条件:一台有公网 IP 的服务器(如云服务器);一台内网设备(如家里的win/ Linux 电脑、树莓派,需能联网);开放服务器端口:在云服务商控制台开放 2 个端口(以7000和2222为例):7000:frp 服务端与客户端的通信端口;2222:用于映射内网 SSH 服务(可自定义)。
服务端的作用是 “接收外网请求并转发到内网”,配置步骤仅需 3 步:(1)下载 frp
首先通过官网获取最新版本(frp 官网),根据服务器系统选择对应包(以 Linux 64 位为例):# 下载frp压缩包(替换为最新版本号)wget https://github.com/fatedier/frp/releases/download/v0.64.0/frp_0.64.0_linux_amd64.tar.gz# 解压压缩包tar -zxvf frp_0.64.0_linux_amd64.tar.gz# 进入解压后的目录cd frp_0.64.0_linux_amd64解压后会看到多个文件,核心文件为:frps:服务端可执行文件;frps.ini:服务端配置文件;frpc/frpc.ini:客户端文件(服务端可删除,避免混淆)。
(2)编写服务端配置文件(frps.ini)
用vim编辑配置文件,仅需配置基础通信端口即可:vim frps.ini将以下内容复制到文件中(端口可自定义,需与后续开放的端口一致):[common]# frp服务端监听端口(与客户端通信用)bind_port = 7000# 可选:配置仪表盘(用于查看frp运行状态,访问地址:http://服务器IP:7500)dashboard_port = 7500dashboard_user = admin # 仪表盘登录用户名dashboard_pwd = 123456 # 仪表盘登录密码保存退出(ESC + :wq)。(3) 启动服务端
启动方式分两种:临时启动(测试用)和后台启动(生产用)。
临时启动(测试是否配置成功):./frps -c ./frps.ini如果输出类似start frps success的日志,说明服务端启动成功。用nohup命令实现后台运行,并将日志输出到文件:# 后台启动并记录日志nohup ./frps -c ./frps.ini > frps.log 2>&1 &验证是否启动成功:# 查看frps进程ps aux | grep frps若能看到./frps -c ./frps.ini的进程,说明服务端已在后台运行。

客户端的作用是 “将内网服务映射到服务端”,以 “远程访问内网 SSH” 为例,配置步骤如下:(1)下载 frp(与服务端版本一致)
内网设备同样需要下载 frp,步骤与服务端一致(注意根据内网设备系统选择包,如树莓派选arm架构):# 以内网Linux 64位为例,替换为对应版本wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gztar -zxvf frp_0.52.3_linux_amd64.tar.gzcd frp_0.52.3_linux_amd64此时需保留客户端文件:frpc(客户端可执行文件)、frpc.ini(客户端配置文件),服务端文件可删除。(2)编写客户端配置文件(frpc.ini)
编辑配置文件,核心是 “指定服务端地址 + 映射内网服务”:vim frpc.ini以 “映射内网 SSH 服务” 为例(内网主机 SSH 默认端口为 22),配置如下:[common]# 公网服务器的IP(即frp服务端IP)server_addr = 1.2.3.4 # 替换为你的服务器公网IP# 服务端通信端口(需与服务端bind_port一致)server_port = 7000# 配置SSH映射([ssh]为自定义名称,可修改)[ssh]# 映射类型(tcp为默认,适用于SSH/RDP等)type = tcp# 内网设备的IP(本地设备填127.0.0.1即可)local_ip = 127.0.0.1# 内网服务端口(SSH默认22,RDP默认3389)local_port = 22# 服务端暴露的端口(外网通过该端口访问,需提前开放)remote_port = 2222保存退出(ESC + :wq)。(3)启动客户端
同样支持临时启动和后台启动。临时启动(测试用):./frpc -c ./frpc.ini若输出start frpc success,且服务端日志显示 “client connected”,说明客户端与服务端连接成功。后台启动(推荐):# 后台启动并记录日志nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &# 验证启动状态ps aux | grep frpc
配置完成后,我们来测试 “从外网电脑远程连接内网 SSH”:在外网电脑打开终端(Windows 用 PowerShell,Mac/Linux 用终端);执行 SSH 命令,格式为:ssh 内网用户名@服务端公网IP -p 服务端暴露端口:# 示例:内网用户名为root,服务端IP为1.2.3.4,暴露端口2222ssh root@1.2.3.4 -p 2222输入内网主机的密码,若能成功登录,说明内网穿透配置生效!
访问 ngrok 官方网站(HTTPS://ngrok.com/)。可以使用 GitHub 或者 Google 账号进行登录。完成注册并登录之后,可以看到 Dashboard 中给出了使用的三个步骤。

进入官网的下载页面(Download ngrok),官方清晰地给出了各个系统的安装方法。个人推荐直接下载 ZIP 包,然后直接解压,这种方式最为迅速。根据自己的操作系统选择对应的软件,例如 Windows 系统选择 Windows 的安装包。
获取 Authtoken:登录 Ngrok 控制台(Your Authtoken - ngrok)后,在个人设置或相关页面中找到 “Authtoken”。这是一个用于验证身份的密钥,Ngrok 通过它识别用户身份,确保合法使用服务。复制该 “Authtoken”,后续配置 Ngrok 时会用到。
配置 Authtoken:打开命令提示符(CMD),切换到 Ngrok 解压后的目录,例如输入 “cd C:ngrok”。然后执行命令 :ngrok authtoken 2Yh...(Your Authtoken)将方括号替换为实际的 Authtoken。执行此命令后,Ngrok 会将 Authtoken 保存到本地配置文件中,以便后续使用时自动验证身份。
假设本地运行了一个 Web 服务,监听在 8080 端口,现在要通过 Ngrok 将其暴露到公网。在命令提示符中执行 :ngrok http 8080(注意,这里是小写)执行该命令后,Ngrok 会与 Ngrok 服务器建立连接,并为本地的 8080 端口生成一个公网访问地址,类似 “HTTPS://xxxx.ngrok-free.app”(xxxx 为随机生成的字符串)。此时,任何人通过这个公网地址就可以访问本地运行在 8080 端口的服务。进入后就可以看到你写的后端内容了。
本文通过实操带大家走完了内网穿透的常见几个方法流程~
使用nat123进行内网穿透映射时,不需要再设置路由映射等其他复杂的设置。如果外网地址使用自己的域名,只需要将域名解析指向提示的目标地址即可。无需公网IP、无需路由端口映射,就可以通过固定的域名实现ERP远程访问。而且,它的搭建和操作过程非常简单,无需专业的运维人员进行管理。无论是进行个人网站建设、视频监控,还是企业使用FTP、OA、ERP等系统,都是一个非常不错的选择。
作为开源免费的服务,frp和ngrok使用门槛低,配置简单,非常适合新手技术玩家尝试。但需要注意ngrok后期较新版本开始不再开源了。