Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

news2025/7/27 18:08:28

前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网穿透服务实现安全远程访问。

传统部署方式往往存在显著局限性:要么依赖昂贵的公网IP资源,要么需要维护云服务器实例。而本文提出的解决方案将突破这些桎梏,仅需执行数条命令即可完成部署。通过Docker容器的快速部署特性和cpolar的隧道技术,开发者可轻松构建跨地域协作环境,实现低延迟的实时互动体验。这种技术组合不仅降低了基础设施成本,更显著提升了远程协作的效率和稳定性。

目录

1. 什么是Neko?

 2. 本地部署neko

 3. neko简单使用

4. 安装内网穿透

5. 配置neko公网地址

6. 配置固定公网地址


1. 什么是Neko?

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

【视频教程】

Neko:一个神奇的浏览器!

### 主要功能亮点

**多用户体验**:无论你是和家人还是同事一起,都可以在同一平台上共享和协作,多人同时在线不再是梦。

**丰富应用支持**:除了浏览器,Neko还能运行如VLC等多种Linux应用,无论是娱乐还是工作都能满足你的需求。

**社交和互动**:提供实时交流和协作功能,让你的线上体验更加丰富多彩。

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

**个性化定制**:你可以根据自己的需要自由定制Neko,无论是个人娱乐、团队协作还是教育培训,都能得心应手。

 2. 本地部署neko

本例使用Docker进行部署,如果没有安装Docker,可以查看这篇教程进行安装:[《Docker安装教程——Linux、Windows、MacOS》](https://www.cpolar.com/blog/docker-installation-linux-windows-macos)

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

```shell

mkdir neko

cd neko

sudo nano docker-compose.yaml

```

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

```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@30

      NEKO_PASSWORD: neko

      NEKO_PASSWORD_ADMIN: admin

      NEKO_EPR: 52000-52100

      NEKO_NAT1TO1: 你的IP

```

然后执行下方命令运行:

```shell

sudo docker compose up -d

```

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

 3. neko简单使用

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

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

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

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

4. 安装内网穿透

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

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

下面是安装cpolar步骤:

> Cpolar官网地址: [https://www.cpolar.com](https://www.cpolar.com/)

使用一键脚本安装命令

```shell

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

```

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

```shell

sudo systemctl status cpolar

```

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

5. 配置neko公网地址

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

- 隧道名称:可自定义,本例使用了: neko 注意不要与已有的隧道名称重复

- 协议:http

- 本地地址:8080

- 域名类型:随机域名

- 地区:选择China Top

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

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

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

**小结**

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

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

6. 配置固定公网地址

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

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

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

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

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

- 域名类型:选择二级子域名

- Sub Domain:填写保留成功的二级子域名

- 地区: China VIP

点击`更新`

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

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

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

现在,你的好友只需访问cpolar提供的公网地址,就能与你一起在线观看视频或协同办公啦!

**小贴士**

- **安全第一**:虽然Neko提供了安全的容器环境,但还是建议不要在公共网络中运行敏感操作。

- **多用户管理**:你可以通过配置文件来管理和限制用户的权限,确保团队协作更加高效。

## 总结

通过本教程的实践,我们验证了容器化部署与内网穿透技术的协同效应。基于Docker的Neko虚拟浏览器实例可快速实现跨平台部署,配合cpolar的智能路由机制,成功构建了低延迟的远程协作通道。该方案已成功应用于多种场景:包括但不限于多媒体协同播放、分布式办公环境搭建以及实时演示系统部署。

本技术方案的价值体现在三个方面:首先,通过容器化技术实现了环境隔离与快速部署;其次,内网穿透方案突破了传统网络限制;最后,通过组合使用开源工具,显著降低了远程协作的基础设施成本。对于需要频繁进行跨地域协作的团队,该方法提供了可复用的技术范式。

欢迎开发者在技术社区分享实践案例,针对部署细节或功能扩展提出优化建议。持续的技术交流将推动开源生态的良性发展,助力更多创新应用的诞生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2406894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…

Python训练营-Day26-函数专题1:函数定义与参数

题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…

C++_哈希表

本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说,直接开始吧! 一、基础概念 1. 哈希核心思想: 哈希函数的作用:通过此函数建立一个Key与存储位置之间的映射关系。理想目标:实现…

若依登录用户名和密码加密

/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…

macOS 终端智能代理检测

🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…

Unity VR/MR开发-VR开发与传统3D开发的差异

视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC&#xf…

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…

算术操作符与类型转换:从基础到精通

目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…