yum remove git
yum install epel-release
yum install https://centos7.iuscommunity.org/ius-release.rpm
yum install git2u
git --version # 返回git version 2.5.0 则安装成功
yum install -y golang
mkdir ~/ngrok
cd ngrok
git clone https://github.com/inconshreveable/ngrok.git
export GOPATH=~/ngrok/ngrok
cd ngrok
export DOMAIN_NAME='example.com' # 这里的域名写你自己的
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$DOMAIN_NAME" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$DOMAIN_NAME" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
assets/client/tls
和assets/server/tls
中, 这两个目录分别存放着ngrok和ngrokd的默认证书。在cp前加上' \ '强制覆盖不提示\cp rootCA.pem assets/client/tls/ngrokroot.crt
\cp device.crt assets/server/tls/snakeoil.crt
\cp device.key assets/server/tls/snakeoil.key
make release-server
需要等待一会儿,接下来根据你客户端的系统种类来执行ngrok的编译
GOOS=linux GOARCH=amd64 make release-client # linux的客户端
GOOS=windows GOARCH=amd64 make release-client # windows的客户端
GOOS=darwin GOARCH=amd64 make release-server release-client # mac的客户端
编译完成之后,可以在~/ngrok/ngork/bin目录下看到ngrok与ngrokd两个文件
把ngrok下载到你的客户端,也就是内网服务器,稍后使用
先启动服务端
/root/ngork/ngrok/bin/ngrokd -domain=example.com -httpAddr=:5442 -httpsAddr=:5443
vi ~/.ngrok
# 写入以下内容
server_addr: "example.com:4443" # 此处域名换成你自己的
trust_host_root_certs: false
tunnels:
ssh:
proto:
tcp: 22
remote_port: 12345 # 这个为绑定在服务器端的端口号
进入之前下载了ngrok客户端的目录
ngrok start ssh
出现以下内容则表示成功连接到你的Ngrok服务器,并且此时已经可以通过域名 example.com 加 12345 端口与你的内网服务器建立ssh连接了
ngrok (Ctrl+C to quit)
Tunnel Status online
Version 1.7/1.7
Forwarding tcp://example.com:12345 -> 127.0.0.1:22
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
~/.ngrok
加载。你可以通过 -config
参数重写配置文件的地址tunnels:
client:
auth: "user:password"
proto:
https: 8080
ssh:
proto:
tcp: 22
hacks.inconshreveable.com:
proto:
http: 9090
启动客户端
ngrok start client ssh hacks.inconshreveable.com # 一次性启动多个隧道
tunnels:
client:
subdomain: "example"
auth: "user:password"
proto:
https: 8080
tunnels:
ssh:
remote_port: 60123
proto:
tcp: 22
ngrok中文文档:http://ngrok.cn/docs.html
ngrok更多配置详解:https://imlonghao.com/28.html
个人网站:mew.wiki 期待您的来访!