CentOS7搭建内外网穿透ngrok心酸历程

准备工作:

1.准备云服务器(我使用阿里云服务器)、备案过的域名一个

2.域名解析:新手引导——快速入门——云解析

 

1.安装git(用以后续下载ngrok)

yum install git

查看git 版本:

2.安装go:

yum install go

命令 go env 用于打印 Go 语言的环境信息。其中的一些信息我们在之前已经多次提及,但是却没有进行详细的说明。在本小节,我们会对这些信息进行深入介绍。我们先来看一看 go env 命令情况下都会打印出哪些 Go 语言通用环境信息。

表0-25 go env 命令可打印出的 Go 语言通用环境信息

名称说明
CGO_ENABLED指明cgo工具是否可用的标识。
GOARCH程序构建环境的目标计算架构。
GOBIN存放可执行文件的目录的绝对路径。
GOCHAR程序构建环境的目标计算架构的单字符标识。
GOEXE可执行文件的后缀。
GOHOSTARCH程序运行环境的目标计算架构。
GOOS程序构建环境的目标操作系统。
GOHOSTOS程序运行环境的目标操作系统。
GOPATH工作区目录的绝对路径。
GORACE用于数据竞争检测的相关选项。
GOROOTGo语言的安装目录的绝对路径。
GOTOOLDIRGo工具目录的绝对路径。

 

3.获取ngrok(在/usr/local下)

cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=/usr/local/ngrok/
export NGROK_DOMAIN="xx.xx.xx"(*此处改为你自己的域名即可)
cd ngrok

4.为域名生成证书(/usr/local/ngrok目录下)

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

5.替换证书文件(/usr/local/ngrok目录下)

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

6.编译服务端

GOOS=linux GOARCH=amd64 make release-server

生成客户端

GOOS=windows GOARCH=amd64 make release-client

查看/usr/local/ngrok/bin下文件目录:

若提示找不到tree命令

则用yum install tree安装tree:

7.启动服务端(/usr/local/ngrok/bin目录下)

-domain:域名,第3步骤设置的

export NGROK_DOMAIN="xx.xx.xx"(*此处改为你自己的域名即可)

-httpAddr http协议端口 设置为8080端口

./ngrokd -domain=$NGROK_DOMAIN -httpAddr=":8080"

成功启动服务器

8.从云服务器下载ngrok客户端到windows本地

使用scp从linux服务器下载文件到本地方法

①从服务器下载文件

scp 用户名@服务器地址:文件路径 本地路径

②从本地上传文件到服务器

scp 本地文件路径 用户名@服务器地址:文件路径

具体操作:

scp root@服务器地址:/usr/local/ngrok/bin/windows_amd64/ngrok.exe 本地地址

在本地ngrok.exe 通目录下新建文件ngrok.conf:

server_addr: "ngrok.bepromising.top:4443"
trust_host_root_certs: false

server_addr: 是在服务器上设置的那个域名 4443是服务区启动时的监听端口 保持一致 (改就都改 不改就不要动)

 

9.启动客户端ngrok及遇到的问题

cmd到ngrok.exe所在目录下:

执行 ngrok.exe -config=ngrok.conf -subdomain test 8080

其中test为穿透的域名前缀,8080为穿透的域名映射端口

建立链接

其中遇到问题:一直连接不上,因此我以为是我的ngrok编译设置过程中出现了问题,然后看各种教程,使用个各种方法,下载不同,但是结果都是连接不上,直到最后看到了一个帖子

服务端 启动成功 客户端连不上:

是因为 防火墙 端口没有开放443 4443 8080 等 都开放一下

开放后可以关闭防火墙 没什么大用 

开了之后 还是连不上 这就需要去云服务器端设置安全组的入站规则:

①到服务器开放端口443 4443 8080:

查看防火墙状态,发现防火墙是关闭状态:systemctl status firewalld

打开防火墙:systemctl start firewalld

开放端口443 4443 8080:

firewall-cmd --permanent --zone=public --add-port=443/tcp

firewall-cmd --permanent --zone=public --add-port=4443/tcp

firewall-cmd --permanent --zone=public --add-port=8080/tcp

提示success

注意:如果不使用“--permanent”标记,把么防火墙规则在重启后会失效。

 

②发现还是连接不上服务器,到云服务器设置安全组别

  1. 登录 云服务器管理控制台
  2. 单击左侧导航中的 安全组
  3. 选择地域。
  4. 找到要授权规则的安全组,单击 配置规则
  5. 单击 添加安全组规则
  6. 在弹出的对话框中,设置下面参数:

 

对443 4443 8080进行设置

再次连接,成功连接!!!!!

 

 

 

参考链接:

1)go 命令教程

2)手把手教你搭建Ngrok——以小米球Ngrok为例

3)完整的搭建内网穿透ngrok详细教程(有图有真相)

4)ubuntu 16.04搭建ngrok内网穿透服务

5)Centos搭建Ngrok实现内网穿透:https://www.jianshu.com/p/796c3411f8eb

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值