📜  重写主机头 ngrok (1)

📅  最后修改于: 2023-12-03 15:12:28.311000             🧑  作者: Mango

重写主机头 ngrok

简介

ngrok是一款强大的内网穿透工具,可以方便地将本地服务映射到公网上。通过ngrok,可以让外部用户访问本地的Web服务,而不需要暴露公网IP地址。

ngrok使用内置的隧道协议来实现内网穿透,通过客户端和服务端之间的数据传输,将本地服务映射到公网上。默认情况下,ngrok使用随机生成的子域名作为主机头,例如:http://randomstring.ngrok.io,但是有时候我们需要修改主机头,以便在本地调试时保持和生产环境一致。

本文将介绍如何通过重写主机头来定制ngrok的子域名。

实现步骤
  1. 下载和安装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
    
  2. 生成ngrok配置文件

    为了重写主机头,我们需要创建一个ngrok配置文件。打开终端,输入以下命令:

    ngrok config > ~/.ngrok2/ngrok.yml
    

    这将在用户的主目录下创建一个ngrok配置文件。

  3. 修改配置文件

    打开ngrok配置文件,并添加以下配置:

    # 自定义子域名
    server_addr: "subdomain.example.com:4443"
    

    这里我们将ngrok的子域名设置为subdomain.example.com,并使用默认端口4443。

    对于其他的配置项,可以根据需要进行修改,比如端口号、认证信息等。

  4. 启动ngrok客户端

    打开一个终端,输入以下命令启动ngrok客户端:

    ngrok http -config ~/.ngrok2/ngrok.yml 80
    

    这里我们使用ngrok http命令将本地服务映射到公网,并将ngrok的配置文件作为参数传递给命令。

    -config参数指定配置文件路径,80指定映射的本地服务端口号。

测试

启动ngrok客户端后,我们可以在终端中看到ngrok的子域名和公网地址。此时,可以通过该子域名访问本地服务,验证主机头是否已被重写。

![ngrok](ngrok.png)
结论

通过重写ngrok的主机头,可以提高调试效率,同时也可以保持生产环境和本地开发环境一致。本文介绍了如何通过ngrok配置文件来定制ngrok的子域名,使其更加灵活和易用。