自托管虚拟浏览器n.eko
n.eko 是一个在 docker 中运行并使用 WebRTC 的自托管虚拟浏览器。
本文开始于
2020
年10
月,但因为种种原因一直未完成,最近因为朋友需要,又重新捡起来了,最终完成了这篇横跨了5
年的文档
什么是 n.eko ?
n.eko
是一个基于docker
隔离环境的虚拟浏览器,支持firefox
、chrome
、opera
等多个版本的浏览器,内置了聊天/简单的用户管理功能。
这个应用程序使用 WebRTC
在 docker
容器中传输桌面视频流,所以需要比较高的配置,毕竟要对桌面进行编码/传输,而且浏览器本身还要消耗性能,以下数据来自官方的文档,https://neko.m1k1o.net/#/getting-started/quick-start
分辨率 | 核心数 | 内存 | 建议 |
---|---|---|---|
1024×576 @ 30 | 2 | 2GB | 不建议 |
1280x720 @ 30 | 4 | 3GB | 还行 |
1280x720 @ 30 | 6 | 4GB | 推荐 |
1280x720 @ 30 | 8 | 4GB以上 | 最好 |
现在最高可以支持到 1920×1080@60
,但没有找到新的关于性能的说明。
管理员可以在
GUI
上直接修改分辨率,后面有提到
官方 nurdism/neko
在 2021
年就不再维护了,现在最新的分支是 m1k1o/neko
n.eko
有很多用例和场景,例如可以互动演示,远程协作,观看视频等等,更多的用例请看:
https://github.com/m1k1o/neko#use-cases-and-comparison
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 neko
,选择第一个 m1k1o/neko
,版本选择 latest
。
本文写作时,
latest
版本对应为firefox
;
因为涉及到连续 udp
端口的映射,所以我们用 SSH
客户端连到群晖主机,采用命令行方式安装
docker cli 安装
用 docker cli
会更快捷
# 运行容器
docker run -d \
--restart unless-stopped \
--name neko \
--shm-size="2gb" \
-p 4181:8080 \
-p 52000-52100:52000-52100/udp \
-e NEKO_PASSWORD='neko' \
-e NEKO_PASSWORD_ADMIN='admin' \
-e NEKO_NAT1TO1=192.168.0.197 \
-e NEKO_SCREEN=1920x1080@30 \
-e NEKO_ICELITE=1 \
-e NEKO_EPR=52000-52100 \
m1k1o/neko:latest
主要参数的说明
--shm-size=2gb
是必须要,表示将共享内存的大小设置为2GB
--cap-add SYS_ADMIN
:如果你采用的是chromium
核心的浏览器版本,需要增加--cap-add=SYS_ADMIN
参数NEKO_PASSWORD
:是普通用户的密码NEKO_PASSWORD_ADMIN
:是管理员admin
的密码
用户名随便,通过匹配密码获得相应的权限,记得将上面两个参数修改成你自己的密码
NEKO_NAT1TO1
:- 如果你在局域网使用,设置为群晖的局域网
IP
即可; - 如果你在公网使用,可以忽略这个参数,它会自动获取您的公网
IP
;
- 如果你在局域网使用,设置为群晖的局域网
NEKO_SCREEN
:设置分辨率NEKO_ICELITE
:使用Ice Lite
协议NEKO_EPR
:WebRTC
所需的UDP
端口范围NEKO_FILE_TRANSFER_ENABLED
:如果要启用文件传输功能,需设置为true
更多参数说明,请参考官方文档:https://github.com/m1k1o/neko/blob/master/docs/getting-started/configuration.md
或者 https://neko.m1k1o.net/#/getting-started/configuration
docker-compose` 安装
将下面的内容保存为 docker-compose.yml
文件
version: "3.4"
services:
neko:
image: "m1k1o/neko:latest"
container_name: "neko"
restart: "unless-stopped"
shm_size: "2gb"
ports:
- "4181:8080"
- "52000-52100:52000-52100/udp"
environment:
NEKO_SCREEN: 1920x1080@30
NEKO_PASSWORD: neko
NEKO_PASSWORD_ADMIN: admin
NEKO_NAT1TO1: 192.168.0.197
NEKO_EPR: 52000-52100
NEKO_ICELITE: 1
然后执行下面的命令
# 新建文件夹 neko
mkdir -p /volume1/docker/neko
# 进入 neko 目录
cd /volume1/docker/neko
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:4181
,就可以看到主界面了
普通用户
例如使用用户名 laosu
,密码就是刚才设置的 NEKO_PASSWORD
,只要密码对上就可以登录
如果你使用的是
chromium
版本
如果密码错误
管理员
例如使用用户名 admin
,密码就是刚才设置的 NEKO_PASSWORD_ADMIN
如果你使用的是
chromium
版本
聊天
打开网页
支持聊天
分辨率
管理员端的右侧电脑图标
最高分辨率为 1920*1080@60
最低可以到 640*360@60
,其他端会同步分辨率
参考资料
nurdism/neko: A self hosted virtual browser (rabb.it clone) that runs in docker.
地址:https://github.com/nurdism/neko
m1k1o/neko: A self hosted virtual browser (rabb.it clone) that runs in docker.
地址:https://github.com/m1k1o/neko
n.eko
地址:https://neko.m1k1o.net
更多推荐
所有评论(0)