之前的旧手机因为只用了一年摔了一下,屏幕换了,换了个水屏3张,又摔了一下,修复充电,2张 故而直接抛弃惜之 想到用来搭建自有的nas服务器 linux deploy 源于xiaomi的解锁限制 168小时,故而先解决网络问题 今天先尝试在腾讯云服务器上实现内网穿透
准备编译安装
#install.sh
#!/bin/bash
apt install build-essential golang mercurial git
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000
git clone https://github.com/inconshreveable/ngrok.git
cd ngrok/
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.test.com" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=ngrok.test.com" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
#编译ngrokd(服务器端)
make release-server
#编译Linux客户端
#[ngrok/]#目录下执行下列语句
make release-client
#编译windows客户端
#[ngrok/]#目录下执行下列语句
GOOS=windows GOARCH=amd64 make release-client
配置启动server
#deploy-server.sh
#!/bin/bash
#运行ngrokd
#[ngrok/]#目录下执行下列语句
cd ngrok
./bin/ngrokd -domain="test.com" -tlsKey Nginx/2_ngrok.test.com.key -tlsCrt Nginx/1_ngrok.test.com_bundle.crt -httpAddr=":9999" -httpsAddr=":4433" -tunnelAddr=":4443"
这里的nginx目录为在腾讯云申请的二级域名证书 下载解压的目录
domain为一级域名
配置启动tunnel
#deploy-server.sh
#!/bin/bash
./bin/ngrok -config=ngrok.cfg -proto=http -subdomain ngrok 8888
# 8888 为后端服务接口
#ngrok.cfg
server_addr: "ngrok.test.com:4443"
trust_host_root_certs: false
配置云服务器安全组
0.0.0.0/0 TCP:9999 允许 2021-09-09 14:26:37 插入 #client
0.0.0.0/0 TCP:4433 允许 2021-09-09 14:07:57 插入 #client
0.0.0.0/0 TCP:4443 允许 2021-09-09 14:07:57 插入 #server
配置域名解析
主机记录 | 记录类型 | 线路类型 | 记录值 | |
*. ngrok | CNAME | 默认 | ngrok.test.com. | 此条不需要,三级域名可以配置 |
ngrok | A | 默认 | ip |
远程访问
通过 https://ngrok.test.com:4433/ 可访问 http://客户端:8888/ 的服务
更多
https证书为自签名,未测试