本文内容大部分来自网络,经过汇总如下,不再一一标注来源。
一、Ngrok简介,请百度。主要实现将内网电脑作为服务器,映射到外围访问。
二、准备工作。
- 必须要有自己的VPS或云主机,且有域名可以用作外网访问,并将相关要使用的域名提前解析到服务器或云主机上。
- 安装环境gcc、git、go语言(有很多linux系统已自带,可以忽略,可以用go --version测试下)。centos下命:
-
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++ yum -y install go git
三、安装ngork
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok #进入ngrok目录,后面操作都是在ngrok目录下完成!
四、生成服务器端和客户端
make release-server
这样就会在bin目录下生成ngrokd 这个文件,就是我们ngrok的服务器程序
编译客户端ngrok(不同系统不同的命令如下)
- 32位linux客户端: GOOS=linux GOARCH=386 make release-client
-
64位linux客户端: GOOS=linux GOARCH=amd64 make release-client
-
32位windows客户端: GOOS=windows GOARCH=386 make release-client
-
64位windows客户端: GOOS=windows GOARCH=amd64 make release-client
-
32位mac平台客户端:GOOS=darwin GOARCH=386 make release-client
-
64位mac平台客户端:GOOS=darwin GOARCH=amd64 make release-client
-
ARM平台linux客户端: GOOS=linux GOARCH=arm make release-client
执行下述命令生成客户端:
GOOS=windows GOARCH=amd64 make release-client
生成的客户端位于ngrok/bin下,将ngrok.exe拷贝到本地电脑任意文件夹。
五、配置服务器和客户端
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"
以上命令启动服务端,可以后台启动,使用以下命令
nohup bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443" &
$ngrok_domain 设定为你要使用的域名。比如要在客户端使用demo.atbt.net,这里就填atbt.net ,这样在客户端就可以设定任意二级域名,httpsaddr为https要使用的端口,httpAddr为http端口,tunnelAddr为ngrok默认服务端口。以上端口若有冲突,可以修改。
下面配置windows客户端
1、在本地ngrok文件夹下建立ngrok.cfg作为配置文件,配置文件内容如下:可以自行修改:
server_addr: "yourdomain.com:443"
trust_host_root_certs: false
tunnels:
http:
subdomain: "ngrok"
auth: "user:12345"
proto:
http: "80"
ssh:
remote_port: 2222 ##指定FTP端口
proto:
tcp: "22"
hacks.yourdomain.com:8080:
proto:
http: 80
router.yourdomain.com:8080:
proto:
http: 80
campaigns.yourdomain.com:8080:
proto:
http: 80
六、启动客户端
ngrok -config ngrok.cfg start http tcp web.tshon.com:8080
即可将http服务和tcp服务启动