Rootop 服务器运维与web架构

使用ngrok实现内网穿透

go官网:https://golang.org/dl/

# 安装 go 环境

[root@www ~]# wget -c https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz
[root@www ~]# tar zxvf go1.10.1.linux-amd64.tar.gz
[root@www ~]# mv go /usr/local/

# 设置环境变量

[root@www ~]# vi /etc/profile
export PATH=$PATH:/usr/local/go/bin

# 生效

[root@www ~]# source /etc/profile

# 下载 ngrok 并解压

[root@www ~]# git clone https://github.com/inconshreveable/ngrok.git

# 生成自签名证书,并编译内置此证书的客户端

[root@www ~]# cd ngrok

NGROK_DOMAIN="ngrok.rootop.org"
openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

# 替换证书

[root@www ngrok]# cp base.pem assets/client/tls/ngrokroot.crt

# 生成服务端 ngrokd,在bin目录下

[root@www ngrok]# make release-server

# 启动服务端

[root@www ngrok]# ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.rootop.org" -httpAddr=":8080" -httpsAddr=":8443"
略
[13:20:25 CST 2018/04/13] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:8080
[13:20:25 CST 2018/04/13] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:8443
[13:20:25 CST 2018/04/13] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443
httpAddr # 监听http端口 (转发此端口请求到客户端指定端口)
httpsAddr # 监听https端口 (转发此端口请求到客户端指定端口)
4443 端口用于服务端和客户端通信,可以用 -tunnelAddr=":1234" 指定

# 生成linux客户端,在bin目录下

[root@www ngrok]# make release-client

# 生成mac客户端,在bin目录下

[root@www ngrok]# GOOS=darwin GOARCH=amd64 make release-client

# 生成windows客户端,在bin目录下

[root@www ngrok]# GOOS=windows GOARCH=amd64 make release-client

然后在bin目录下会生成一个 windows_amd64 文件夹,是windows的客户端。下载下来。

# 创建客户端配置文件 ngrok.cfg

server_addr: "ngrok.rootop.org:4443"
trust_host_root_certs: false

在命令提示符,启动服务。
[code type="shell"]
C:\ngrok>ngrok.exe -config=ngrok.cfg -log=log.log -subdomain=abc 8080

-config指定配置文件 -log指定日志 -subdomain指定三级域名 加 本地端口
运行以后,出现下面字样就成功了。


这样,访问服务器的8080端口,就会访问到内网机器的8080.
根据提示来看,还有一个web查看界面。


需要注意:
服务端监听的端口需要放行。
三级域名需要解析。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4026.html

作者:Venus

服务器运维与性能优化

评论已关闭。