【Docker】搭建一个功能强大的自托管虚拟浏览器 - n.eko
前言
本教程基于群晖的NAS设备DS423+的docker功能进行搭建,DSM版本为 DSM 7.2.2-72806 Update 2。
n.eko 支持多种类型浏览器在其虚拟环境中运行,本次教程使用 Chromium 浏览器镜像进行演示,支持访问内网设备和公网地址。
简介
n.eko 是一款基于 Docker 的自托管虚拟浏览器,利用 WebRTC 技术实现实时音视频传输和多人协作功能。它允许用户在虚拟环境中运行功能齐全的浏览器(如 Firefox、Chrome 等),并支持多人同时访问和操作,适用于远程协作、观看派对、互动演示等场景。

核心功能
虚拟浏览器:
支持多种浏览器内核(如 Firefox、Chrome、Opera 等),用户可以在虚拟环境中浏览网页、运行应用程序。
所有操作都在 Docker 容器中完成,确保安全性和隐私性。
多人协作:
支持多用户同时访问,用户可以共享浏览器画面并实时互动,适合团队协作、远程教学或家庭娱乐。
提供聊天功能、文件传输和剪贴板同步,增强协作体验。
实时音视频传输:
基于 WebRTC 技术,实现低延迟的音视频传输,支持屏幕共享和远程控制。
支持 RTMP 推流,可将内容广播到 Twitch 或 YouTube 等平台。
隐私与安全:
所有操作都在隔离的 Docker 容器中进行,避免数据泄露。
支持管理员权限控制,如踢出用户、锁定房间等。
灵活部署:
通过 Docker 部署,支持多种操作系统(Windows、Linux、macOS)。
提供丰富的配置选项,如分辨率、密码设置、文件传输路径等。
适用场景
远程协作:团队成员可以共同浏览网页、调试代码或进行头脑风暴。
观看派对:与朋友或家人一起观看视频、动漫,并实时聊天互动。
教育培训:用于远程教学或演示,支持多人同时操作和互动。
隐私浏览:在隔离环境中访问敏感网站,避免留下痕迹。
部署
在群晖NAS上面的“File Station”中新建一个docker映射文件,用于映射docker中neko-chromium的数据。

打开“Container Manager”,在“项目”中,点击“新增”。填写项目名称,路径选择创建好的映射文件夹,文件选择“创建 docker-compose.yml”,然后将以下配置代码复制粘贴进去。
version: "3.8" services:neko:image: "m1k1o/neko:chromium"container_name: "neko-chromium"restart: "unless-stopped"shm_size: "3gb" # 设置共享内存大小为 3GB,此设置为必须。ports:- "19800:8080"- "52000-52100:52000-52100/udp"cap_add:- SYS_ADMIN # 使用 Chromium 内核时需添加,以获取必要的系统管理权限。volumes:- ./chromium/data:/home/neko/.config/chromium # 策略文件,重启依然能保留浏览器数据。environment:NEKO_SCREEN: 1280x720@30 # 自定义浏览器窗口分辨率。NEKO_PASSWORD: neko # 普通用户的登录密码。NEKO_PASSWORD_ADMIN: admin # 管理员(admin)用户的登录密码。 NEKO_EPR: 52000-52100 # 设置 WebRTC 的 UDP 端口范围,用于P2P连接。NEKO_ICELITE: true # 启用 Ice Lite 协议以优化连接性能,可选。NEKO_CONTROL_PROTECTION: true # 控制保护意味着,只有当至少有一个管理员在房间里时,用户才能获得控制权。NEKO_NAT1TO1: 192.168.1.111 # 局域网使用时设置为服务器本地 IP,公网则自动获取公网 IP,可选。最后点击“下一步”,等待镜像拉取和容器创建完成。

使用
输入
IP:Port访问,使用管理员登录,用户名为登录后显示的名称,可自定义,密码根据之前配置进行填写。
设置中文语言。默认是英文,点击左下角
en,选择cn切换至中文。
获取浏览器控制权。点击正下方的键盘图标,获取控制权。

调整屏幕尺寸。点击右上角显示器图标,进行分辨率切换。

对普通用户进行操作(需要管理员账号)。选中对应头像,鼠标右键单击,可对其进行选择“给予控制”或“踢出”等操作。

聊天室。点击右上角侧栏图标,然后点击聊天。

粘贴板共享。在右下角有个粘贴板图标,如果需要将文字内容复制进浏览器,需要将内容粘贴至粘贴板内。
仅支持纯文本。

使用自动加入链接。
示例:http(s)://[URL:Port](URL:Port)/?pwd=neko&usr=guest&cast=1
添加?pwd=<password>将预填充密码。
添加?usr=<display-name>将预填充用户名。
添加?cast=1将隐藏所有控件,只显示视频。
添加?embed=1将隐藏大多数附加组件,仅显示视频
添加?volume=<0-1>将音量设置为给定值。
添加?lang=<language>将语言设置为给定值。
添加?show_side=1将在启动时显示侧边栏。
添加?mute_chat=1将在启动时静音聊天。
更多使用教程,请参考官方文档 n.keo Doc(https://neko.m1k1o.net/#/getting-started/)
文章出处:https://blog.uptoz.cn/archives/olbQbQAn
作者原创:@小小笔记大大用处 https://blog.uptoz.cn
相关文章:
【Docker】搭建一个功能强大的自托管虚拟浏览器 - n.eko
前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建,DSM版本为 DSM 7.2.2-72806 Update 2。 n.eko 支持多种类型浏览器在其虚拟环境中运行,本次教程使用 Chromium 浏览器镜像进行演示,支持访问内网设备和公网地址。 简介 n.eko 是…...
论文笔记(六十二)Diffusion Reward Learning Rewards via Conditional Video Diffusion
Diffusion Reward Learning Rewards via Conditional Video Diffusion 文章概括摘要1 引言2 相关工作3 前言4 方法4.1 基于扩散模型的专家视频建模4.2 条件熵作为奖励4.3 训练细节 5 实验5.1 实验设置5.2 主要结果5.3 零样本奖励泛化5.4 真实机器人评估5.5 消融研究 6 结论 文章…...
探索 Stable-Diffusion-Webui-Forge:更快的AI图像生成体验
目录 简介🌟 主要特点📥 安装步骤1. 下载2. 配置环境和安装依赖3. 模型目录说明 🚀 运行 Stable-Diffusion-Webui-Forge1. 进入项目目录2. 运行项目3. 打开页面 🎨 使用体验常见问题📝 小结 简介 Stable-Diffusion-We…...
Redis使用基础
1 redis介绍 Redis(Remote Dictionary Server ),即远程字典服务 ! 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并…...
PyCharm+RobotFramework框架实现UDS自动化测试- (四)项目实战0x10
1.环境搭建 硬件环境:CANoe、待测设备(包含UDS诊断模块) 2.pythonPyCharm环境 pip install robotframework pip install robotframework-ride pip install openpyxl pip install udsoncan pip install python-can pip install can-isotp3…...
【TCP】rfc文档
tcp协议相关rfc有哪些 TCP(传输控制协议)是一个复杂的协议,其设计和实现涉及多个RFC文档。以下是一些与TCP协议密切相关的RFC文档列表,按照时间顺序排列,涵盖了从基础定义到高级特性和优化的各个方面: 基…...
【SpringCloud】黑马微服务学习笔记
目录 1. 关于微服务 ?1.1 微服务与单体架构的区别 ?1.2 SpringCloud 技术 2. 学习前准备 ?2.1 环境搭建 ?2.2 熟悉项目 3. 正式拆分 ?3.1 拆分商品功能模块 ?3.2 拆分购物车功能模块 4. 服务调用 ?4.1 介绍 ?4.2 RustTemplate?的使用 4.3 服务治理-注册中…...
梯度提升决策树树(GBDT)公式推导
### 逻辑回归的损失函数 逻辑回归模型用于分类问题,其输出是一个概率值。对于二分类问题,逻辑回归模型的输出可以表示为: \[ P(y 1 | x) \frac{1}{1 e^{-F(x)}} \] 其中 \( F(x) \) 是一个线性组合函数,通常表示为ÿ…...
【MySQL】表的基本操作
??表的基本操作 文章目录: 表的基本操作 创建查看表 创建表 查看表结构 表的修改 表的重命名 表的添加与修改 删除表结构 总结 前言: 在数据库中,数据表是存储和组织数据的基本单位,对于数据表的操作是每个程序员需要烂熟…...
项目中使用的是 FastJSON(com.alibaba:fastjson)JSON库
从你的 pom.xml 文件中可以看到,项目明确依赖了以下 JSON 库: FastJSON: <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version> </depende…...
Flutter中PlatformView在鸿蒙中的使用
Flutter中PlatformView在鸿蒙中的使用 概述在Flutter中的处理鸿蒙端创建内嵌的鸿蒙视图创建PlatformView创建PlatformViewFactory创建plugin,注册platformview注册插件 概述 集成平台视图(后称为平台视图)允许将原生视图嵌入到 Flutter 应用…...
音频入门(一):音频基础知识与分类的基本流程
音频信号和图像信号在做分类时的基本流程类似,区别就在于预处理部分存在不同;本文简单介绍了下音频处理的方法,以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…...
规避路由冲突
路由冲突是指在网络中存在两个或多个路由器在进行路由选择时出现矛盾,导致网络数据包无法正确传输,影响网络的正常运行。为了规避路由冲突,可以采取以下措施: 一、合理规划IP地址 分配唯一IP:确保每个设备在网络中都有…...
SQLmap 自动注入 -02
1: 如果想获得SQL 数据库的信息,可以加入参数: -dbs sqlmap -u "http://192.168.56.133/mutillidae/index.php?pageuser-info.php&usernamexiaosheng&passwordabc&user-info-php-submit-buttonViewAccountDetails" --batch -p username -dbs…...
4.JoranConfigurator解析logbak.xml
文章目录 一、前言二、源码解析GenericXMLConfiguratorlogback.xml解析通过SaxEvent构建节点model解析model节点DefaultProcessor解析model 三、总结 一、前言 上一篇介绍了logback模块解析logback.mxl文件的入口, 我们可以手动指定logback.xml文件的位置, 也可以使用其它的名…...
React 19 新特性总结
具体详见官网: 中文:React 19 新特性 英文:React 19 新特性 核心新特性 1. Actions 解决问题:简化数据变更和状态更新流程 以前需要手动处理待定状态、错误、乐观更新和顺序请求需要维护多个状态变量(isPending, error 等) 新…...
kafka学习笔记6 ACL权限 —— 筑梦之路
在Kafka中,ACL(Access Control List)是用来控制谁可以访问Kafka资源(如主题、消费者组等)的权限机制。ACL配置基于Kafka的kafka-acls.sh工具,能够管理对资源的读取、写入等操作权限。 ACL介绍 Kafka的ACL是…...
【Java】Java抛异常到用户界面公共封装
前言 在Java中处理代码运行异常是常见的技术点之一,我们大部分会使用封装的技巧将异常进行格式化输出,方便反馈给用户界面,也是为了代码复用 看看这行代码是怎么处理异常的 CommonExceptionType.SimpleException.throwEx("用户信息不…...
基于Redis实现短信验证码登录
目录 1 基于Session实现短信验证码登录 2 配置登录拦截器 3 配置完拦截器还需将自定义拦截器添加到SpringMVC的拦截器列表中 才能生效 4 Session集群共享问题 5 基于Redis实现短信验证码登录 6 Hash 结构与 String 结构类型的比较 7 Redis替代Session需要考虑的问题 8 …...
步入响应式编程篇(二)之Reactor API
步入响应式编程篇(二)之Reactor API 前言回顾响应式编程Reactor API的使用Stream引入依赖Reactor API的使用流源头的创建 reactor api的背压模式发布者与订阅者使用的线程查看弹珠图查看形成新流的日志 前言 对于响应式编程的基于概念,以及J…...
从社交推荐到药物发现:GAT(图注意力网络)在5个工业级场景下的落地实践
从社交推荐到药物发现:GAT在5个工业级场景下的落地实践 当AlphaFold2用图神经网络破解蛋白质折叠难题时,工业界突然意识到:图注意力网络(GAT)早已不再是学术玩具。在社交平台每天处理数十亿次关系推理的推荐系统里&…...
PlugY:重新定义暗黑破坏神2单机体验的技术突破
PlugY:重新定义暗黑破坏神2单机体验的技术突破 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 暗黑破坏神2作为ARPG游戏的里程碑之作,其单机模…...
TI C2000系列PGA避坑指南:滤波电阻选择与开尔文接地的5个关键细节
TI C2000系列PGA避坑指南:滤波电阻选择与开尔文接地的5个关键细节 在精密信号调理电路中,可编程增益放大器(PGA)的硬件设计往往成为系统性能的瓶颈。许多工程师在完成原理图设计后,常会遇到信号完整性不佳、底噪偏高或增益误差超标等问题。本…...
DSP数字电源方案:C2000系列主控TMS32F28069 Buck-Boost双向变换器(...
DSP数字电源方案 Buck-Boost双向变换器 数字控制方式:C2000系列 主控TMS32F28069 300W,8A,输入10-75V,输出5-75V 双向升降压功率转换器buck-boost结构 提供主板PCB,原理图(AD格式),源代码,无控制板资料。 …...
《SpaceOS:空间操作系统白皮书(终极封神版)》——从“像素认知”到“空间计算”,构建现实世界的智能操作体系
🚀《SpaceOS:空间操作系统白皮书(终极封神版)》——从“像素认知”到“空间计算”,构建现实世界的智能操作体系(镜像视界(浙江)科技有限公司原创技术体系)🔴 …...
OpenMC蒙特卡洛模拟的技术突破:从算法创新到工程实践
OpenMC蒙特卡洛模拟的技术突破:从算法创新到工程实践 【免费下载链接】openmc OpenMC Monte Carlo Code 项目地址: https://gitcode.com/gh_mirrors/op/openmc 问题溯源:蒙特卡洛模拟的效率困境与技术挑战 在核工程、粒子物理和辐射防护等领域&a…...
避开这些坑,你的芯片设计才能成功流片:CMOS制造工艺中的关键检查点详解
避开这些坑,你的芯片设计才能成功流片:CMOS制造工艺中的关键检查点详解 在芯片设计领域,流片失败往往意味着数百万美元的损失和数月的开发时间付诸东流。对于初入行的工程师而言,理解制造工艺中的潜在风险点比掌握正向设计流程更为…...
电磁场仿真实战——5. 有限元法(FEM)在工程优化中的应用
1. 有限元法(FEM)在电磁场仿真中的核心价值 想象一下你正在设计一台新型电机,需要精确计算内部电磁场的分布。传统解析方法面对复杂几何结构时束手无策,而有限元法就像把整个电机拆解成无数个"乐高积木",在每…...
别再乱调Spacing了!用SimpleITK给医学图像做重采样,这份避坑指南请收好
医学图像重采样实战:如何科学设置Spacing参数提升模型性能 当你在处理3D医学图像时,是否遇到过这样的困惑:明明按照教程完成了重采样,但模型性能却不升反降?或者在不同数据集上使用相同的Spacing参数,效果…...
如何通过MobaXterm中文版快速构建一体化远程管理环境
如何通过MobaXterm中文版快速构建一体化远程管理环境 【免费下载链接】Mobaxterm-Chinese Mobaxterm simplified Chinese version. Mobaxterm 的简体中文版. 项目地址: https://gitcode.com/gh_mirrors/mo/Mobaxterm-Chinese 远程管理工具的选择常常让系统管理员和开发者…...
