目录
简介
neko是一个在Docker中运行并使用WebRTC技术的自托管虚拟浏览器。使用 Neko,您可以像在常规浏览器上一样浏览 Web、运行应用程序以及执行其他任务,所有这些都在安全且隔离的环境中完成。无论您是希望测试 Web 应用程序的开发人员、寻求安全浏览体验的注重隐私的用户,还是只是想要利用虚拟浏览器的便利性和灵活性的人,Neko 都是完美的解决方案。
本文以一台1H1G Debian系统的VPS演示安装单个远程浏览器,以一台4H4G演示搭建neko room批量管理多个远程浏览器
你的用途取决于你的vps配置
仅仅用来浏览网页CPU和内存占用不会太高 1H1G加上虚拟内存足够
如果是看流媒体这种需要编解码占用CPU GPU的服务 vps配置自然需要高,看1080p流媒体至少需要2核2G(CPU总跑分1500+)
客户端浏览器需要支持webRTC,常见的chrome edge safari 都支持
操作流程
安装docker及docker compose
yum update -y && yum upgrade -y #Centos执行这条命令更新源
apt update -y && apt upgrade -y #Ubuntu/Debian执行这条命令更新源
curl -fsSL https://get.docker.com -o get-docker.sh && sh ./get-docker.sh //安装docker及docker compose
docker -v //检测是否安装成功
docker compose version //检测是否安装成功
添加虚拟内存
我用的jcnf大佬的聚合脚本,添加了 2048MB的虚拟内存
wget -O jcnfbox.sh https://raw.githubusercontent.com/Netflixxp/jcnf-box/main/jcnfbox.sh && chmod +x jcnfbox.sh && clear && ./jcnfbox.sh
安装neko
可以参考官网教程:n.eko
下载neko docker compose文件
mkdir neko
cd neko
wget https://raw.githubusercontent.com/m1k1o/neko/master/docker-compose.yaml
默认配置文件应该是这样的,我们要对他进行一些修改:
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_ICELITE: 1
编辑docker compose文件 : vim docker-compose.yaml
,按照注释修改:
-
image: "m1k1o/neko:firefox" 这里可以更改使用的浏览器,默认为Firefox,其他支持的浏览器我会放在文末附录
-
"8080:8080" 这里是浏览器访问端口,如果被占用则需要修改成没有占用的端口,例如 – "8082:8080"
-
NEKO_SCREEN: 分辨率,请自行修改为适合自己服务器配置的分辨率,格式为宽x高@帧率 例如 1280×720@30
-
NEKO_PASSWORD: 用户访问密码,默认为 neko 请务必修改为自己的密码
-
NEKO_PASSWORD_ADMIN: 管理员密码,默认为 admin 请务必修改为自己的密码
-
NEKO_CONTROL_PROTECTION: 控制保护,要求房间内至少有一名管理员时用户才能获得控制权,建议启用
-
NEKO_LOCKS: 启动时将被锁定的资源,以空格分隔,目前支持 control login file_transfer,例如 control file_transfer
-
NEKO_VIDEO_BITRATE: 视频码率,直接填写数字,默认为3500,单位kb/s
-
NEKO_FILE_TRANSFER_ENABLED: 是否启用文件传输功能
-
NEKO_FILE_TRANSFER_PATH: 文件保存路径,这里是容器内的路径,默认为/home/neko/Downloads
-
NEKO_PROXY: 反向代理设置,如果需要使用则启用,启用后Neko会信任X-Forwarded-For标头
其他支持的浏览器
镜像名 | 浏览器 | 备注 |
---|---|---|
m1k1o/neko:latest |
Firefox | 默认 |
m1k1o/neko:firefox |
Firefox | 默认 |
m1k1o/neko:chromium |
Chromium | 需要以系统管理员运行 |
m1k1o/neko:google-chrome |
Google Chrome | 需要以系统管理员运行 |
m1k1o/neko:ungoogled-chromium |
Ungoogled Chromium | 需要以系统管理员运行 |
m1k1o/neko:microsoft-edge |
Microsoft Edge | 需要以系统管理员运行 |
m1k1o/neko:vlc |
VLC Video Player | 需要以系统管理员运行 |
m1k1o/neko:opera |
Opera Browser | 需要以系统管理员运行 |
在使用 需要以系统管理员运行 的浏览器时,需要在配置文件中添加如下两行:
原:
version: "3.4"
services:
neko:
image: "m1k1o/neko:firefox
新:
version: "3.4"
services:
neko:
image: "m1k1o/neko:google-chrome
cap_add:
- SYS_ADMIN
因此我的配置文件是:
version: "3.4"
services:
neko:
image: "m1k1o/neko:chromium"
volumes:
- '/root/neko/policies.json:/etc/chromium/policies/managed/policies.json'
restart: "unless-stopped"
shm_size: "4gb"
ports:
- "8088:8080"
- "52000-52100:52000-52100/udp"
cap_add:
- SYS_ADMIN
environment:
NEKO_SCREEN: '1920x1080@30'
NEKO_PASSWORD: 输入游客密码
NEKO_PASSWORD_ADMIN: 输入管理员密码
NEKO_EPR: 52000-52100
NEKO_ICELITE: 1
NEKO_FILE_TRANSFER_ENABLED: ture
启动docker程序
执行命令:
sudo docker compose up -d
接下来程序已经成功运行了。之后如果想要关闭它,在这个包含 docker-compose.yaml
的目录使用 docker compose down
命令。
要修改密码和分辨率,就修改上面的 NEKO_PASSWORD
, NEKO_PASSWORD_ADMIN
, 和 NEKO_SCREEN
后面的内容就行。然后先通过命令 docker compose down
关闭 Neko, 再使用 docker compose up -d
启动 Neko 就能生效。
cd到docker-compose.yaml 文件目录:
docker compose down //停止
docker compose up -d //启动
访问
通过 ip:port 访问,上面的端口是8088,因此地址是 ip:8088
用户名随便,密码可以是普通用户密码,也可以是管理员密码
增强玩法
中文输入
Neko 的聊天框可以输入中文,但是 Neko 的浏览器中无法直接输入中文。可以借助一些在线输入法输入中文,比如 Google Input Tools. 打开这个网页之后,在红框处选择 “Chinese (Simplified, China)” 之后,就可以使用拼音输入法输入中文了。当然它也支持双拼和五笔输入。
在这个输入框输入中文之后,就可以复制 (Ctrl + C) 这里的中文,然后粘贴 (Ctrl + V) 到其他输入框中。
隐藏链接
禁用密码是不可能的。但是,您可以使用以下查询参数来创建自动加入链接:
添加?pwd=
添加?usr=
添加?cast=1将隐藏所有控件并仅显示视频。
添加?embed=1将隐藏大多数附加组件并仅显示视频。
添加?volume=<0-1>会将音量设置为给定值。
添加?lang=
例如http(s)://<URL:Port>/?pwd=neko&usr=guest&cast=1
删除策略
当前安装的浏览器会有组织策略,会阻止添加书签和组件,因此我们需要创建空策略。
创建策略文件:
在你的本地系统上创建一个名为 policies.json 的文件。打开这个文件,输入 {} 保存并关闭。这个空的JSON对象表示没有任何策略。
然后找到你的 docker-compose.yml 文件。在其中运行 m1k1o/neko:chromium 镜像的服务部分,添加一个新的 volume 来挂载你刚刚创建的 policies.json 文件:
services:
neko:
image: m1k1o/neko:google-chrome
volumes:
- '/root/policies.json:/etc/chromium/policies/managed/policies.json'
# 其他的配置保持不变
允许文件上传和下载和保存浏览数据
编辑policies.json文件
vim policies.json
复制一下内容粘贴进去,
{
"DownloadRestrictions": 0,
"AllowFileSelectionDialogs": true,
"URLAllowlist": [
"file:///home/neko/Downloads"
],
"DefaultCookiesSetting": 1,
"RestoreOnStartup": 1
}