搭建自己的内网穿透,搭建ngrok服务器
source link: https://studygolang.com/articles/32373
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
搭建自己的内网穿透,搭建ngrok服务器
陈德良EGG · 1天之前 · 144 次点击 · 预计阅读时间 2 分钟 · 不到1分钟之前 开始浏览有时向客户展示系统不太方便就打算弄个内网穿透
1、必要条件
(1)服务器,用来搭建ngrok的服务器,必须有公网ip,并且可以正常访问(本次测试使用的是Ubuntu 18.04 64位)。
(2)域名,用来生成访问域名。
2、安装git 和Golang
su root
# 输入你的密码
apt-get install build-essentialgolang mercurial git
#没有安装 apt-get 请先安装
Golang,Go语言支持,因为Ngrok是基于Go语言编写的
3、下载源码,当然也可以不安装git,但是需要手动上传代码到需要的位置。
此处使用非官方地址,修复了部分包无法获取(摘自网络)
git clone https://github.com/tutumcloud/ngrok.git ngrok
4、生成自签名证书
我们需要生成自己的自签名证书,并编译一个携带该证书的ngrok客户端。
证书生成过程需要一个NGROK_BASE_DOMAIN。 以ngrok官方随机生成的地址xxx.ngrok.com为例,其NGROK_BASE_DOMAIN就是“ngrok.com”,如果你要提供服务的地址为“example.ngrok.xxx.com”,那NGROK_BASE_DOMAIN就应该 是“ngrok.xxx.com”。
cd ngrok
NGROK_DOMAIN="test.com"
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
6、启动服务端
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="test.com" -httpAddr=":80" -httpsAddr=":443"
httpAddr、httpsAddr 分别是 ngrok 用来转发 http、https 服务的端口,可以随意指定。ngrokd 还会开一个 4443 端口用来跟客户端通讯(可通过 -tunnelAddr=”:xxx” 指定)。由于微信限制不能出现端口号,因此这个使用了80、443端口。
7、编译客户端
(1) windows
GOOS=windows GOARCH=amd64 make release-client
(2) mac
GOOS=darwin GOARCH=amd64 make release-client
执行对应的命令会在bin目录下生成相对应的windows、mac目录,ngrok.exe就存放在对应目录下。将对应的ngrok.exe下载到本地。
8、设置本地客户端
(1).在与下载的客户端同级目录下新建一个配置文件ngrok.cfg
server_addr: "test.com:4443"
tunnels:
proto:
http: pan.192.168.31.169.xip.io:80 转发到服务器域名
trust_host_root_certs: false
(2).同级目录下新建一个启动脚本startup.bat
@echo on
cd %cd%
ngrok -config=ngrok.cfg start www
其中,-config指向配置文件,-log存放日志文件位置,-subdomain为自定义的域名前缀。8080为端口号。
(3).启动,双击启动脚本startup.bat完成启动。
启动后的效果是 访问www.test.com 则转发至 客户端电脑的127.0.0.1:8080端口
具体未提细节可以免费友情咨询:359947329
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK