一个自托管的虚拟浏览器,提供安全隐私的访问,支持移动端,Star 6.2K!
在以前写的一篇《一个尊重个人隐私的搜索引擎,可以私有化部署,Star 9.6+!》文中,我们介绍了一款隐私搜索-SearXNG。细心的同学应该也发现了,在SearXNG的设置中心,需要针对不同的搜索内容设置下采用那种搜索引擎。所以,本质上SearXNG不是浏览器,而是一种建设在很多搜索引擎之上的搜索引擎。

但是很多时候,我们遇到以下的一些场景和需求的时候,还是需要在电脑上安装多个浏览器才能满足:
- 多账号管理登录场景:在一些场景中,用户可能需要在同一台设备上同时采用多个账号登录一个系统,需要采用多个浏览器,登录不同的账号,防止账号间认证关联,登录冲突等现象;
- 网络安全与隐私保护场景:需要多个浏览器提供隔离不同的浏览环境,需要设置不同的安全级别,网络代理等等;
- 兼容性测试场景:多个浏览器可以模拟不同的浏览器访问系统,帮助开发或者测试人员进行网站兼容性测试和性能调试等。
比如,我经常听到的我们团队小伙伴在排查问题时说的一句话就是 “换个浏览器试试,看看问题还有没有” 。这个就是浏览器兼容性或者缓存导致系统页面出现了问题,这也导致了团队小伙伴的电脑基本都安装了3-5个浏览器。
- 所以,今天给大家介绍的是一款基于Docker的虚拟浏览器,从此告别多浏览器切换的烦恼-Neko
Neko 介绍
一个自托管的虚拟浏览器,采用 WebRTC 技术提供服务,提供安全隔离的环境访问互联网、浏览网页、运行应用程序,同时支持多用户同时在线协作,适合团队共享、互动演示等场景。

🏠 项目信息
#github地址
https://github.com/m1k1o/neko
#项目地址
https://neko.m1k1o.net/#/
🚀功能特性
- 虚拟浏览器环境:在 Docker 容器中运行,提供一个隔离的浏览器环境,增强安全性。
- WebRTC 流式传输:使用 WebRTC 技术实时流式传输桌面环境,减少延迟,提供流畅的用户体验。
- 多用户访问:支持多个用户同时访问同一个虚拟浏览器,适合团队协作和共享。
- 协作互动性:用户不仅可以观看屏幕共享,还可以进行实时的交互控制。
- 隐私保护:敏感数据如 cookies 不会传输到主机浏览器,仅共享视频流。
- 跨平台兼容性:支持多种操作系统和设备,包含手机端。用户可以在不同平台上使用 n.eko。
- 文本聊天功能:内置文本聊天系统,支持基本的 Markdown 语法。
- 管理员权限:管理员可以执行踢出、禁止用户,以及控制房间的权限。
- 剪贴板同步:在支持的浏览器上实现剪贴板内容的同步。
- 持久设置:允许用户保存设置,以便在下次访问时保留个性化配置。
- 文件传输:如果启用,支持双向文件传输功能。
- 无需客户端:用户无需下载客户端即可使用,直接通过浏览器访问。
🛠 Demo演示

Neko 安装
Neko提供了Docker安装,并且支持通过环境变量设置不同的功能。目前支持Firefox、Chromium、VLC、Raspberry Pi。
一、部署
- Firefox版本
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: <your-IP>- Chromium
version: "3.4"
services:
neko:
image: "m1k1o/neko:chromium"
restart: "unless-stopped"
shm_size: "2gb"
ports:
- "8080:8080"
- "52000-52100:52000-52100/udp"
cap_add:
- SYS_ADMIN
environment:
NEKO_SCREEN: '1920x1080@30'
NEKO_PASSWORD: neko
NEKO_PASSWORD_ADMIN: admin
NEKO_EPR: 52000-52100
NEKO_NAT1TO1: <your-IP>- VLC
version: "3.4"
services:
neko:
image: "m1k1o/neko:vlc"
restart: "unless-stopped"
shm_size: "2gb"
volumes:
- "<your-video-folder>:/video"
ports:
- "8080:8080"
- "52000-52100:52000-52100/udp"
cap_add:
- SYS_ADMIN
environment:
NEKO_SCREEN: '1920x1080@30'
NEKO_PASSWORD: neko
NEKO_PASSWORD_ADMIN: admin
NEKO_EPR: 52000-52100
NEKO_NAT1TO1: <your-IP>Raspberry Pi
version: "3.4"
services:
neko:
# see docs for more variants
image: "ghcr.io/m1k1o/neko/arm-chromium:latest"
restart: "unless-stopped"
# increase on rpi's with more then 1gb ram.
shm_size: "520mb"
ports:
- "8088:8080"
- "52000-52100:52000-52100/udp"
# note: this is important since we need a GPU for hardware acceleration alternatively
# mount the devices into the docker.
privileged: true
environment:
NEKO_SCREEN: '1280x720@30'
NEKO_PASSWORD: 'neko'
NEKO_PASSWORD_ADMIN: 'admin'
NEKO_EPR: 52000-52100
# note: when setting NEKO_VIDEO, then variables NEKO_MAX_FPS and NEKO_VIDEO_BITRATE
# are not being used, you can adjust them in this variable.
NEKO_VIDEO: |
ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false
! video/x-raw,framerate=30/1
! videoconvert
! queue
! video/x-raw,framerate=30/1,format=NV12
! v4l2h264enc extra-controls="controls,h264_profile=1,video_bitrate=1250000;"
! h264parse config-interval=3
! video/x-h264,stream-format=byte-stream,profile=constrained-baseline
NEKO_VIDEO_CODEC: h264二、配置
Neko的配置可以通过docker-compose 文件的环境变量进行设置,以下是常用的配置项:
- 是否开启文件传输功能
NEKO_FILE_TRANSFER_ENABLED: true- SSL证书配置
# SSL 证书的路径。
NEKO_CERT: /certs/cert.pem
#SSL 证书私钥的路径。
NEKO_KEY:/certs/key.pem- 有至少一名管理员在房间时用户才能获得控制权
NEKO_CONTROL_PROTECTION:falseNeko 使用
- 复制粘贴文本

- 文件传输

- 普通用户登录

- 普通用户申请控制权

- 管理员授权控制

- 聊天互动

- 其他项设置

- 全屏效果

- 移动端访问效果

最后
综上所述,Neko是一个多功能、高度可定制的虚拟浏览器解决方案,适用于多种不同的使用场景,无论是开发者测试应用、注重隐私的用户安全浏览,还是需要便捷分享浏览器访问权限的个人,都能很好的满足需求。如果你也感兴趣的话,不妨试试吧!