美文网首页
Ngrok实现内网穿透

Ngrok实现内网穿透

作者: 霡霂976447044 | 来源:发表于2020-05-29 10:53 被阅读0次

    先决条件:

    • 云服务器一台
    • 域名
    • Linux

    下载源码和生成证书

    git clone https://github.com/inconshreveable/ngrok.git
    cd ngrok
    NGROK_DOMAIN="你的域名"
    
    openssl rand -writerand ~/.rnd  # linux mint19
    
    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
    cp base.pem assets/client/tls/ngrokroot.crt
    cp server.crt assets/server/tls/snakeoil.crt
    cp server.key assets/server/tls/snakeoil.key
    

    编译

    先自行安装Go

    export GO111MODULE=off
    make release-server release-client
    

    出现下载失败的,先

    export GOPROXY="goproxy.io";export GO111MODULE=on
    

    再使用go get下载无法下载的包
    然后切换回go path模式

    export GO111MODULE=off
    make release-server release-client
    

    服务端运行

    scp ./bin/ngrokd user@host:/path/to/save
    

    ssh连接进服务器,运行

    ./ngrokd -domain="你的域名" -httpAddr=":9091" -tunnelAddr=":4443" -httpsAddr=":9092"
    

    打开云平台安全组设置,将这几个端口开放

    客户端运行

    创建ngrok.cfg文件,编辑

    server_addr: 你的域名:4443
    trust_host_root_certs: false
    tunnels:
     myserver:
      remote_port: 9093
      proto:
       tcp: 3000
    

    remote_port为服务器转发端口,同样的,打开云平台安全组设置,将这个端口开放。

    3000为局域网主机端口,使用tcp方式(http一样可以用)

    运行

    ./ngrok -config=./ngrok.cfg start myserver
    

    根据提示打开网址即可, 如果你的局域网端口实际是http协议,那么直接浏览器打开即可。

    临时的后台运行

    nohup ./start_ngrok.sh &
    

    start_ngrok.sh文件内容如下

    ./ngrokd -domain="你的域名" -httpAddr=":9091" -tunnelAddr=":4443" -httpsAddr=":9092"
    

    参考:
    https://www.jianshu.com/p/69b4f10ad954

    相关文章

      网友评论

          本文标题:Ngrok实现内网穿透

          本文链接:https://www.haomeiwen.com/subject/sfhxzhtx.html