自己搭建的ngrok很久没有使用了,后面服务器重启之后,发现连不上,原因是 ngrok没启动。
但是自己都忘记启动参数是什么了,就是那些个端口什么的(为了域名后面不加端口,做了一些其他处理)。
找了好久才知道是怎么设置的。
现在就想在上面加个自启动,不用以后每次服务器重启都去手动启动ngrok了。
这里主要是想说网上一些教程有点坑,自己踩坑踩完了才弄好。
1.安装ngrok,太多了,网上可以随便找教程弄。。。
2.在你的ngrok根目录(我的目录是:/usr/local/src/ngrok)下面新建一个文件 start.sh ,里面的内容如下(需要按照自己的服务器做修改):
nohup /usr/local/src/ngrok/bin/ngrokd -domain="i.how-go.cn" -httpAddr=":10081" -httpsAddr=":10082" -tunnelAddr=":44433"
解释一下参数。
①:nohup
ngrok不打印日志
②:/usr/local/src/ngrok/bin/ngrokd
ngrok里面的ngrokd的绝对路径,我用绝对路径保证他不会出其他坑。
③:-domain="i.how-go.cn" -httpAddr=":10081" -httpsAddr=":10082" -tunnelAddr=":44433"
ngrok的启动参数。-httpAddr就是你客户端使用http协议的时候,对应的端口,-httpsAddr同理就是你客户端使用https协议的时候,对应的端口。而tunnelAddr就是你服务端的暴露的端口,这个在客户端要写上的。
3.给刚刚新建的start.sh文件赋权限
chmod 755 /usr/local/src/ngrok/start.sh
4.在 /etc/init.d 下建文件 ngrok,没有后缀的。例如下面的命令
vi /etc/init.d/ngrok
并在该文件中写入如下内容:
#!/bin/sh
#chkconfig:2345 70 30
#description:ngrok
ngrok_path=/usr/local/src/ngrok/
case "$1" in
start)
echo "start ngrok service.."
sh ${ngrok_path}/start.sh
;;
*)
exit 1
;;
esac
只需要把 /usr/local/src/ngrok/
改成你的ngrok根目录就行了其他的不要动,前面几行注释也要复制进去。
5.同样给文件赋权限
chmod 777 /etc/init.d/ngrok
6.添加到开启自启动服务
chkconfig --add ngrok
7.查看是不是添加成功了
chkconfig
如果成功了的话,大概长这样。第一个是我的nginx,第二是刚刚添加的ngrok
8.启动刚刚添加的服务。
service ngrok start
如果没报错的话,,就应该完成了。
然后你启动完了 不要用 ctrl+c 去退出,直接把ssh窗口关了吧,ctrl+c会终止服务的。。
如果有说错的地方,麻烦大力喷。