服务器端
安装Go语言环境
yum install go
clone
- 创建文件夹
ngrok_server
cd ngrok_server
git clone https://github.com/inconshreveable/ngrok.git
- 进入
ngrok
创建文件夹cert
并进入
export NGROK_DOMAIN="ngrok.你的域名.com"
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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
- 生成好证书
y
覆盖
cp rootCA.pem ../assets/client/tls/ngrokroot.crt
cp device.crt ../assets/server/tls/snakeoil.crt
cp device.key ../assets/server/tls/snakeoil.key
- 服务端编译 存放目录
ngrok_server/ngrok/bin
GOOS=linux GOARCH=amd64 make release-server
- 后台启动
nohup ./ngrokd -domain="ngrok.你的域名.com" &
客户端
- 将服务器上的ngrok源码文件压缩
tar -czvf ngrok.tar.gz ./ngrok
传输到树莓派 解压tar -xzvf ngrok.tar.gz
删除ngrok/bin
下的文件
sudo apt install golang
apt install make
cd ngrok
make release-client
- 创建配置文件
touch ngrok.cfg
服务器需要开通2222
和4443
端口
server_addr: "ngrok.你的域名.com:4443"
trust_host_root_certs: false
tunnels:
ssh:
remote_port: 2222
proto:
tcp: "22"
- 启动
./ngrok -config=ngrok.cfg start ssh
后台启动
- 创建
touch ngrok.sh
文件 执行权chmod +x ngrok.sh
./ngrok -config=ngrok.cfg start ssh
apt-get install screen
screen ./ngrok.sh
- 连接
ssh -p 2222 ubuntu@ngrok.你的域名.com
开机启动
写绝对路径
/etc/init.d
目录创建文件touch ngrok
case "$1" in
start)
echo "start ngrok service.."
sh /data/ngrok_app/ngrok/bin/ngrok.sh
;;
*)
exit 1
;;
esac
- 文件
/data/ngrok_app/ngrok/bin/ngrok.sh
/data/ngrok_app/ngrok/bin/ngrok -config=/data/ngrok_app/ngrok/bin/ngrok.cfg start ssh
添加开机启动
systemctl enable ngrok
启动
systemctl start ngrok
systemctl stop ngrok
状态
systemctl status ngrok.service