内网穿透
     分类:环境搭建     有: 0 条评论

内网穿透

     分类:环境搭建     有: 0 条评论

ngrok

域名指向到IP,比如要通过访问域名:test.ngrok.leolan.top来访问内网机子;就把test.ngrok.leolan.top用A记录指向IP。

编译

yum install go -y


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

export GOPATH=/usr/local/ngrok/  #设置环境变量,Go语言的安装位置
export NGROK_DOMAIN="ngrok.leolan.top"  #设置环境变量,ngrok域名,不要前面的test

# 为域名生成证书
penssl 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

# 复制证书到指定位置
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

# 编译服务端和客户端(更改域名后要重新编译),根据需要选择
# win
GOOS=windows GOARCH=386 make release-server release-client
GOOS=windows GOARCH=amd64 make release-server release-client

# linux
GOOS=linux GOARCH=386 make release-server release-client
GOOS=linux GOARCH=amd64 make release-server release-client

# Mac
GOOS=windows GOARCH=386 make release-server release-client
GOOS=windows GOARCH=amd64 make release-server release-client

然后可以在bin下看到已编译好的文件。

使用

服务端

这里开启801-805一共5个端口,一个域名可以同时映射5条线路,用端口来区分。
./bin/ngrokd -domain="ngrok.leolan.top" -httpAddr=":801" -httpsAddr=":802" -httpsAddr=":803" -httpsAddr=":804" -httpsAddr=":805"

外网访问地址是:test.ngrok.leolan.top:801-805

win

新建ngrok.cfg文件,内容如下
server_addr: "ngrok.leolan.top:4443"
trust_host_root_certs: false

用cmd启动。或写成bat;这里subdomain就是最前面的test;80是把本地80映射到外网。
ngrok.exe -subdomain test -config=ngrok.cfg 80

linux、Mac:

新建ngrok.cfg文件,内容如下
server_addr: "ngrok.leolan.top:4443"
trust_host_root_certs: false

命令行启动或写成sh;这里subdomain就是最前面的test;80是把本地80映射到外网。
./ngrok -subdomain test -config=ngrok.cfg 80

一切正常的话就可以连上了。域名不对会报:bad certificate;;;重新生成证书。

一键脚本:https://github.com/clangcn/ngrok-one-key-install

反向代理
如果是用于微信开发之类的,要80端口,可以用nginx做反代;记得家端口,

        proxy_pass http://127.0.0.1:801;
        proxy_set_header Host $host:801;

参考:
http://blog.csdn.net/zhangguo5/article/details/77848658?utm_source=5ibc.net&utm_medium=referral
https://www.sunnyos.com/article-show-48.html
https://yq.aliyun.com/articles/11852


(●゚ω゚●)