前言

本文以远程浏览器程序 neko 演示
项目地址: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

更新源

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

安装docker及docker compose

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

检查docker是否安装成功

#以下即为安装成功
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的虚拟内存

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

docker compose安装neko

下载neko docker compose文件

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

可以选择性编辑docker compose文件

#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
                                #环境变量还可以根据官方文档自定义修改

启动docker程序

sudo docker-compose up -d

通过ip:port访问

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

neko room

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

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

下载neko room安装脚本

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

执行脚本

sudo bash neko-rooms.sh

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

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

一般玩法

控制权

所有人都有控制权,可以同时控制屏幕,无需请求
neko room:开启 NEKO_IMPLICIT_CONTROL
docker compose运行的neko:在compose文件的环境变量加上 NEKO_IMPLICIT_CONTROL: true

复制粘贴

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

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

作者为了安全默认禁止下载文件 禁止安装扩展(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

{
  "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 原本严格的政策

#容器ID'13f53eaa2252' 记得替换为你自己的
#/root/policies.json 也是替换为你文件路径
docker cp /root/policies.json 13f53eaa2252:/etc/chromium/policies/managed/policies.json
然后就可以下载安装扩展了

本文转载自:tanglu