搭建ngrok服务器之扩展
admin
2023-03-20 01:21:22
0

说明

了解本文之前,请先阅读前两篇博文。不然会感觉不知所云。本文主要是在前两篇基础上进行发散思维扩展及本博主遇到的一些问题。希望对其他人有帮助,让你少走弯路。

 

nginx端口转发

如果服务器80端口已经被占用了,可以利用nginx进行端口的转发,加上如下配置即可:

 

vim /usr/local/nginx/conf/vhost/ngrok.XXX.com.conf

内容如下:

upstream ngrok {
server 127.0.0.1:8888; # 此处端口要跟 启动服务端ngrok 时指定的端口一致
keepalive 64;
}
server {
listen 80;
server_name *.ngrok.XXX.com;
access_log /data/wwwlogs/ngrok.XXX.com_access.log;
error_log /data/wwwlogs/ngrok.XXX.com_error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host:8888;  # 此处端口要跟 启动服务端ngrok 时指定的端口一致
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://ngrok;
}
}

重启nginx

service nginx reload

 

关于ngrok服务端

/usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889"

# domain填写刚才生成证书时的 NGROK_DOMAIN

# http和https端口可以自己指定,这里不采用80端口,是因为其他程序已经占用了,端口转发在上面nginx已经配置完成

 

# 如果想要后台启动,执行以下命令(后台启动有多种方法,选择其一即可)

nohup /usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889" > /dev/null 2>&1 &

 

# 如果想要开机启动,在rc.local中添加以下内容,具体内容请根据自己情况自行调整

vim /etc/rc.d/rc.local

/usr/local/ngrok/bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889" > /var/log/ngrok.log &

 

关于ngrok客户端

你编译出来的客户端和服务端是配套使用的,你可以把你的客户端分享给别人使用,别人只能连接你的服务器,别的服务器是连接不上的。


确保linux版ngrok有执行权限

chmod +x ngrok


ngrok程序的同级目录下,编写配置文件

vim ngrok.cfg

内容如下:

server_addr: "ngrok.XXX.com:4443"
trust_host_root_certs: false
tunnels:
    test:
        subdomain: "test" #定义服务器分配域名前缀
        proto:
        http: 80 #映射端口,不加ip默认本机
        https: 80
    web:
        subdomain: "web" #定义服务器分配域名前缀
        proto:
        http: 192.168.1.100:80 #映射端口,可以通过加ip为内网任意一台映射
        https: 192.168.1.100:80
    web1:
        hostname: "ngrok.XXX.com"
        proto:
        http: 80
    web2:
        hostname: "XXX.com"
        proto:
        http: 80
    ssh:
        remote_port: 50001 #服务器分配tcp转发端口,如果不填写此项则由服务器分配
        proto:
        tcp: 22 #映射本地的22端口
    ssh2: #将由服务器分配端口
        proto:
        tcp: 21




启动ngrok

./ngrok -subdomain test -config=ngrok.cfg 80

# 或者

./ngrok -config ngrok.cfg start test


#如果在配置文件里有配置多个端口映射,可以start多个

./ngrok -config ngrok.cfg start test ssh


# 如果出现问题连接不上,想在本地查看日志,可加上log参数

# ./ngrok -log ngrok.log -config ngrok.cfg start test


# 最终如果`Tunnel Status`显示`online`则表示成功了

 

 

服务端防火墙

由于服务器上开启了防火墙,使用的是iptables,所以需要将上面的端口添加到白名单

一共3个,一个是ngrok自身的4443端口,还有自定义的8888 http端口,8889 https端口

 

vim /etc/sysconfig/iptables

添加以下内容

-A INPUT -m state --state NEW -m tcp -p tcp --dport 4443 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8889 -j ACCEPT

 

重启iptables

service iptables restart

 

阿里云服务器设置

如果你的服务器是阿里公有云ECS,那么你需要进行如下设置:管理控制台--ESC实例--管理--本实例安全组--配置规则--创建规则。 把服务端监听的三个端口放行就可以了。

搭建ngrok服务器之扩展

 

 

go语言环境安装

上篇中介绍了yum安装方法。此处是手动安装。根据自己的系统下载安装包,下载地址http://www.golangtc.com/download

 

搭建ngrok服务器之扩展

下载完成后直接解压。

tar -zxvf go1.7.4.linux-amd64.tar.gz  -C /usr/local

 

设置环境变量,可以根据自己需要调整路径。

vim /etc/profile

 

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin

export GOPATH=$HOME/go

export GOROOT_BOOTSTRAP=/usr/local/go

 

使变量生效

source/etc/profile

 

查看是否安装成功

go env


ngrok的交叉编译

交叉编译:就是在一个平台上生成另一个平台上的可执行代码。


网上有人说:服务器上要编译windows客户端版本时,需要进行如下设置:

cd /usr/local/go/src

GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 ./make.bash

我在别的服务器测试过后,不用这样也行,直接按上篇的方法直接编译即可。

 

我按上面进行设置。反而会报这样的错:

go ./make.bash: eval: line 135: syntax error near unexpected token `(

ERROR: Cannot find /root/go1.4/bin/go.

Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

报错原因:go新版本不是用C编写的,而1.4之前的是C编写的,所以需要先安装1.4的,才能编译1.6的,于是便先安装了1.4,再安装1.6。

相关内容

热门资讯

AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...
原创 王... 菲尔兹奖名单一出,邓煜和王虹两位华人数学家共同获奖,本应是一件令人振奋的喜讯。然而,王虹那段仅3分1...
《万物》杂志首个阅读空间亮相正... 26日,由国内知名的青少年家庭科普期刊《万物》杂志与广州正佳自然科学探索中心联合打造的阅读互动空间—...
从康复机器人到脑机接口 智能康... 天津北方网讯:对脑卒中患者来说,重新抬起手臂、迈出一步,往往需要持续的康复训练,逐步恢复运动功能;对...
原创 苹... 当苹果、谷歌、斯坦福、麻省理工都无法留住一位年轻的中国AI天才时,究竟是什么力量吸引他毅然回国?为何...
为什么新能源车供应链要本地化? 当前汽车产业变革加速,电动化成为核心发展方向。车企为了在激烈市场中站稳脚跟,必须优化生产结构。其中,...
携程罚单的真正影响,不是酒店变... 文 | 听风译码 7月25日,市场监管总局对携程开出51.79亿元天价罚单。 全网叫好。 但如果你...
自己管理自己,我国成功发射两颗... 7月24日消息,力箭一号遥十五运载火箭今日在东风商业航天创新试验区成功发射,以“一箭5星”方式将5颗...