云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

如何搭建 ngrok 服务器?

搭建ngrok服务器需要服务器、域名、安装git和Golang,下载源码生成自签名证书,编译并启动服务端和客户端,配置本地客户端连接服务端。

ngrok服务器搭建

ngrok 是一个反向代理工具,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道,它常用于内网穿透,使得本地服务器可以被公网访问,本文将介绍如何从零开始搭建一个 ngrok 服务器,包含详细步骤、注意事项以及常见问题解答。

一、必要条件

1、服务器:需要一台拥有公网IP的服务器,可以是云服务器或物理服务器,本次测试使用的是Ubuntu 16.04 64位系统。

2、域名:需要一个二级域名,用于生成访问链接。“weixin.yangjiace.xyz”。

3、基础环境:确保服务器已安装git、Golang等必要软件。

二、安装基础环境

需要在服务器上安装git和Golang,命令如下:

apt-get install build-essential golang mercurial git

三、下载源码并编译

使用非官方地址下载源码,修复部分包无法获取的问题:

git clone https://github.com/tutumcloud/ngrok.git ngrok
cd ngrok

四、生成自签名证书

由于不购买SSL证书,我们需要生成自签名证书并编译到客户端中:

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 -days 10000 -out server.crt
cp base.pem assets/client/tls/ngrokroot.crt

五、编译服务端和客户端

执行以下命令进行编译:

make release-server release-client

编译成功后,会在bin目录下生成ngrokdngrok两个文件,分别对应服务端和客户端程序。

六、启动服务端

启动ngrok服务端,指定证书和域名:

./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="weixin.yangjiace.xyz" -httpAddr=":80" -httpsAddr=":443"

七、编译客户端

根据操作系统不同,编译相应平台的客户端:

Windows平台
GOOS=windows GOARCH=amd64 make release-client
Mac平台
GOOS=darwin GOARCH=amd64 make release-client

编译完成后,将客户端下载到本地。

八、设置本地客户端

在同级目录下新建配置文件ngrok.cfg

server_addr: "weixin.yangjiace.xyz:4443"
trust_host_root_certs: false

新建启动脚本startup.bat

@echo on
cd %cd%
ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=yjc 8080

双击启动脚本完成启动。

九、后台运行服务端

为了使ngrok服务端在后台运行,可以创建systemd服务:

[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

保存为ngrok.service,然后执行以下命令启动服务:

systemctl start ngrok.service

1. 什么是ngrok?

ngrok 是一个反向代理工具,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道,使本地服务器可以被公网访问,它常用于内网穿透。

2. 如何搭建ngrok服务器?

搭建ngrok服务器的步骤包括:安装基础环境、下载源码并编译、生成自签名证书、编译服务端和客户端、启动服务端、编译客户端、设置本地客户端、后台运行服务端,具体步骤详见上述内容。

3. 遇到的问题及解决方法?

Q1: 编译时提示找不到某些依赖包怎么办?

A1: 确保Git版本大于1.7.9.5以上,Golang版本大于1.4,可以尝试多次编译或者手动下载缺失的依赖包。

Q2: 如何配置防火墙以确保服务正常运行?

A2: 确保服务器防火墙开放80端口(HTTP)和443端口(HTTPS),以及客户端连接使用的4443端口,可以使用以下命令开放端口:

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 4443/tcp
打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何搭建 ngrok 服务器?》
文章链接:https://www.yunzhuji.net/internet/258880.html

评论

  • 验证码