通过自定义域名访问内网的web服务和tcp应用:内网ip到局域网外域名访问过程
内网IP并不是唯一的,不同内网环境下的内网IP都不能直接互通。当我们在本地内网搭建部署服务器后,往往面对无公网IP使用的情况,而如何将内网IP端口提供给局域网外使用,成为了一个关键。
比如公司内网web服务办公OA系统需要给外地登录使用,又如自己家里网络环境下旧电脑弄了个NAS系统想要在外访问,等等,这些都是需要想法将内网IP变成互联网上能用的域名。如果自己有注册域名的,则用自己域名;如果自己没有域名的,则需要用到三方提供的二级域名。
内网IP到局域网外域名访问,在不增加硬件,不拉专线的情况下,可以采用内网穿透技术应用或网络端口映射软件来实现。这里分享3种常用的内网IP端口绑定自定义域名到公网使用的方法。
一、使用FRP内网IP变域名访问(简单配置实现)
以WEB服务场景为示例,通过简单配置 HTTP 类型的代理,您可以让用户通过自定义域名访问内网的 Web 服务。
HTTP 类型的代理非常适合将内网的 Web 服务通过自定义域名提供给外部用户。相比于 TCP 类型代理,HTTP 代理不仅可以复用端口,还提供了基于 HTTP 协议的许多功能。
HTTPS 与此类似,但是需要注意,frp 的 https 代理需要本地服务是 HTTPS 服务,frps 端不会做 TLS 终止。也可以结合 https2http 插件来实现将本地的 HTTP 服务以 HTTPS 协议暴露出去。
步骤如下:
1、配置 frps.toml
在 frps.toml 文件中添加以下内容,以指定 HTTP 请求的监听端口为 8080:
bindPort = 7000
vhostHTTPPort = 8080
如果需要配置 HTTPS 代理,还需要设置 vhostHTTPSPort。
2、配置 frpc.toml
在 frpc.toml 文件中添加以下内容,确保设置了正确的服务器 IP 地址、本地 Web 服务监听端口和自定义域名:
serverAddr = "x.x.x.x"
serverPort = 7000
[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["yourdomain"]
[[proxies]]
name = "web2"
type = "http"
localPort = 8080
customDomains = ["yourdomain2"]
启动 frps 和 frpc
3、域名解析
将 www.yourdomain.com 和 www.yourdomain2.com 的域名 A 记录解析到服务器的 IP 地址 x.x.x.x。如果服务器已经有对应的域名,您还可以将 CNAME 记录解析到原始域名。另外,通过修改 HTTP 请求的 Host 字段也可以实现相同的效果。
4、通过浏览器访问
使用浏览器访问 http://yourdomain:8080 即可访问内网机器上的 80 端口服务,访问 http://yourdomain2:8080 可以访问内网机器上的 8080 端口服务。
二、使用nat123内网映射域名访问(界面化操作)
无公网IP时,使用nat123方案是一种较为大众化的选择,可以直接快速自定义内网IP端口提供公网使用,访问域名端口也是自定义的。同时可以根据应用场景,选择改变端口转发数据方式或同端口点到点直连模式的访问实现。
操作步骤:
1、下载安装客户端
访问nat123官网下载对应系统版本,默认安装完成。
2、注册与登录
首次使用需注册账号,登录后进入主界面。
注:不同网络环境的应用使用时,需要分别注册使用不同的帐号区分。
3、添加映射规则
登录客户端后,点击“添加映射”,出来新的编辑映射界面,里面填写以下关键信息:
映射类型:根据应用选择(如80HTTP、443HTTPS、非80网站、全端口映射等)。
内网地址:填写服务器本地IP(如127.0.0.1)及端口号。
外网域名:使用自动生成的免费域名(可自定义对应二级字符方便记住使用),或绑定自定义自己的域名(需在自己注册域名解析网上配置CNAME解析指向让自己域名生效)。
保存并生效。保存后,客户端自动生成映射图标,同时有显示对应的自定义设置好的内外网地址信息,当鼠标停留上面状态提示生效即可。
4、域名访问测试
通过外网设备输入映射域名及端口验证服务是否可达。
三、使用ngrok映射域名访问
ngrok使用教程主要包含注册账号、身份认证、隧道配置和域名管理四个核心步骤。 通过安装客户端并执行简单命令即可实现内网IP绑定域名访问,快速将本地服务暴露到公网。
基础配置流程:
1、注册与下载
访问ngrok官网注册账户,支持GitHub或Google快捷登录。
根据操作系统下载客户端(Windows/Mac/Linux),解压后获取ngrok.exe可执行文件。
2、身份认证
在官网仪表盘获取Authtoken,通过命令行执行:
./ngrok authtoken <YOUR_AUTH_TOKEN>
完成账号与本地客户端的绑定
3、启动隧道服务
运行命令指定本地端口(以8080为例):
ngrok http 8080
成功启动后,命令行将生成公网访问URL,可通过该链接访问本地服务。
上面就是分享内网IP简单变成自定义域名访问的几种方法,所有普通个人都可以较为轻松操作的,没有特别复杂的技术要求,也不要公网IP和路由设置,是内网服务开放给公网使用的便捷通用方案。
其实还有其他像VPN硬件方式,或纯软件方式的虚拟组网工具,都可以实现不同内网间的连接访问,但这些组网方法需要在访问端也要安装使用,这里就不再多余言了,有需要可以自行网上搜索相关教程。