如何搭建ngrok服务器?
- 行业动态
- 2024-11-01
- 1
ngrok 是一个用于内网穿透的工具,可以通过简单的命令快速搭建本地服务器并暴露到公网上。
搭建Ngrok服务器
Ngrok是一个强大的内网穿透工具,它可以帮助我们将本地服务器暴露到公网上,从而实现远程访问,本文将详细介绍如何在云服务器上搭建自己的Ngrok服务器,实现内网穿透功能。
必要条件
1、服务器:需要一台拥有公网IP的服务器(如VPS),并且可以正常访问,本文测试使用的是Ubuntu 16.04 64位系统。
2、域名:用于生成访问域名。
3、Git和Golang:用于编译Ngrok源码。
安装必要的软件
我们需要在服务器上安装Git和Golang,因为Ngrok是基于Go语言编写的,执行以下命令进行安装:
apt-get install build-essential golang mercurial git
下载Ngrok源码
使用Git克隆Ngrok的源码,为了方便,这里使用了一个非官方地址,修复了部分包无法获取的问题:
git clone https://github.com/tutumcloud/ngrok.git ngrok
生成自签名证书
Ngrok服务端需要SSL证书来保证通信的安全性,我们可以使用openssl生成自签名证书:
cd ngrok NGROK_DOMAIN="weixin.yangjiace.xyz" 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 -out server.crt -days 10000 cp base.pem assets/client/tls/ngrokroot.crt
编译Ngrok
使用make命令编译Ngrok的服务端和客户端:
make release-server release-client
编译成功后,会在bin目录下找到ngrokd和ngrok两个文件,其中ngrokd是服务端程序。
启动服务端
使用以下命令启动Ngrok服务端:
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="weixin.yangjiace.xyz" -httpAddr=":80" -httpsAddr=":443"
httpAddr和httpsAddr分别是Ngrok用来转发HTTP和HTTPS服务的端口,可以根据需要指定。ngrokd还会开一个4443端口用来跟客户端通讯。
编译客户端
根据不同的操作系统,编译对应的客户端,以下是Windows和Mac系统的编译命令:
Windows GOOS=windows GOARCH=amd64 make release-client Mac GOOS=darwin GOARCH=amd64 make release-client
编译完成后,可以在bin目录下找到对应系统的客户端文件。
设置本地客户端
在同级目录下新建一个配置文件ngrok.cfg如下:
server_addr: "weixin.yangjiace.xyz:4443" trust_host_root_certs: false
然后新建一个启动脚本startup.bat(Windows)或startup.sh(Linux/Mac):
@echo on cd %cd% ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080
运行启动脚本即可启动客户端。
设置为系统程序并后台运行
为了让Ngrok在后台运行,我们可以创建一个systemd服务,在/etc/systemd/system/目录下创建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
保存后,通过以下命令启动服务:
systemctl start ngrok.service
至此,我们已经成功搭建了自己的Ngrok服务器,并实现了内网穿透功能,希望本文对你有所帮助!
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/39404.html