前言
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-world2. 使用 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 实现本地服务公网直达的完整教程,希望对您有所帮助。
