当前位置: 首页 > news >正文

云原生环境里的显示变革:Docker虚拟浏览器与cpolar穿透技术实战

文章目录

    • 前言
    • 【视频教程】
    • 1. 关于neko
    • 2. 本地部署neko
    • 3. neko简单使用
    • 4. 安装内网穿透
    • 5. 配置neko公网地址
    • 6. 配置固定公网地址

前言

现代远程协作本该是无缝衔接的过程,却被这些障碍不断打断:多设备屏幕同步存在延迟、跨平台访问需要复杂配置、公网IP申请成本过高。更令人困扰的是:传统方案往往牺牲了操作流畅性。

这正是显示共享的典型困境:工具分散导致效率衰减、网络限制引发连接中断、安全风险阻碍数据流转。直到出现了一种创新方案——通过Docker部署Neko浏览器与cpolar内网穿透技术,就能在标准化容器环境下实现全场景覆盖。

这种组合方案特别适合搭建私有化远程办公环境、多终端协同开发等场景:Neko提供轻量级虚拟显示层,而cpolar则为"内网穿透"需求打通"跨域访问隧道"——就像给显示系统装上了"云端传输协议转换器"和"网络加速引擎"的双重升级。

本文主要介绍如何在本地Linux系统使用Docker部署Neko虚拟浏览器,并结合cpolar内网穿透工具轻松实现与好友异地共享浏览器页面,一起在线观看视频或是协同办公,无需公网IP也不用域名与云服务器。

image-20241122171622108

【视频教程】

1. 关于neko

Neko是一个基于Docker的虚拟浏览器,它使用WebRTC技术提供服务,可以让我们在安全隔离的环境中访问互联网、浏览网页、运行应用程序。支持多用户同时在线协作,适合团队共享、互动演示等场景。

更多功能特点如下:

多用户体验:支持多人同时在线,无论是家人还是同事,都可以在同一平台上共享和协作。

丰富应用支持:除了浏览器,还可以运行如VLC等多种Linux应用,满足娱乐和工作的需求。

社交和互动:提供实时交流和协作功能,创造了一种新型的线上社交体验。

隐私和安全:所有操作都在安全的容器内完成,保护你的数据和隐私。

个性化定制:用户可以根据个人需要定制Neko,适用于个人娱乐、团队协作或教育培训等多种场景。

2. 本地部署neko

本例使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:《Docker安装教程——Linux、Windows、MacOS》

首先创建一个名为neko的文件夹,进入后,创建docker-compose文件:

mkdir neko
cd neko
sudo nano docker-compose.yaml

在编辑器中输入下方代码,保存退出:

version: "3.4"
services:neko:image: "m1k1o/neko:firefox"restart: "unless-stopped"shm_size: "2gb"ports:- "8080:8080"- "52000-52100:52000-52100/udp"environment:NEKO_SCREEN: 1920x1080@30NEKO_PASSWORD: nekoNEKO_PASSWORD_ADMIN: adminNEKO_EPR: 52000-52100NEKO_NAT1TO1: 你的IP

然后执行下方命令运行:

sudo docker compose up -d

image-20241122161833225

容器启动后,您可以通过打开Web浏览器输入localhost:8080,就可以访问到neko的页面了。

1732263570488

3. neko简单使用

管理员可以在登录框中输入登录账号:admin 密码:admin进行登录,普通用户则随便起用户名,使用密码:neko登录即可。

image-20241122171906545

点击浏览器左下角的语言标志可以选择浏览器语言,点击右上角锁头标志旁边的设置按钮可以进行系统相关设置。

image-20241122172148297

点击浏览器下方中间的键盘按钮可以对浏览器进行控制权的转移,只能由单人进行控制,无法多人同时操作浏览器。

1732267688951

点击设置按钮,也可以看到聊天窗口,在这里右键其他用户头像,也可以进行控制权转移与踢出拉黑等操作。

image-20241122173212679

4. 安装内网穿透

Neko是一个功能强大的虚拟浏览器解决方案,虽然界面简单,但它不仅可以帮助我们解决多账号管理、网络安全与隐私保护、兼容性测试等问题,还能让团队协作更加高效和有趣。

不过我们目前只能在本地局域网内使用手机电脑等设备访问刚刚使用docker部署的neko浏览器,如果想让异地好友远程访问你在家中部署的Neko一起在网页中看视频,应该怎么办呢?很简单,只要安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,接下来介绍一下如何安装cpolar内网穿透。

下面是安装cpolar步骤:

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

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示running即为正常启动)

sudo systemctl status cpolar

img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

5. 配置neko公网地址

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

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

image-20241122174444949

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

image-20241122175959597

如下图所示,成功实现使用公网地址异地远程访问本地部署的Neko浏览器。

image-20241122174618661

使用账号登录即可正常使用了:

image-20241122175241581

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用Neko浏览器与好友远程网页看视频聊天,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

6. 配置固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

点击左侧的预留,选择保留二级子域名,地区选择China VIP,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241122175632145

保留成功后复制保留的二级子域名地址:myneko

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道NEKO,点击右侧的编辑

image-20241122175743439

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

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

点击更新

image-20241122175827201

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

image-20241122175915997

最后,我们使用固定的公网地址访问Neko浏览器可以看到访问成功,现在一个永久不会变化的网址就设置好了。

image-20241122180155176

登录后同样可以正常使用:

image-20241122180241618

接下来就可以随时随地进行公网访问Neko浏览器了,把公网地址分享给身边的人,还可以方便团队协作。以上就是如何在Linux Ubuntu系统Docker本地安装Neko浏览器并实现异地远程访问的全部过程,感谢观看!

总结:在分布式办公时代,容器化工具与穿透技术正在重构协同模式。通过构建自主可控的画面同步体系,则让从多端互联到安全访问的全流程实现全场景覆盖——这不是简单的技术拼接,而是为开发者开辟了真正的效率跃迁通道。

本篇文章知识点来源[cpolar官网][https://www.cpolar.com]

http://www.dtcms.com/a/306676.html

相关文章:

  • 赵义弘-----补题报告
  • 【python】Python爬虫入门教程:使用requests库
  • 【git】在 GitLab 上如何把 A 分支(如 feature/xxx)合并到 B 分支(如 trunk)
  • Scala实现常用排序算法
  • 深入理解 Kotlin Flow:异步数据流处理的艺术
  • MidJourney精选图集与提示词生成器:AI创意灵感与高效提示词工具
  • composer 常用命令
  • 高防CDN与高防IP的选择
  • docker可视化管理工具lazydocker
  • 【百卷编程】Go语言大厂高级面试题集
  • 3GPP TS 38.331 V18.6.0 (2025-06)中文版
  • 工业5G路由器赋能高速公路实时监控
  • 【问题未解决-寻求帮助】VS Code 中使用 Conda 环境,运行 Python 后 PowerShell 终端输出内容立即消失
  • 《Java 程序设计》第 12 章 - 异常处理
  • T113-i Linux系统完整构建指南:从SDK开箱到内核镜像量产烧录全流程
  • 2025年湖北中级注册安全工程师报考那些事
  • docker 用于将镜像打包为 tar 文件
  • 【MySQL学习|黑马笔记|Day3】多表查询(多表关系、内连接、外连接、自连接、联合查询、子查询),事务(简介、操作、四大体系、并发事务问题、事务隔离级别)
  • 【公有云部署模型】yolo模型公有云部署
  • 用聊天方式聊聊msvcr100.dll丢失的解决方法有哪些?msvcr100.dll是什么
  • 7.pcl滤波(一)
  • Python在Web开发领域的崛起与生态探索:从脚本语言到全栈利器
  • Unity Standard Shader 解析(四)之ForwardAdd(简化版)
  • 机器视觉halcon7-缺陷检测
  • SpringCloud -- MQ高级
  • 关于获取某目录及子目录下所有文件且不包含隐藏文件
  • dify + mcp 实现图片 ocr 识别
  • Apache RocketMQ 的核心概念(Core Concepts)
  • 解决 Node.js 托管 React 静态资源的跨域问题
  • SpringBoot之整合SSM步骤