一个开源的自托管虚拟浏览器项目,支持在安全、私密的环境中使用浏览器
大家好,今天给大家分享一个开源的自托管虚拟浏览器项目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博客 - 在线工具软件,为开发者提供方便
相关文章:

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

职场上,如何做好自我保护?
今天我们讨论一个话题:在职场上,如何保护好自己?废话不多说,我们直接上干货。 (一) 1.时刻准备一点零食或代餐,如果遇到长时间的会议,就补充点能量。代餐最好选流体,这…...

华为数通最新题库 H12-821 HCIP稳定过人中
以下是成绩单和考试人员 HCIP H12-831 HCIP H12-725 安全中级...

mac iterm2 使用 lrzsz
前言 mac os 终端不支持使用 rz sz 上传下载文件,本文提供解决方法。 mac 上安装 brew install lrzsz两个脚本 注意:/usr/local/bin/iterm2-send-zmodem.sh 中的 sz命令路径要和你mac 上 sz 命令路径一致。 /usr/local/bin/iterm2-recv-zmodem.sh 中…...
PostgreSql-学习06-libpq之同步命令处理
目录 一、环境 二、介绍 三、函数 1、PQsetdbLogin (1)作用 (2)声明 (3)参数介绍 (4)检测成功与否 2、PQfinish (1)作用 (2࿰…...

简单配置,全面保护:HZERO审计服务让安全触手可及
HZERO技术平台,凭借多年企业资源管理实施经验,深入理解企业痛点,为您提供了一套高效易用的审计解决方案。这套方案旨在帮助您轻松应对企业开发中的审计挑战,确保业务流程的合规性和透明度。 接下来,我将为大家详细介绍…...

HCIA-Access V2.5_4_1_1路由协议基础_IP路由表
大型网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发。 本章将介绍路由协议的基础知识、路由表的分类、静态路由基础与配置、VLAN间…...

Spring IOC 和 AOP的学习笔记
Spring框架是java开发行业的标准 Spring全家桶 Web:Spring Web MVC/Spring MVC、Spring Web Flux 持久层:Spring Data / Spring Data JPA 、Spring Data Redis 、Spring Data MongoDB 安全校验:Spring Security 构建工程脚手架ÿ…...

二七(vue2-03)、生命周期四个阶段及八个钩子、工程化开发和脚手架、组件注册、拆分组件
1. 生命周期 1.1 生命周期四个阶段 <!-- Vue生命周期:一个Vue实例从 创建 到 销毁 的整个过程。生命周期四个阶段:① 创建 ② 挂载 ③ 更新 ④ 销毁1.创建阶段:创建响应式数据2.挂载阶段:渲染模板3.更新阶段:修改…...

[树] 最轻的天平
问题描述 天平的两边有时不一定只能挂物品,还可以继续挂着另一个天平,现在给你一些天平的情况和他们之间的连接关系,要求使得所有天平都能平衡所需物品的总重量最轻。 一个天平平衡当且仅当“左端点的重量 \times 左端点到支点的距离 …...
Linux udev介绍使用
udev udev配置文件匹配键和赋值键操作符解释示例修改udev配置U盘自动挂载Usb卸载SD卡挂载SD卡卸载 udev配置文件 /etc/udev/udev.conf 这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项: udev_root“/dev/” udev_rules“/…...
单片机:实现节日彩灯(附带源码)
本项目的目标是通过编程实现几个常见的彩灯效果,包括: 流水灯效果(从左到右或从右到左)闪烁效果(所有灯同时闪烁)渐变效果(灯光从亮到灭,再从灭到亮)定时切换颜色效果&a…...

流程引擎Activiti性能优化方案
流程引擎Activiti性能优化方案 Activiti工作流引擎架构概述 Activiti工作流引擎架构大致分为6层。从上到下依次为工作流引擎层、部署层、业务接口层、命令拦截层、命令层和行为层。 基于关系型数据库层面优化 MySQL建表语句优化 Activiti在MySQL中创建默认字符集为utf8&…...

【爬虫一】python爬虫基础合集一
【爬虫一】python爬虫基础合集一 1. 网络请求了解1.1. 请求的类型1.2. 网络请求协议1.3. 网络请求过程简单图解1.4. 网络请求Headers(其中的关键字释义):请求头、响应头 2. 网络爬虫的基本工作节点2.1. 了解简单网络请求获取响应数据的过程所涉及要点 1. 网络请求了…...
any/all 子查询优化规则的原理与解析 | OceanBase查询优化
背景 在通常情况下,当遇到包含any/all子查询的语句时,往往需要遵循嵌套执行的方式,因此其查询效率较低。Oceanbase中制定了相应的any/all子查询优化规则,能够能够识别并优化符合条件的any/all子查询,从而有效提升查询…...
ECharts 饼图:数据可视化的重要工具
ECharts 饼图:数据可视化的重要工具 引言 在数据分析和可视化的领域,ECharts 是一个广受欢迎的开源库。它由百度团队开发,用于在网页中创建交互式图表。ECharts 提供了多种图表类型,包括柱状图、折线图、散点图等,而饼图则是其中最常用的一种。本文将深入探讨 ECharts 饼…...
第10章:CSS最佳实践 --[CSS零基础入门]
代码组织 在CSS开发中,良好的代码组织和最佳实践对于项目的可维护性和扩展性至关重要。以下是两个示例,展示了如何遵循CSS最佳实践来组织代码。 示例 1: 使用 BEM(Block Element Modifier)命名法 BEM 是一种用于提高 CSS 可读性…...

怎么在idea中创建springboot项目
最近想系统学习下springboot,尝试一下全栈路线 从零开始,下面将叙述下如何创建项目 环境 首先确保自己环境没问题 jdkMavenidea 创建springboot项目 1.打开idea,选择file->New->Project 2.选择Spring Initializr->设置JDK->…...
递归读取指定目录下的文件
序言 需要读取sftp服务器上符合指定的文件名正则的文件列表,目前想到的最好的办法就是递归。 我这里引入的依赖是: <!-- jsch-sftp连接 --><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artif…...

【模型压缩】原理及实例
在移动智能终端品类越发多样的时代,为了让模型可以顺利部署在算力和存储空间都受限的移动终端,对模型进行压缩尤为重要。模型压缩(model compression)可以降低神经网络参数量,减少延迟时间,从而实现提高神经…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...