美文网首页
最新完美教程 使用centos 7 linux 自己搭建 ngr

最新完美教程 使用centos 7 linux 自己搭建 ngr

作者: 周大侠啊_ | 来源:发表于2018-03-30 16:50 被阅读0次

    最新完美教程 使用centos 7 自己搭建 ngrok 实现内网穿透

    其实挺麻烦的,我查了好多资料才搞定的。如果不想折腾,就简单使用ngrok 实现内网穿透,可以移步到我这个教程利用 ngrok 免费内网穿透部署 微信开发 调试环境

    一、环境安装

    安装git
    如果出现 yum 的程序找不到,或者很慢
    请移步这个教程yum 找不到程序, yum更换国内阿里源

    # 安装git所需要的依赖包  
    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++  
    
    # 下载新版本git (版本列表 https://www.kernel.org/pub/software/scm/git/)  
    cd /usr/local  
    wget https://www.kernel.org/pub/software/scm/git/git-2.16.2.tar.gz  
    
    # 解压  
    tar zxvf git-2.16.2.tar.gz  
    
    # 编译git  
    cd git-2.16.2  
    ./configure --prefix=/usr/local/git  
    make  
    make install  
    
    #删除刚才下载的git包
    cd /usr/local
    rm git-2.16.2.tar.gz -y
    

    安装go

    # 下载go 
    cd /usr/local
    www.golangtc.com/static/go   (这里是列表,注意自己的系统是多少位的,linux-amd64是64位的。linux-386是32位的)
    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 /usr/local/  
    
    # go的命令需要做软连接到/usr/bin  
    ln -s /usr/local/go/bin/* /usr/bin/ 
    
    #删除下载的go包
    rm go1.9.2.linux-amd64.tar.gz -y
    

    go环境设置

    #安装go语言的安装环境
    yum install mercurial bzr subversion -y
    #新建go目录作为项目目录
    mkdir -p $HOME/go
    #用cat的方法在尾部增加配置配置golang的 GOROOT GOPATH
    #(注意,这里GOROOT 后面的路径是你go解压的路径,如果不是按照我的方法解压的,请注意看一下)
    下面这段,整段复制粘贴过去
    cat >>$HOME/.bash_profile<<EOF
    export GOROOT=/usr/local/go    
    export GOPATH=\$HOME/go
    export PATH=\$PATH:\$GOROOT/bin
    EOF
    #让配置生效
    source $HOME/.bash_profile
    
    3.检查下go的env环境变量
    go env
    
    输出:
    有一段输出就行了,比如这样的
    GOARCH="amd64"
    GOBIN=""
    GOEXE=""
    GOHOSTARCH="amd64"
    GOHOSTOS="linux"
    GOOS="linux"
    GOPATH="/root/go"
    GORACE=""
    GOROOT="/usr/local/go"
    GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
    GCCGO="gccgo"
    CC="gcc"
    
    

    二、ngrok配置

    下载ngrok

    cd /usr/local/  
    git clone https://github.com/inconshreveable/ngrok.git
    

    环境变量

    export GOPATH=/usr/local/ngrok/  
    export NGROK_DOMAIN="xxx.com"   #这里写你自己的域名,不要前缀,比如www
    

    估计这里你会有疑问,看到别人家都是 ngrok.xxx.com 类似这种形式的
    这里就是用到了三级域名解析,如果你想要以 xxx.ngrok.xxx.com 这种最终域名形式访问你的服务,(这里第一次搭建不推荐,你可以二级成功以后再用三级的,但是得从环境变量这步往下重新操作一边。)请看下面教程:
    超简单 图解 三级域名解析

    生成证书

    cd /usr/local/ngrok
    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 
    

    拷贝证书覆盖ngrok原来的证书

    过程会让你输入y 回车
    cp rootCA.pem assets/client/tls/ngrokroot.crt 
    cp server.crt assets/server/tls/snakeoil.crt 
    cp server.key assets/server/tls/snakeoil.key
    

    生成服务端

    cd /usr/local/ngrok/  
    GOOS=linux GOARCH=amd64 make release-server  #这里GOOS后面是你的系统,我是linux,GOARCH 后面是系统,64位是amd64,32位是386
    然后就是等待下载了,没有进度条,耐心等待。
    这里可能报各种错,我当时就很崩溃。
    生成的服务端在/usr/local/ngrok/bin   下的  ngrokd文件
    

    错误:无法交叉编译 cannot install cross-compiled binaries

    $ make release-server GOOS=linux GOARCH=386  
    bin/go-bindata -nomemcopy -pkg=assets -tags=release \  
            -debug=false \  
            -o=src/ngrok/client/assets/assets_release.go \  
            assets/client/...  
    bin/go-bindata -nomemcopy -pkg=assets -tags=release \  
            -debug=false \  
            -o=src/ngrok/server/assets/assets_release.go \  
            assets/server/...  
    go get -tags 'release' -d -v ngrok/...  
    go install -tags 'release' ngrok/main/ngrokd  
    go install: cannot install cross-compiled binaries when GOBIN is set  
    make: *** [server] Error 1
    

    解决方法

    cd /usr/local/ngrok
    mkdir bin  
    cp $GOBIN/go-bindata bin/  
    unset GOBIN
    

    生成客户端

    cd /usr/local/ngrok/  
    GOOS=windows GOARCH=amd64 make release-client  #这里GOOS后面是你的系统,我是要在window上启动客户端,GOARCH 后面是系统,64位是amd64,32位是386
    然后就是等待下载了,没有进度条,耐心等待。
    生成的在/usr/local/ngrok/bin/windows_amd64  的ngrok.exe  
    都在bin下,服务端是ngrokd   客户端是ngrok
    

    启动服务器端

    这里为了方便我直接就用80端口了,请确认你的80端口没有被占用,关闭相应的服务。
    后面要想用,建议使用nginx反向代理到ngrok。
    
    cd /usr/local/ngrok/bin
    ngrokd -domain="xxx.com" -httpAddr=":80" -httpsAddr=":8081" -tunnelAddr=":4443"
    
    #-domain后面你上面写的域名  -httpAddr http端口  -httpsAddr https 端口 
    #-tunnerlAddr 客户端端口,连接端口
    

    启动客户端(window)
    现将ngrok.exe 下载到自己的电脑上,
    然后同目录下创建文件ngrok.conf;内容如下:

    server_addr: "xxxx.com:4443"   #你上面自己写的域名
    trust_host_root_certs: false  
    
    #目录下打开命令行
    ngrok -config=./ngrok.conf -subdomain=blog 80 
    #这里subdomain后面的是二级域名前缀,你可以改,
    #注意要在域名解析里添加二级域名解析
    

    添加二级域名解析

    image.png

    如下就是OK了 显示online就可以!


    image.png

    最后通过blog.xxx.com 访问你本地的服务器吧

    相关文章

      网友评论

          本文标题:最新完美教程 使用centos 7 linux 自己搭建 ngr

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