最新完美教程 使用centos 7 linux 本身搭建 ngrok 实现内网穿透

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

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

1、环境安装

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

# 安装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
复制代码

安装gonginx

# 下载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环境设置c++

#安装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"

复制代码

2、ngrok配置

下载ngrokgit

cd /usr/local/  
git clone https://github.com/inconshreveable/ngrok.git
复制代码

环境变量github

export GOPATH=/usr/local/ngrok/  
export NGROK_DOMAIN="xxx.com"   #这里写你本身的域名,不要前缀,好比www
复制代码

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

生成证书windows

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原来的证书centos

过程会让你输入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
复制代码

生成服务端bash

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后面的是二级域名前缀,你能够改,
#注意要在域名解析里添加二级域名解析
复制代码

添加二级域名解析

这里写图片描述
以下就是OK了 显示online就能够!
这里写图片描述

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

相关文章
相关标签/搜索