Ngrok¶
介绍:内网穿透服务。
软件官网:ngrok.com。
自建ngrok服务¶
服务器防火墙开启端口4443 域名解析到相应IP(*全部解析,@剩下)
yum install gcc git golang
wget https://studygolang.com/dl/golang/go1.12.linux-amd64.tar.gz tar -zxvf go1.8.linux-amd64.tar.gz .vim /etc/profile 加上这两句话 export GOROOT=你的go解压地址 export PATH=$PATH:$GOROOT/bin source /etc/profile 是环境生效 go version 查看go是否安装成功
git clone https://github.com/inconshreveable/ngrok.git cd ngrok NGROK_DOMAIN="你的域名" openssl genrsa -out base.key 2048 openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt cp base.pem assets/client/tls/ngrokroot.crt # 复制证书 make release-server release-client # 生成服务端和客户端文件 nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你的域名" -httpAddr=":80" -httpsAddr=":8082" & # 启动服务
GOOS=windows GOARCH=amd64 make release-client GOOS=darwin GOARCH=amd64 make release-client
server_addr: "你的域名:4443" trust_host_root_certs: false
linux设置为系统程序并后台运行¶
cd /etc/systemd/system/
vim ngrok.service
[Unit] Description=ngrok After=network.target [Service] ExecStart=/myweb/ngrok/bin/ngrokd -tlsKey=/myweb/ngrok/server.key -tlsCrt=/myweb/ngrok/server.crt -domain="weixin.yangjiace.xyz" -httpAddr=":80" -httpsAddr=":443" [Install] WantedBy=multi-user.target
windows配置启动¶
配置文件ngrok.cfg
server_addr: "weixin.yangjiace.xyz:4443" trust_host_root_certs: false
@echo off if "%1"=="hide" goto CmdBegin start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit :CmdBegin cd %cd% #ngrok -proto=tcp 22 #ngrok start web ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080
客户端配置¶
小米球ngrok 在程序目录新建文件start.sh
path=/usr/local/ngrok nohup $path/ngrok -config=$path/ngrok.cfg -subdomain xxx -log=stdout 80 >/dev/null 2>&1 &
#!/bin/sh #chkconfig:2345 70 30 #description:ngrok ngrok_path=/usr/local/ngrok case "$1" in start) echo "start ngrok service.." sh ${ngrok_path}/start.sh ;; *) exit 1 ;; esac