一、前言
本文以远程浏览器程序 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
1
|
curl -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 |
三、添加虚拟内存
我用的jcnf大佬的聚合脚本,添加了 2048MB的虚拟内存
1
|
wget -O jcnfbox.sh https://raw.githubusercontent.com/Netflixxp/jcnf-box/main/jcnfbox.sh && chmod +x jcnfbox.sh && clear && ./jcnfbox.sh
|
centos添加虚拟内存我之前写过你可以在我博客搜索框查找
三、docker compose安装neko
可以参考官网教程:n.eko
1、下载neko docker compose文件
1
|
wget 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程序
1
|
sudo docker-compose up -d
|
3、通过ip:port访问
用户名随便,密码可以是普通用户密码,也可以是管理员密码
四、neko room
neko room是另外的一个工具,可以批量添加多个不同浏览器
选择一个域名解析到vps的IP
下载neko room安装脚本
1
|
wget -O neko-rooms.sh https://raw.githubusercontent.com/m1k1o/neko-rooms/master/traefik/install
|
执行脚本
1
|
sudo bash neko-rooms.sh
|
脚本会自动申请证书,通过填入的域名访问
expert setting 可以添加环境变量、对CPU和内存设置资源限制、启用GPU
五、一般玩法
2、所有人都有控制权,可以同时控制屏幕,无需请求
- neko room:开启
NEKO_IMPLICIT_CONTROL
- docker compose运行的neko:在compose文件的环境变量加上
NEKO_IMPLICIT_CONTROL: true
3、neko反代设置
可以参考官方给出的配置:Reverse Proxy (m1k1o.net)
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 |
然后就可以下载安装扩展了
6、浏览器使用代理
可能有小伙伴需要观看netflix 使用chatgpt等,常规vps数据中心IP一般不符合要求
可以安装 Proxy SwitchyOmega 不过它只支持http和socks协议
暂时不知道支持其他协议的插件 欢迎反馈
暂无评论内容