Ngrok 内网穿透搭建 树莓派内网穿透

服务器端

安装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 服务器需要开通22224443端口
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

你可能感兴趣的:(Ngrok 内网穿透搭建 树莓派内网穿透)