手记

作为剽窃狗,我必须分享大神怎么搭建「内网穿透」服务器的

首先加粗声明原文出处https://blog.csdn.net/zhangguo5/article/details/77848658

当然,我在大神的文章上加了别的东西,为了更适合我们后端程序员做本地开发调试。

以下的所有步骤,截图均经过本人实验。

  1. 首先你得有一台云服务器(我的是centos7系统)和域名。如何购买和认证,我个人还是推荐阿里云作为服务商的。

  2. yum install git

    因为我会通过git安装ngrok

    关于ngrok我也了解的不多,反正就是外国大神写的内网穿透的神器,有兴趣自行查询。

  3. git clone https://github.com/inconshreveable/ngrok.git ngrok2
  4. yum install golang
  5. 给你的已有域名,添加解析的IP地址用于内网穿透。两个都要添加!



  6. export NGROK_DOMAIN="ngrok.yourdomain.com"  #设置环境变量,ngrok域名


  7. 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
  8. 执行成功如下


  9. cp rootCA.pem /ngrok2/assets/client/tls/ngrokroot.crt  #复制rootCA.pem到assets/client/tls/并更名为ngrokroot.crt
    cp server.crt /ngrok2/assets/server/tls/snakeoil.crt   #复制server.crt到assets/server/tls/并更名为snakeoil.crt
    cp server.key /ngrok2/assets/server//tls/snakeoil.key  #复制server.key到assets/server/tls/并更名为snakeoil.key

    将三个证书放到下载的ngrok2里指定的文件夹中,并且覆盖源文件


  10. GOOS=windows GOARCH=386 make release-server  #win服务端
    GOOS=windows GOARCH=386 make release-client  #win客户端
    GOOS=linux GOARCH=386 make release-server    #linux服务端
    GOOS=linux GOARCH=386 make release-client    #linux客户端
    GOOS=linux GOARCH=amd64 make release-server    #centos64服务端
    GOOS=linux GOARCH=amd64 make release-client    #centos64客户端
    GOOS=darwin GOARCH=amd64 make release-server    #mac64服务端
    GOOS=darwin GOARCH=amd64 make release-client    #mac64客户端

    在下载下来的ngrok2根目录生成相应系统所使用的应用。

    因为我server用的是阿里云(centos7),而需要穿透的web服务是在我的mac上的,所以我选择生成mac的客户端。

    各位老友千万不要弄错服务端或者客户端的系统。



  11. #写一个服务端运行的脚本,以后这台服务器就是运行内网穿透的server
    vim /ngrok2/bin/linux_386/ngrokserver2.sh
    #在文件中写上一下内容并保存,没有权限记得自己chmod 775,和之前生成的linux应用放同一目录
    /ngrok2/bin/linux_386/ngrokd -tlsKey="/ngrok2/assets/server/tls/snakeoil.key" -tlsCrt="/ngrok2/assets/server/tls/snakeoil.crt" -domain="ngrok.你的域名.com" -httpAddr=":801" -httpsAddr=":802"


  12. 去服务商开放端口,比自己开放端口简单很多。红框中三个端口需要开放


  13. 然后回去启动你刚才写的ngrokserver2.sh,应该一下就可以启动成功了。

    nohup 你的命令 &应该不用我多说

    当然,我上面展示的脚本代码中,所选的服务端,不是我所用的服务端。你们要参考自己服务器的操作系统选择。


  14. 然后到了客户端,利用ftp把生成好的客户端文件拿到要穿透的电脑上。


  15. #创建配置文件来配合运行客户端配件
    vim ngrok.cfg
    # 以下是配置文件内容,ws是我要用来访问websocket协议的
    server_addr: "ngrok.你的域名.com:4443"
    trust_host_root_certs: falsetunnels:
      http:
        subdomain: "kyt"
        proto:
          http: "8080"
      https:
        subdomain: "kyt"
        proto:
          https: "8080"
      ws:
        proto:
          http: "8088"

  16. #运行客户端文件,进行内网渗透
    ./ngrok -config=ngrok.cfg start http https ws
    # ngrok.cfg是配置文件,和我的客户端文件(ngrok)同级所以可以直接指定使用

  17. 穿透成功

    红框内是外网用以访问内网的域名。

    8080是我springboot起的http服务,8088是我springboot用netty起的websocket服务。

    至此,你本机上运行的项目,外网就能够访问得到了。

    By the way,我的https的域名还是没法访问的,因为不知道怎么配置SSL证书。

    

0人推荐
随时随地看视频
慕课网APP

热门评论

自己搭建内网穿透的话是很麻烦的,有需要的可以了解一下网云穿

查看全部评论