一个开源的自托管虚拟浏览器项目,支持在安全、私密的环境中使用浏览器

ops/2024/12/23 2:43:20/

大家好,今天给大家分享一个开源的自托管虚拟浏览器项目Neko,旨在利用 WebRTC 技术在 Docker 容器中运行虚拟浏览器,为用户提供安全、私密且多功能的浏览体验。

项目介绍

Neko利用 WebRTC 技术在 Docker 容器中运行虚拟浏览器,提供安全、私密且多功能的浏览体验,支持多人同时访问,适用于多种场景,如团队协作、隐私保护、娱乐互动等。

核心功能

1.多用户协作

支持多个用户同时连接到同一个虚拟浏览器实例,实现实时的协作与交互。用户可以一起浏览网页、操作应用程序,进行诸如观看派对、交互式演示、头脑风暴等多种协作活动。

2.丰富的交互功能

  • 文本聊天:内置文本聊天功能,支持基本的 Markdown 格式,让用户在协作过程中能够方便地进行文字交流,类似于 Discord 的聊天风格。

  • 管理员功能:提供了强大的管理员功能,如踢人、封禁、强制控制权限、锁定房间等,方便对虚拟浏览器的使用环境进行管理和控制。

  • 剪贴板同步:在支持的浏览器上实现剪贴板同步,用户可以方便地在本地和虚拟浏览器之间复制粘贴文本和文件,提高工作效率。

  • 表情覆盖:允许用户发送和显示表情,增加了互动的趣味性和表达力。

  • 忽略用户:用户可以选择忽略其他用户的聊天消息和表情,以便更好地专注于自己的操作。

  • 文件传输:如果启用,支持双向文件传输。

3.安全与隐私保护

  • 数据隔离:由于采用了容器化技术,虚拟浏览器中的数据与用户本地设备的数据相互隔离,确保了用户数据的安全性。

  • 隐私浏览:连接终止后,主机浏览器无状态残留,敏感数据如 Cookie 等不会传输到用户本地设备,仅共享视频流,有效保护了用户的隐私。用户还可以结合使用 Tor Browser 和 VPN 等工具进一步增强匿名性。

4.灵活的配置与扩展

  • 持久化设置:支持持久化设置,用户可以保存自己的配置信息,下次连接时自动恢复之前的设置,方便快捷。

  • 自动登录:通过自定义 URL 参数实现自动登录,提高了使用的便利性。

  • 应用扩展:不仅可以运行常见的浏览器,还可以在虚拟环境中安装和运行其他 Linux 应用程序,如 VLC 媒体播放器等,满足了不同用户的多样化需求。

核心技术与架构

Docker 容器化技术:采用 Docker 容器来运行虚拟浏览器及相关应用程序,实现了环境的隔离与封装。这使得每个虚拟浏览器实例都能在独立的、预配置的环境中运行,确保了系统的稳定性和安全性,同时也方便了部署与管理。

WebRTC 数据传输:利用 WebRTC(Web Real-Time Communication)技术实现桌面流的高效传输。WebRTC 允许浏览器之间进行实时的音频、视频和数据传输,无需额外的插件或软件。在 n.eko 中,通过 WebRTC 将虚拟浏览器的桌面画面实时传输到用户的终端设备,为用户提供流畅的浏览体验。

应用场景

团队协作与教育教学:团队成员可以在虚拟浏览器中共同浏览和讨论项目相关的网页、文档,进行代码调试等协作工作。教师可以利用 n.eko 创建一个受控的教学环境,引导学生进行在线学习和实践操作,实时互动和解答问题,提高教学效果。

娱乐互动:用户可以举办观看派对,多人同时观看视频并通过聊天和表情进行互动,增加娱乐性和社交性。

个人隐私浏览与自动化任务:对于注重隐私的用户,n.eko 提供了一个安全的浏览环境,可用于进行一些隐私敏感的操作,如网购、浏览个人信息等。此外,用户还可以在虚拟浏览器中安装自动化测试工具,如 Playwright 或 Puppeteer,实现自动化任务的执行和监控。

安装使用

安装

环境要求

1280x720@30 分辨率下,推荐使用6 核 4GB 配置。

安装Docker环境


# 安装Docker
curl -sSL https://get.docker.com/ | CHANNEL=stable bash# 安装Docker Composesudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

安装应用

wget https://raw.githubusercontent.com/m1k1o/neko/master/docker-compose.yaml
sudo docker-compose up -d

修改docker-compose.yml内容:

version: "3.4"
services:neko:image: "m1k1o/neko:firefox"restart: "unless-stopped"shm_size: "2gb"ports:- "8081:8080"- "52000-52100:52000-52100/udp"environment:NEKO_SCREEN: 1920x1080@30NEKO_PASSWORD: nekoNEKO_PASSWORD_ADMIN: adminNEKO_EPR: 52000-52100NEKO_ICELITE: 1NEKO_NAT1TO1: <本机IP>
~

使用chrome浏览器

修改docker-compose.yml内容:

version: "3.4"
services:neko:image: "m1k1o/neko:chromium"restart: "unless-stopped"shm_size: "2gb"ports:- "8081:8080"- "52000-52100:52000-52100/udp"cap_add:- SYS_ADMINenvironment:NEKO_SCREEN: 1920x1080@30NEKO_PASSWORD: nekoNEKO_PASSWORD_ADMIN: adminNEKO_EPR: 52000-52100NEKO_ICELITE: 1NEKO_NAT1TO1: <本机IP>
~

注意需要添加这句:

cap_add:- SYS_ADMIN

否则,登录后会看不到浏览器。

服务启动后在浏览器中访问服务器 IP 地址,默认密码为neko

使用

输入昵称和密码,进入应用。

基本使用。

总结

Neko是一个功能强大的自托管虚拟浏览器,基于Docker和WebRTC技术,提供安全私密的互联网访问方式。它支持多个用户同时访问,适用于项目协作、社交活动和实时互动等多种场景。此外,Neko还具备丰富的功能特性,如文本聊天、管理员功能、剪贴板同步等,并以其独特的命名由来和猫屁股图标增添了趣味性。

项目地址

https://github.com/m1k1o/neko

一个开源的自托管虚拟浏览器项目,支持在安全、私密的环境中使用浏览器 - BTool博客 - 在线工具软件,为开发者提供方便


http://www.ppmy.cn/ops/144202.html

相关文章

设计模式——原型模式

设计模式——原型模式 目录 设计模式——原型模式介绍实现总结 介绍 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过复制现有的实例来创建新的对象&#xff0c;而不是通过 new 操作符来创建对象。原型模式的核心思想是通过“复制”…

浔川AI翻译登录失败调查报告

《浔川 AI 翻译登录失败调查报告》 一、调查背景 近期收到部分用户反馈&#xff0c;在使用浔川 AI 翻译时出现登录失败的问题&#xff0c;为了及时解决该问题并提升用户体验&#xff0c;特展开此次调查。 二、调查范围与方法 本次调查涵盖了不同操作系统、网络环境以及设备类型…

Linux驱动开发应用层 2 点亮一个LED

目录 先来聊聊sysfs sysfs的具备的优势 LED在哪里&#xff1f; 先来聊聊sysfs 我们下面首先简单聊一下sysfs。他很重要的原因是因为我们跟底下的设备打交道&#xff0c;就是可以透过我们的sysfs来操作我们底层的设备&#xff0c; sysfs是Linux内核中的一个虚拟文件系统&…

贪心算法 greedy

文章目录 参考贪心算法[Leetcode455 分发饼干](https://leetcode.cn/problems/assign-cookies/description/)分析题解 [Leetcode135 分发糖果](https://leetcode.cn/problems/assign-cookies/description/)分析题解 leetcode435无重叠区间分析题解 参考 https://github.com/ch…

QT打包【非单个exe】

项目运行点击release 找到生成的.exe文件 复制.exe文件到一个新文件夹下 找到QT cmd文件打开 到文件所在盘 命令&#xff1a;F&#xff1a; 到.exe的文件夹路径下 cd F:\...\demo 【你的exe文件所在文件夹】 输入 windeployqt name.exe&#xff0c;name是可执行文件的名称 等…

利用Python爬虫快速获取商品历史价格信息

在电商时代&#xff0c;商品价格波动频繁&#xff0c;对于消费者和市场分析师来说&#xff0c;掌握商品的历史价格信息至关重要。这不仅能够帮助消费者做出更明智的购买决策&#xff0c;还能为市场趋势分析提供数据支持。本文将介绍如何使用Python爬虫技术快速获取商品的历史价…

GitHub 与 GitLab:差异、应用场景与核心价值

GitHub 与 GitLab&#xff1a;差异、应用场景与核心价值 一、引言 在当今的软件开发与版本控制领域&#xff0c;GitHub 和 GitLab 无疑是两款极具影响力的平台。它们都基于 Git 构建&#xff0c;为开发者提供了强大的代码托管、协作与项目管理功能。然而&#xff0c;二者在诸…

golang断言

在Go语言中&#xff0c;类型断言&#xff08;Type Assertion&#xff09;是一种用于检测接口值&#xff08;interface value&#xff09;中存储的具体类型&#xff08;concrete type&#xff09;的方法。当你有一个接口类型的变量&#xff0c;但你不确定或者需要确认它实际指向…