搬瓦工安装ngrok的服务器端,兼容ngrok-libev客户端

来源:互联网 发布:黑帽seo基础 编辑:程序博客网 时间:2024/06/03 04:41

用的是10刀一年的vps,安装centos6.8 32位

需要手动改一下启动脚本 /etc/init.d/ngrokd,centos6解析单引号有问题,都改成引用变量,例如:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/ngrok/bin/ngrokd
LOGFILE=/var/log/ngrokd.log
HTTP_ADDR=":80"
HTTPS_ADDR=":443"
DAEMON_ARGS="-tlsKey /opt/ngrok/device.key -tlsCrt /opt/ngrok/device.crt -domain $NGROK_DOMAIN -httpAddr $HTTP_ADDR -httpsAddr $HTTPS_ADDR -log $LOGFILE"



安装攻略:

前言

用过我MOD版的固件的都会发现, 在ngrok那里有两个程序可以切换,一个是ngrok-c, 另一个是ngrok-libev. 从实际使用来看, ngrok-libev 占用的资源更少,效率更高. 这也是我一直在使用的. 但是ngrok 官方源码是不支持 ngrok-libev 客户端的. 所以我得不能直接 yum install xxxx 来安装ngrok, 要自己编译.

本文以CentOS系统为例,其它Linux发行版也可参考.

首先你得有一个服务器或vps. 由于ngrok服务端实际上是一种代理的角色,因此,对于国内用户来说, 国内服务器的速度会优于国外的.

这里为什么git clone的是我mod版的ngrok? mod版主要是修复了默认监听ipv6 IP的问题, 以及添加了对ngrok-libev 客户端的支持.

1. 编译安装ngrok

ssh登录进服务器:

cd /opt/git clone https://github.com/ihacklog/ngrok.gitcd ngrokchmod a+x gen-ssl.sh#编辑gen-ssl.sh 把 YOUR-TUNEL-DOMAIN 换成你自己的域名,如 t.abc.comvim gen-ssl.sh#生成自签名ssl证书./gen-ssl.sh

开始编译:

# 没有安装go的先安装一下go环境:dnf install -y go# 或 yum install -y gomake release-server release-client# 如果不出意外,你应该可以看到编译好的文件, ls bin 看看

2. 安装并启动服务

CentOS 7用户看这里:

#如果是centos 7, 把systemd的服务文件copy到相应目录:cp ngrokd.service /usr/lib/systemd/system#编辑文件,把 YOUR-TUNEL-DOMAIN 更改为你自己的域名,如 t.abc.com#如果需要调整,端口把默认的:80 和  :443 改成你想要的端口即可vim /usr/lib/systemd/system/ngrokd.service# 开启服务systemctl enable ngrokd# 启动服务systemctl start ngrokd# 查看一下是否显示正在运行(running)systemctl status ngrokd

CentOS 6用户看这里:

# 如果是centos 6.x 请按下面的操作添加服务cp ngrokd.sh /etc/init.d/ngrokd#编辑文件,把 YOUR-TUNEL-DOMAIN 更改为你自己的域名,如 t.abc.comvim /etc/init.d/ngrokd#如果提示没有chkconfig 安装一下即可chkconfig ngrokd on#启动服务, 如果提示没有nohup ,安装一下即可/etc/init.d/ngrokd start#查看状态/etc/init.d/ngrokd status

3. 允许端口通过防火墙

如果你启用了防火墙,比如centos 7自带的firewalld,

执行以下命令允许ngrokd端口通过防火墙:

firewall-cmd --zone=public --add-port=4443/tcp --permanentfirewall-cmd --reload

–EOF