跨地域传文件太麻烦?Nginx+cpolar 让本地服务直接公网访问

跨地域传文件太麻烦?Nginx+cpolar 让本地服务直接公网访问
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


文章目录

前言

Nginx 是一款轻量级 Web 服务器,能搭建本地测试环境、部署静态网站,还能做反向代理,适合开发者日常开发、测试,以及小团队搭建临时项目演示环境。它占用系统资源少,运行稳定,配置步骤也相对简单,新手也能快速上手。

使用 Nginx 时,要注意避免端口冲突,比如本地同时运行其他服务时,提前规划好 Nginx 的映射端口;另外,若用于项目演示,建议关闭不必要的服务模块,减少服务器负载,让访问更流畅。

但 Nginx 默认只能在局域网内访问,给跨地域开发协作添了不少麻烦:异地同事没办法实时访问本地搭建的测试页面,只能等文件上传到公网服务器后再查看;客户想远程看项目进度演示,还得先压缩打包项目文件,传过去后又可能出现格式错乱,影响沟通效率。

而 Nginx 结合 cpolar 后,不用复杂配置就能生成公网访问地址。比如异地同事直接用公网链接访问你本地的测试环境,实时调试代码;客户通过链接就能查看最新的项目演示,不用反复传文件,整个协作过程像在同一局域网内一样便捷,大大减少跨地域沟通的成本。

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

image-20240202164626158

1. 安装Docker

本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker。

在终端中执行下方命令:

添加Docker源

# Add Docker's official GPG key:sudoapt-get update sudoapt-getinstall ca-certificates curl gnupg sudoinstall -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudochmod 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"|\sudotee /etc/apt/sources.list.d/docker.list > /dev/null sudoapt-get update 

安装Dokcer包

sudoapt-getinstall docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

通过运行映像来验证 Docker 引擎安装是否成功

sudo docker run hello-world 

2. 使用Docker拉取Nginx镜像

sudo docker pull nginx:latest 
1706861759156

然后执行查看镜像命令:

sudo docker images 
image-20240202161709942

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

3. 创建并启动Nginx容器

成功拉取Nginx镜像后,我们可以使用该镜像创建并运行一个Nginx容器。

在终端执行以下命令:

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

参数说明:

  • –name mynginx:本例容器名称为mynginx,大家可以自己起名。
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行。
image-20240202161952894

然后执行下方命令查看容器是否正在运行:

sudo docker ps
image-20240202162120249

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

4. 本地连接测试

现在我们可以通过浏览器直接访问 本机ip:8080 端口的 nginx 服务:

1706862228220

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

5. 公网远程访问本地Nginx

不过我们目前只能在本地连接刚刚使用docker部署的Nginx服务,如果身在异地,想要远程访问在本地部署的Nginx容器,但又没有公网ip怎么办呢?

我们可以使用cpolar内网穿透工具来实现无公网ip环境下的远程访问需求。

5.1 内网穿透工具安装

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com
  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh |sudobash
  • 向系统添加服务
sudo systemctl enable cpolar 
  • 启动cpolar服务
sudo systemctl start cpolar 

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

image-20230831171159175

5.2 创建远程连接公网地址

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

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

点击创建

image-20240202162838726

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

image-20240202163018023

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

image-20240202163147725

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问本地Nginx服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的二级子域名方式来远程访问。

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

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

1706863043876
image-20240202163759458

保留成功后复制保留成功的二级子域名的名称:nginx123,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道mynginx,点击右侧的编辑:

image-20240202163857832

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

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

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240202164034253

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:

image-20240202164246046

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

image-20240202164418798

以上就是如何在Ubuntu系统使用Docker部署Nginx服务,并结合cpolar内网穿透工具实现公网远程访问内网本地服务的全部流程,感谢您的观看。

当本地服务能轻松实现公网访问,跨地域开发协作不再受物理距离限制,让团队配合更高效、更顺畅。

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Read more

Copilot代理与网络配置全攻略(突破访问限制的终极方法)

第一章:Copilot代理与网络配置全攻略(突破访问限制的终极方法) 在使用 GitHub Copilot 的过程中,开发者常因网络策略或区域限制无法正常激活服务。通过合理配置代理与网络环境,可有效绕过此类问题,确保代码补全功能稳定运行。 配置本地代理服务器 为确保 Copilot 能够连接至远程 API,建议在本地部署 HTTP 代理服务。以下是一个基于 Node.js 的简易代理示例: // proxy-server.js const http = require('http'); const net = require('net'); // 创建 HTTP 代理服务器 const server = http.createServer((req, res) => { // 允许跨域请求 res.setHeader(

By Ne0inhk

飞牛NAS安装部署Gitea

一、安装 我的机器是飞牛的六盘位的固态nas,在正常配置好了环境之后,进入到wab界面,且登陆上自己的账号,我目前测试是支持内网,外网链接推送测试还有一点异常,应该是从飞牛的服务器中转的问题,在飞牛论坛也看到好多人在说这个问题,应该是共性问题,等待官方修复了再尝试外网访问把,目前内网满足使用需求。 依次打开,然后安装gitea 选择等待安装,然后选择安装位置,我这里只有一个盘所以就直接选择安装下一步了 勾选好之后,点击确定 这时候可以开始打开配置了 主要的有这三点需要修改一下第一个是数据库类型,这里选择最简单的(能连接网外了的话可以用mysql这类的大型数据库),然后是站点名称,ssh服务端口记得设置为1024以上的,因为1024以下是系统来配置 这里需要注意一下,如果不想要通知可以不设置邮箱发件人,但是需要注意设置管理员账户和密码,或者设置可以外部注册的也可以 弹出这个界面就是ok了 这个时候gitea应该是已经启动了,我们先检查一下是否启动和端口是否被监听,需要使用飞牛的终端,没有使用过的,需要在应用中心寻找。 # 检查Gitea是否在运行 ps aux | g

By Ne0inhk

Gitee从入门到上手:注册+Git/小乌龟安装+代码提交全流程

Gitee(码云)是国内使用的代码托管平台,使用它可以轻松实现版本管理和代码备份。这篇教程从0开始,覆盖注册、工具安装、仓库操作到代码提交的全流程,新手跟着做就能上手,附小乌龟(TortoiseGit)可视化操作,不用死记命令行~ 文章目录 * 一、Gitee账号注册(网页端) * 1. 访问官网 * 2. 完成注册 * 二、必备工具安装(Git+小乌龟) * 1. Git安装 * 2. 小乌龟(TortoiseGit)安装 * 3. Git全局配置(关键!) * 三、创建Gitee远程仓库 * 1. 新建仓库 * 2. 获取仓库地址 * 四、将远程仓库克隆到本地 * 方法1:命令行克隆(Git Bash) * 方法2:小乌龟可视化克隆(新手首选) * 五、

By Ne0inhk
【Linux学习笔记】git三板斧

【Linux学习笔记】git三板斧

🌟个人主页:努力学习的小汤   🌈专栏系列:linux 目录 ❄️前言: ☀️版本控制器git ☀️git简史 ☀️git三板斧 ⭐gitee创建仓库并克隆到本地 ⭐1. git add ⭐2. git commit ⭐3. git push ⭐4. 首次使用git ☀️git其他操作 ⭐git status ⭐git log ⭐git pull ☀️本章小结: 🌻共勉: ❄️前言:  上一篇博客我们学习了make和makefile自动化构建工具,今天我们来学习一下git的三板斧。 ☀️版本控制器git 为了我们方便管理不同版本的文件,就有了版本控制器; 所谓的版本控制器,就是能够了解到一个文件的历史记录(修改记录);简单来说就是记录每一次的改动和版本迭代的一个管理系统,同时也方了多人进行协作。 当前应用最广泛的版本控制器就是git,git可以控制电脑上所有格式的文件。 之前我们在windows下使用git来管理自己的本地文件,并上传至gitee; ☀️git简史 同生活中的许多伟大事物一样,Git 诞生于一个极

By Ne0inhk