内网穿透免费工具常用的有frp、ngrok
我们这里使用frp来穿透我们的服务
官网网站:https://github.com/fatedier/frp
使用说明:https://github.com/fatedier/frp/blob/master/README_zh.md
下载地址:https://github.com/fatedier/frp/releases
使用前置条件,需要有一台有公网IP的服务器运行穿透服务端
注:如果服务端运行在中国大陆,想使用80端口,域名需要先按照法规备案才可以使用
根据机器CPU架构和操作系统,下载对应程序
按照说明配置服务端文件,重点端口,密码,域名
样例配置文件frps.ini如下:
[common]
bind_addr = 0.0.0.0
#监听端口
bind_port = 7000
#通信密码
token = woshimima
#用子域名映射http方式对应的父域名,需要提前到DNS服务提供商指向你的公网机器
subdomain_host = map.xxx.com
#使用http映射方式使用以下端口给用户提供服务
vhost_http_port = 81
vhost_https_port = 444
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = user
dashboard_pwd = pass
上传程序和配置文件,赋予权限,使程序可以运行,在机器执行:./frps -c frps.ini
服务端配置运行完毕。
在能访问到docker引擎机器的任意一台机器上运行内网穿透客户端(建议就在docker机器上)
样例配置文件frpc.ini如下:
[common]
#对应公网ip
server_addr = 123.123.123.123
#通信端口
server_port = 7000
#通信密码
token = woshimima
#节点名,要求唯一
[web-api]
type = http
#内网地址,填写docker机器的内网ip地址
local_ip = 192.168.1.234
#内网服务端口,docker服务映射到宿主机的服务端口
local_port = 8080
#映射子域名,可自定义,不能和其他服务的子域名重复
subdomain =test
上传程序和配置文件,赋予权限,使程序可以运行,在机器执行:./frpc -c frpc.ini
按上述说明执行成功后,就已经使用内网穿透服务了
使用浏览器打开:http://test.map.xxx.com:81/
实际访问到的是docker机器(机器IP:192.168.1.234)的8080端口的HTTP服务
更多高级frp功能详见frp中文说明
网友评论