欢迎光临
我们一直在努力

Ubuntu+Docker+Nginx+cpolar 实现本地服务公网直达的完整教程

前言

Nginx 是一款轻量级 Web 服务器,常用于搭建本地测试环境、部署静态网站,以及作为反向代理使用。它占用系统资源少,运行稳定,配置简单,非常适合开发者日常开发、测试,以及小团队搭建临时项目演示环境。

使用 Nginx 时需注意端口冲突问题,若本地同时运行其他服务,应提前规划好 Nginx 的映射端口。此外,用于项目演示时,建议关闭不必要的服务模块,以降低服务器负载,提升访问流畅度。

然而,Nginx 默认只能在局域网内访问,这给跨地域开发协作带来诸多不便:异地同事无法实时访问本地测试页面,只能等待文件上传至公网服务器后再查看;客户远程查看项目演示时,需先压缩打包文件,传输后还可能遇到格式错乱,影响沟通效率。

将 Nginx 与 cpolar 结合,无需复杂配置即可生成公网访问地址。例如,异地同事可通过公网链接直接访问本地测试环境,实时调试代码;客户通过链接即可查看最新项目演示,无需反复传输文件,整个协作过程如同在同一局域网内,大幅降低跨地域沟通成本。

本文将介绍如何利用 Ubuntu 操作系统、Docker 容器技术及 cpolar 内网穿透工具,实现公网远程访问本地 Nginx 服务器的具体操作流程。

1. 安装 Docker

本教程操作环境为 Linux Ubuntu 系统,开始之前需先安装 Docker。在终端中执行以下命令:

添加 Docker 源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo 
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu 
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | 
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安装 Docker 包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证 Docker 安装

通过运行测试镜像来验证 Docker 引擎是否安装成功:

sudo docker run hello-world

2. 使用 Docker 拉取 Nginx 镜像

执行以下命令拉取最新版 Nginx 镜像:

sudo docker pull nginx:latest

拉取完成后,查看本地镜像列表:

sudo docker images

可以看到成功拉取了 Nginx 镜像。

3. 创建并启动 Nginx 容器

使用已拉取的镜像创建并运行 Nginx 容器:

sudo docker run --name nginx-test -p 8080:80 -d nginx

参数说明:

  • –name nginx-test:指定容器名称,可自定义。
  • -p 8080:80:将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx:设置容器在后台持续运行。

查看容器运行状态:

sudo docker ps

可以看到刚才创建的 Nginx 容器正在运行中。

4. 本地连接测试

通过浏览器访问 本机IP:8080 端口的 Nginx 服务:

可以看到本地连接 Nginx 服务测试成功。

5. 公网远程访问本地 Nginx

目前只能在本地访问 Docker 部署的 Nginx 服务。若身处异地,想要远程访问本地 Nginx 容器,但无公网 IP,可使用 cpolar 内网穿透工具实现。

5.1 内网穿透工具安装

cpolar 官网地址:https://www.cpolar.com

使用一键脚本安装:

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

向系统添加服务:

sudo systemctl enable cpolar

启动 cpolar 服务:

sudo systemctl start cpolar

安装成功后,在浏览器访问 Linux 的 9200 端口(即 http://服务器局域网IP:9200),使用 cpolar 账号登录,即可看到 cpolar Web 配置界面,后续在 Web 管理界面进行配置。

5.2 创建远程连接公网地址

登录 cpolar Web UI 管理界面后,点击左侧仪表盘的“隧道管理”——“创建隧道”:

  • 隧道名称:自定义,注意不要与已有隧道名称重复,本例使用 mynginx。
  • 协议:http
  • 本地地址:8080
  • 域名类型:随机域名
  • 地区:选择 China Top

点击“创建”。

创建成功后,打开左侧“在线隧道列表”,可以看到生成的公网地址。接下来,在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

如下图所示,成功实现在公网环境访问本地 Nginx 服务。

小结

为方便演示,上述操作使用了 cpolar 生成的 HTTP 公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可立即使用;缺点是网址随机生成,且 24 小时内会发生变化,更适合临时使用。

若有长期远程访问本地 Nginx 服务的需求,且不想每天重新配置公网地址,推荐使用固定的二级子域名方式。

5.3 使用固定公网地址远程访问

登录 cpolar 官网,点击左侧“预留”,选择“保留二级子域名”,地区选择 China VIP,设置一个二级子域名名称,点击“保留”。保留成功后,复制保留的二级子域名名称。

返回 cpolar Web UI 管理界面,点击左侧“隧道管理”——“隧道列表”,找到需要配置的隧道 mynginx,点击右侧“编辑”:

修改隧道信息,将保留成功的二级子域名配置到隧道中:

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名,如 nginx123
  • 地区:选择 China VIP

点击“更新”(注意,点击一次即可,无需重复提交)。

更新完成后,打开“在线隧道列表”,可以看到公网地址已发生变化,地址名称变为固定的二级子域名。

最后,使用任意一个固定公网地址在浏览器访问,可以看到访问成功。这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地 Nginx 服务。

内网穿透工具 cpolar 使用方法

cpolar 官网地址:https://www.cpolar.com

下载后安装,配置环境变量为安装目录即可。随后输入以下命令查看版本号,有正常显示版本号即为安装成功:

cpolar version

然后进行 token 认证配置。登录 cpolar 官网后台,点击左侧“验证”,查看自己的认证 token,将 token 粘贴到命令行中:

cpolar authtoken xxxxxxx

认证完成后即可开始使用,输入以下指令:

cpolar 8080 http

如上图所示,通过提示的域名即可访问本地内容。

以上就是 Ubuntu+Docker+Nginx+cpolar 实现本地服务公网直达的完整教程,希望对您有所帮助。

赞(0) 打赏
未经允许不得转载:云服务器推荐 » Ubuntu+Docker+Nginx+cpolar 实现本地服务公网直达的完整教程

评论 抢沙发

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册