neko自建远程浏览器

发布于 2023-09-20  404 次阅读


一、前言

本文以远程浏览器程序 neko 演示

作者的话: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

① 更新源

1
2
yum update -y && yum upgrade -y #Centos执行这条命令
apt update -y && apt upgrade -y #Ubuntu/Debian执行这条命令

② 安装docker及docker compose

1curl -fsSL https://get.docker.com -o get-docker.sh && sh ./get-docker.sh

③ 检查docker是否安装成功

1
2
3
4
5
#以下即为安装成功
root@debian-4gb-fsn1-2:~# docker compose version
Docker Compose version v2.17.2
root@debian-4gb-fsn1-2:~# docker -v
Docker version 23.0.2, build 569dd73
image

三、添加虚拟内存

我用的jcnf大佬的聚合脚本,添加了 2048MB的虚拟内存

1wget -O jcnfbox.sh https://raw.githubusercontent.com/Netflixxp/jcnf-box/main/jcnfbox.sh && chmod +x jcnfbox.sh && clear && ./jcnfbox.sh
image

centos添加虚拟内存我之前写过你可以在我博客搜索框查找

image
image

三、docker compose安装neko

可以参考官网教程:n.eko

1、下载neko docker compose文件

1wget https://raw.githubusercontent.com/m1k1o/neko/master/docker-compose.yaml

可以选择性编辑docker compose文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#vim docker-compose.yaml

version: "3.4"
services:
neko:
image: "m1k1o/neko:firefox" #远程浏览器程序,可以选择firefox chromium等
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
#环境变量还可以根据官方文档自定义修改


2、启动docker程序

1sudo docker-compose up -d
image

3、通过ip:port访问

用户名随便,密码可以是普通用户密码,也可以是管理员密码

image

四、neko room

neko room是另外的一个工具,可以批量添加多个不同浏览器

选择一个域名解析到vps的IP

下载neko room安装脚本

1wget -O neko-rooms.sh https://raw.githubusercontent.com/m1k1o/neko-rooms/master/traefik/install

执行脚本

1sudo bash neko-rooms.sh
image

脚本会自动申请证书,通过填入的域名访问

expert setting 可以添加环境变量、对CPU和内存设置资源限制、启用GPU

image

五、一般玩法

image

2、所有人都有控制权,可以同时控制屏幕,无需请求

  • neko room:开启 NEKO_IMPLICIT_CONTROL
  • docker compose运行的neko:在compose文件的环境变量加上 NEKO_IMPLICIT_CONTROL: true

3、neko反代设置

可以参考官方给出的配置:Reverse Proxy (m1k1o.net)

image
image

4、复制粘贴

neko或neko-room添加环境变量 NEKO_FILE_TRANSFER_ENABLED: true

5、安装浏览器扩展或下载文件

参考: Chrome policies

作者为了安全默认禁止下载文件 禁止安装扩展(https://github.com/m1k1o/neko/issues/114#issuecomment-988309991)

For security, if the browser would be compromised, installing any extension could potentially allow anyone to access filesystem or steal all cookies, inject malware to any page…

但我们一般不在乎那些,可以根据官方教程手动修改 chrome polices

我以 Chromium 为例

1、在vps新建一个 policies.json 文件,可以填入如下政策

我这里文件添加在在 /root/policies.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{
"AutofillAddressEnabled": false,
"AutofillCreditCardEnabled": false,
"BrowserSignin": 0,
"DefaultNotificationsSetting": 2,
"DeveloperToolsAvailability": 2,
"EditBookmarksEnabled": false,
"FullscreenAllowed": true,
"IncognitoModeAvailability": 1,
"SyncDisabled": true,
"AutoplayAllowed": true,
"BrowserAddPersonEnabled": false,
"BrowserGuestModeEnabled": false,
"DefaultPopupsSetting": 2,
"DownloadRestrictions": 0,
"VideoCaptureAllowed": true,
"AllowFileSelectionDialogs": false,
"PromptForDownloadLocation": false,
"BookmarkBarEnabled": false,
"PasswordManagerEnabled": false,
"BrowserLabsEnabled": false,
"URLAllowlist": [
"file:///home/neko/Downloads",
"file://*",
"chrome://policy"
],

"ExtensionInstallForcelist": [
"cjpalhdlnbpafiamejdnhcphjbkeiagm;https://clients2.google.com/service/update2/crx",
"mnjggcdmjocbbbhaepdhchncahnbgone;https://clients2.google.com/service/update2/crx"
],
"ExtensionInstallAllowlist": [
"cjpalhdlnbpafiamejdnhcphjbkeiagm",
"mnjggcdmjocbbbhaepdhchncahnbgone",
"padekgcemlokbadohgkifijomclgjgif"
]
}

然后替换 Chromium 原本严格的政策

1
2
3
#容器ID'13f53eaa2252' 记得替换为你自己的
#/root/policies.json 也是替换为你文件路径
docker cp /root/policies.json 13f53eaa2252:/etc/chromium/policies/managed/policies.json

然后就可以下载安装扩展了

image

6、浏览器使用代理

可能有小伙伴需要观看netflix 使用chatgpt等,常规vps数据中心IP一般不符合要求

可以安装 Proxy SwitchyOmega 不过它只支持http和socks协议

想使用 trojan vmess 等协议需要使用clash,这里有写如何在linux使用clash:linux使用clash

7、甲骨文arm运行

有专为arm的镜像

8、更多玩法

可以参考官方: 常见问题解答


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。