引言

ngrok是一款强大的内网穿透工具,它可以帮助开发者将本地服务映射到公网,从而实现远程访问。在CentOS系统中部署ngrok,可以使内网服务轻松暴露在外网,方便团队协作和远程调试。本文将详细介绍如何在CentOS上部署ngrok,并体验其内网穿透功能。

环境准备

在开始部署之前,请确保您的CentOS系统满足以下条件:

  • CentOS 7 或更高版本
  • 系统已安装Git(用于下载ngrok)
  • 系统已安装Docker(用于运行ngrok容器)

安装Docker

由于ngrok是基于Docker容器运行的,因此首先需要安装Docker。以下是在CentOS上安装Docker的步骤:

# 安装Docker的依赖库
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加Docker的仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 启动Docker服务
sudo systemctl start docker

# 设置Docker服务开机自启
sudo systemctl enable docker

下载ngrok

接下来,我们将使用Git从ngrok的官方仓库下载ngrok。首先,确保您的系统已安装Git:

# 安装Git
sudo yum install -y git

然后,使用以下命令下载ngrok:

# 下载ngrok
sudo git clone https://github.com/ngrok/io.git /opt/ngrok

# 进入ngrok目录
cd /opt/ngrok

运行ngrok

现在,我们已经下载了ngrok,接下来将使用Docker容器来运行它。以下命令将在Docker容器中启动ngrok:

# 运行ngrok
sudo docker run -d -p 8080:80 -p 443:443 --name ngrok ngrok/ngrok

上述命令中,-d参数表示以守护进程模式运行ngrok,-p 8080:80-p 443:443参数分别将容器的80和443端口映射到宿主机的8080和443端口,--name ngrok参数为容器指定名称。

配置ngrok

在运行ngrok之后,您需要在浏览器中访问以下URL来获取ngrok的授权token:

http://localhost:8080/tunnels

点击“Sign Up”按钮,然后填写您的电子邮件地址,您将收到一个token。复制这个token,并将其粘贴到ngrok容器的配置文件中:

# 编辑ngrok配置文件
sudo nano /opt/ngrok/io/ngrok.yml

# 将以下内容添加到文件中
server: "ngrok.com"
authtoken: "您的token"

保存并关闭文件。

测试内网穿透

现在,您已经配置好了ngrok,接下来测试内网穿透功能。以下是在本地启动一个简单的HTTP服务,并使用ngrok将其映射到公网的步骤:

# 在本地启动HTTP服务
python -m http.server

# 在浏览器中访问以下URL
http://<您的公网IP>:8080

您应该能够看到ngrok提供的Web界面,这表明内网穿透成功。

总结

本文详细介绍了如何在CentOS上部署ngrok,并体验其内网穿透功能。通过本文的步骤,您可以在CentOS系统中轻松实现内网服务的公网访问,方便团队协作和远程调试。