家里自己弄了个服务器,但是没有公网IP,想做个网站,要想在外网访问这个网站最好的解决方式是什么? 公司内部局域网部署的服务器,上面搭建的办公OA和ERP系统,在无公网IP使用的情况下,怎么提供在家异地互联网上连接使用?无公网IP的网络环境下,如何实现让公网访问,是大家都比较关注的问题。
没有公网IP实现外网访问的核心解决方案包括内网穿透技术、VPN组网和第三方映射工具,主要通过中转服务器、虚拟隧道或云端服务实现远程连接。这里将介绍一些常见的内网让公网访问的主流解决方案。
一、内网穿透工具
通过第三方服务或自建服务器实现本地局域网指定内网IP端口映射到互联网上,无需公网IP。常见界面化简单操作的网址映射工具有如nat123、花生壳、金万维快解析等,常见开源命令式映射软件有如frp、ngrok、nps等。
(一)界面化网络地址映射工具相对配置简单,可以快速简单的通过客户端设置将内网地址绑定到域名上,支持自定义端口映射,自定义内外网地址信息,适合所有个人和企业用户使用。以大众化的nat123为示例,操作步骤如下:
1、下载安装
在本地服务器,或所在内网另台互通主机上,下载安装nat123客户端,并登录使用。
2、添加映射
登录客户端后,界面上“添加映射”进入编辑映射操作,自定义映射名称,然后选择对应适合自己本地网络场景的映射类型(如80、443、非80网站、同端口映射等),再自定义对应填写好内外网地址(内网IP端口以本地实际来填写,外网地址用自己域名或自动生成的二级域名)。
3、确认保存
确认保存后,客户端上生成一个带有设置好的内网地址和公网地址的端口映射记录图标,鼠标停留会有相关状态提示可以参考。
4、域名指向(可选)
如在添加映射时,公网地址填写使用自己域名,还需要登录自己域名注册解析网上添加对应的域名解析指向cname记录让自己域名生效。
5、公网地址访问
在异地需要连接访问时,使用对应nat123映射绑定的域名地址(和公网端口号)来访问即可。
(二)开源命令操作的内网穿透工具通常需自备公网服务器搭建中转服务,灵活性强,但配置相对复杂些,适合有条件的技术用户使用。以常见的FRP为示例,操作步骤如下:
1、 下载 frp
访问 frp 官方 GitHub 仓库,根据服务器操作系统和架构下载对应的 frp 压缩包。
2、 配置 frp 服务端
进入解压后的目录,编辑frps.ini文件,此文件用于配置 frp 服务端。常见配置如下:
[common]
bind_port = 7000
用于身份验证的密钥,可自定义
token = your_secret_token
若要使用 dashboard 查看 frp 状态,可进行如下配置
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
bind_port指定 frp 服务端监听的端口,需与前面防火墙开放的端口一致;token为客户端连接服务端的身份验证密钥,务必设置复杂且保密;dashboard_port、dashboard_user和dashboard_pwd用于配置 frp 的管理界面,可通过http://服务器 IP:7500访问,用户名和密码分别为admin。
3、上传 frp 客户端到内网机器
将解压后的 frp 目录中的frpc、frpc.ini等文件上传到需要穿透的内网机器。
4、 配置 frp 客户端
在 内网机器上编辑frpc.ini文件,以映射本地 Web 服务为例,配置如下:
[common]
server_addr = 服务器公网 IP
server_port = 7000
token = your_secret_token
[web]
type = http
local_ip = 127.0.0.1
local_port = 80
remote_port = 8080
server_addr填写 frp 服务端的公网 IP;server_port与服务端的bind_port一致;token与服务端设置的密钥相同。[web]部分为自定义的服务配置,type指定服务类型为http;local_ip和local_port表示本地服务的地址和端口;remote_port为在公网上访问该服务的端口。
5、启动 frp 服务端
在 frp 服务端所在服务器的 frp 目录下,执行以下命令启动 frp 服务端:
nohup./frps - c./frps.ini &
nohup命令用于在后台运行程序,使其不随终端关闭而停止;&表示将程序放入后台执行。可通过查看日志文件nohup.out检查启动状态:
tail - f nohup.out
若显示类似frps: start proxy success,则说明服务端启动成功。
6、 启动 frp 客户端
在内网机器的 frp 目录下,执行以下命令启动 frp 客户端:
nohup./frpc - c./frpc.ini &
同样通过查看nohup.out日志文件确认启动状态。若启动成功,在浏览器中输入http://服务器公网 IP:8080(假设remote_port设置为 8080),即可访问到内网的 Web 服务。
二、VPN虚拟组网
通过虚拟组网方式,建立加密隧道连接内网设备,适用于访问整个内网的场景网络需求。通常也可以在公网主机搭建部署,或直接采用三方服务使用。常见的有如openVPN和wireguard等。
OpenVPN:路由器内置功能可通过IPv6自动切换,但需客户端支持。
WireGuard:性能更高,但IPv4环境下可能需额外配置。同样条件下wireguard相对于OpenVPN来说,配置起来更加简单,运行速度也更快。
三、云服务集成方案
Cloudflare Tunnel:利用全球节点转发流量,适合Web服务且具备安全防护。
厂商自带云服务:如威联通myQNAPcloud,提供便捷远程链接生成功能。
四、方案对比要点
易用性和成本控制考虑的可选择nat123或类似网址端口映射服务。有条件有技术管理的可以自己搭建部署端口转发服务。
五、实施步骤共性
注册对应服务账号并获取认证信息,在内网设备安装客户端或配置,设置端口映射/隧道规则并启动服务,通过生成的外网地址或自己域名进行访问。
内网穿透是一种较为通用的内网IP端口提供公网访问的简单方案,其原理是将局域网内的服务暴露在公网,可选择使用端口转发模式或固定端对端直连模式,如借助nat123等工具让没有公网IP的网络也能远程访问。理解内网穿透的工作原理可以帮助用户更好地配置服务。