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

Ngrok搭建实现内网穿透

作者: 奋斗_登 | 来源:发表于2017-11-27 00:58 被阅读238次

    本教程将图文讲解ngrok在服务端(centos7.3),在客户端(win10)搭建的详细过程。
    所需条件

    1、顶级域名例如www.xx.com,域名需要实名制并且备案通过。
    2、centos云服务器一台(我用的阿里云)

    下边开始逐步安装

    安装Go语言环境

    执行以下命令行,安装必要包

    yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ build-essential  mercurial
    

    使用国内镜像安装Go,安装最新版本1.9.2

    wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
    tar -zxvf go1.9.2.linux-amd64.tar.gz
     mv go /usr/local/
    ln -s /usr/local/go/bin/* /usr/bin/
    

    查看Go编译环境

    go env
    
    升级Git版本
    wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
    tar zxvf git-2.9.5.tar.gz 
    cd git-2.9.5
     ./configure --prefix=/usr/local/git-2.9.5
    make
    make install
    

    取代低版本的git

    yum remove git*
    ln -s /usr/local/git-2.9.5/bin/* /usr/bin/
    

    查看git版本

    git --version
    

    环境及工具都安装好之后就安装ngork

    Ngork 下载安装
    git clone https://github.com/inconshreveable/ngrok.git ~/ngrok
    export GOPATH=~/ngrok/
    export NGROK_DOMAIN="xx.com"
    cd ~/ngrok
    

    xx.com要换成自己的域名,路径可以自行修改,目前路径为/root/ngrok

    生成证书
    export NGROK_DOMAIN="xx.com"
    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
    

    copy证书

    cp rootCA.pem assets/client/tls/ngrokroot.crt
    cp server.crt assets/server/tls/snakeoil.crt
    cp server.key assets/server/tls/snakeoil.key
    
    编译服务端及客户端

    服务器端(centos)

    export GOOS=linux
    export GOARCH=amd64 
    make release-server
    

    客户端(win10)

    export GOOS=windows
    export GOARCH=amd64 
    make release-client
    

    客户端(树莓派 Raspbian)
    树莓派为linux-arm架构

    export GOOS=linux
    export GOARCH=arm
    make release-client
    

    编译后在bin文件夹下有ngrokd(服务端)、客户端(windows_amd64)

    安装Ngrok
    1、域名配置将域名xx.com指向ngrok服务器的ip地址及*.xx.com也指向这台机器ip
    2、服务端安装

    将编译好的服务端文件copy到/usr/bin下

    cp ~/ngrok/bin/ngrokd /usr/bin/
    

    单独打开screen

    yum install -y screen
    screen -S ngrokd
    

    服务端运行

    sudo ngrokd -domain="xx.com" -httpAddr=":80" -httpsAddr=":443"
    

    screen 相关命令 :

    screen -ls #查看在运行的screen
    screen -r 9319 #连接某个screen
    

    服务器运行成功
    屏幕会输出一连串日志信息,ttpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,ngrokd 还会开一个 4443 端口用来跟客户端通讯
    最后按快捷键ctrl+A+D,既可以保持ngrok后台运行

    3、客户端安装(win10)

    将在服务器上生成好的客户端程序下载下来



    红框内的两个文件是要新增的
    1、ngrok.cfg(配置文件),内容如下
    server_addr: "xx.com:4443"
    trust_host_root_certs: false
    2、bat文件内容
    D:/windows_amd64/ngrok.exe -log=ngrok.log -config=ngrok.cfg -subdomain=test 80
    注:test为子域名 即test.xx.com
    双击bat即可启动客户端

    启动成功!
    这时候访问http://test.xx.com/ 即可访问到本机的web服务

    更多详情更新中...

    相关文章

      网友评论

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

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