利用云服务器搭建ngrok服务实现内网穿透

本篇文章的搭建环境是 : 阿里云centos7服务器

一.搭建前的准备

  1. 必须要有公网ip地址,云服务器的话已经具备这一条件了。
  2. 还有一个条件就是要有域名.有了域名我们才可以把域名的解析添加到服务器的ip地址上。

二. 搭建过程

  1. 安装git和golang
yum install -y git
yum install -y golang
  1. 下载源码
git clone https://github.com/inconshreveable/ngrok.git
  1. 生成自签名证书
cd ngrok

NGROK_DOMAIN="xxxx.xxx"        ###### 此处填写自己的域名

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
  1. 替换证书
cp base.pem assets/client/tls/ngrokroot.crt
  1. 编辑ngrok服务端
make release-server release-client

编译成功后会在bin目录下找到ngrokd和ngrok这两个文件。其中ngrokd 就是服务端程序了。 利用云服务器搭建ngrok服务实现内网穿透_第1张图片

  1. 启动服务端
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="xxx.xxxx" -httpAddr=":80" -httpsAddr=":443"

httpAddr是转发http服务的端接口、httpsAddr别是转发https 服务的端口,可以随意指定,domain为自己的域名。

  1. 域名配置(后续客户端配置时要使用)
    利用云服务器搭建ngrok服务实现内网穿透_第2张图片
  2. 编译客户端
  • windows
GOOS=windows GOARCH=amd64 make release-client  

执行对应的命令会在bin目录下生成相对应的windows目录,ngrok.exe就存放在对应目录下。将对应的ngrok.exe下载到本地即可。

  1. 设置本地客户端
  • 在同级目录下新建一个配置文件ngrok.cfg
server_addr: "bqwdz.xyz:4443"  ## 自己的域名:4443
trust_host_root_certs: false
tunnels:
    netmod:          
        remote_port: 1234      ## 远程端口
        proto:
            tcp: 1234          ## tcp协议 本地端口
    www:
        subdomain: test        ## 自定义的域名前缀
        proto:
            http: 80           ## http协议  本地端口
  • 同级目录下新建一个启动脚本startup.bat
ngrok.exe  -config ngrok.cfg  start-all
  • 启动,点击启动脚本startup.bat完成启动
    利用云服务器搭建ngrok服务实现内网穿透_第3张图片

你可能感兴趣的:(利用云服务器搭建ngrok服务实现内网穿透)