📅  最后修改于: 2023-12-03 15:12:28.311000             🧑  作者: Mango
ngrok是一款强大的内网穿透工具,可以方便地将本地服务映射到公网上。通过ngrok,可以让外部用户访问本地的Web服务,而不需要暴露公网IP地址。
ngrok使用内置的隧道协议来实现内网穿透,通过客户端和服务端之间的数据传输,将本地服务映射到公网上。默认情况下,ngrok使用随机生成的子域名作为主机头,例如:http://randomstring.ngrok.io,但是有时候我们需要修改主机头,以便在本地调试时保持和生产环境一致。
本文将介绍如何通过重写主机头来定制ngrok的子域名。
下载和安装ngrok客户端
首先,我们需要下载ngrok客户端,可以从ngrok的官方网站或在GitHub上下载。
然后解压缩并将其添加到系统的环境变量中。
# 下载ngrok客户端
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
# 解压缩ngrok
unzip ngrok-stable-linux-amd64.zip
# 将ngrok添加到环境变量
export PATH=$PATH:/path/to/ngrok
生成ngrok配置文件
为了重写主机头,我们需要创建一个ngrok配置文件。打开终端,输入以下命令:
ngrok config > ~/.ngrok2/ngrok.yml
这将在用户的主目录下创建一个ngrok配置文件。
修改配置文件
打开ngrok配置文件,并添加以下配置:
# 自定义子域名
server_addr: "subdomain.example.com:4443"
这里我们将ngrok的子域名设置为subdomain.example.com
,并使用默认端口4443。
对于其他的配置项,可以根据需要进行修改,比如端口号、认证信息等。
启动ngrok客户端
打开一个终端,输入以下命令启动ngrok客户端:
ngrok http -config ~/.ngrok2/ngrok.yml 80
这里我们使用ngrok http
命令将本地服务映射到公网,并将ngrok的配置文件作为参数传递给命令。
-config
参数指定配置文件路径,80
指定映射的本地服务端口号。
启动ngrok客户端后,我们可以在终端中看到ngrok的子域名和公网地址。此时,可以通过该子域名访问本地服务,验证主机头是否已被重写。
![ngrok](ngrok.png)
通过重写ngrok的主机头,可以提高调试效率,同时也可以保持生产环境和本地开发环境一致。本文介绍了如何通过ngrok配置文件来定制ngrok的子域名,使其更加灵活和易用。