前言
这里不是完整教程,仅记录ngrok搭建过程中一些坑和ngrok理解。
ngrok客户端
推荐一个免费的ngrok服务器,按里面说的使用一遍,应该明白ngrok的作用和ngrok客户端的概念了。
ngrok服务端
上面是用了别人搭好的ngrok服务器,这里用自己的服务器搭一个ngrok服务。
这里教程很详细。
最好严格按照教程顺序
- 例如第一步是域名解析,我原本的理解是,域名解析只在请求域名时作用(即即使没有设置域名解析,只要下面的配置正确,ngrok服务端开启会正常,客户端连接服务端也显示正常,只是在浏览器地址栏输入域名时得不到结果而已),然而事实并非如此,第一次设置域名解析没设置好,下面配置都正确了,服务端开启成功,客户端一直Tunnel Status一直显示reconnecting,然后肯定不敢确定配置都正确,弄了很久,发现域名解析没弄好…
- 生成证书,开启服务,生成客户端,顺序最好也按教程来吧…
端口区分:
- 最关键的端口是隧道端口:服务端和客户端的隧道端口设置要一致。服务端在开启服务时设置
ngrok目录/ngrokd -tunnelAddr ***
,缺省默认是4443。客户端在配置文件配置server_addr:域名:4443
- http端口,https端口,或其他端口,在服务端,客户端都有的,服务端都是通过开启时指定参数设置,客户端的可以在配置文件设置,也可以在开启时设置…好啰嗦,其实,开启成功,看客户端显示,就立马明白了
Tunnel Status online
Version 1.7/1.7
Forwarding http://aa.ngrok.kbell.me:8088 -> 127.0.0.1:80
Forwarding https://aa.ngrok.kbell.me:8088 -> 127.0.0.1:80
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
将ngrok服务加入到system管理
vim /usr/lib/systemd/system/ngrokd.service
,添加下面内容,保存并退出
[Unit]
Description=ngrok
After=network.target
[Service]
ExecStart=/usr/local/ngrok/bin/ngrokd -domain=域名 -httpAddr=:8088 -httpsAddr=:8089
[Install]
WantedBy=multi-user.target
然后就能通过systemctl start|stop|status ngrokd.service
管理
注1:环境是centos7
2.-domain=域名 -httpAddr=:8088等,不要加双引号括着!
客户端使用批处理脚本
如果是客户端是windows环境的话,模仿这里,写个批处理脚本,使用时方便些。