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