Neko一个虚拟浏览器屏幕远程共享/远程操作的Docker应用

Neko介绍&应用

1、它是一个Docker应用,基于WebRTC技术实现音视频画面共享浏览器页面

2、运行Neko后发送一个网址给其他人,所有进入房间的人都可看到浏览器画面

2.1、管理员可以将浏览器控制权给进入房间的其他用户,实现房间内任何人都可以远程控制这个浏览器

2.2、支持rtmp推流,可以将内容直接推流到直播服务器

3、支持firefox、chrome、chromium、edge等内核浏览器,支持在虚拟浏览器中上传下载文件(测试时chrome内核不能上传下载,chromium内核可以实现,firefox内核未测试)

4、理论上可以在远程vps上安装Neko实现访问特定网站的功能,比如一般海外vps可以访问github,你可以直接访问Neko的url然后在里面的虚拟浏览器里面输入github的地址进行访问

5、如果有某些业务系统需要暂借账号给别人试用,又担心对方恶意操作,有了Neko就不用担心这种事情了,可以自己在虚拟浏览器里面先登录系统,然后把访问地址发给别人并给他控制虚拟浏览器的权限,这样所有的操作都能看到了!你甚至可以开个录屏软件将对方操作录下来!

遇到的几个坑

1、Neko内的虚拟浏览器是英文的,不支持中文输入法,可以利用右下角的剪切板功能实现本机和虚拟浏览器的复制粘贴功能!

2、测试时用的是虚拟机+宝塔的Centos环境,现在docker镜像拉取有点问题,一直失败后面换了Docker镜像源,这些镜像源安全性不保证ok,用来学习问题不大,而且经常会失效需要自己去网上找最新可用的镜像地址

{
  "registry-mirrors": [
    "https://docker.1panel.dev",
    "https://docker.fxxk.dedyn.io",
    "https://docker.xn--6oq72ry9d5zx.cn",
    "https://docker.m.daocloud.io",
    "https://a.ussh.net",
    "https://docker.zhai.cm"
  ]
}

3、用虚拟机时发现一个问题通病,一旦你使用了虚拟机挂起功能,恢复系统后docker应用多半是无法访问的,看起来应用都正常启动了,但实际就是不行,这时候只能重启Docker服务后再重启Docker应用!之前装zabbix的时候貌似也遇到过这种问题,都是重新装应用或恢复快照来解决的!具体什么原因网上说的net.ipv4.ip_forward = 1我看了下也是没问题的,后面也没深究原因了直接重启大法。

4、neko没有用户名管理,全是根据密码来区分角色的,登录时用户名随便输入,配置中NEKO_PASSWORD的值是普通密码,NEKO_PASSWORD_ADMIN的值是管理员密码。

在宝塔中安装Neko

1、创建编排模板chromium内核

version: "3.4"
services:
  neko:
    image: "m1k1o/neko:chromium"
    volumes:
      - '/root/policies.json:/etc/chromium/policies/managed/policies.json'
    cap_add:
      - SYS_ADMIN
    restart: "unless-stopped"
    shm_size: "2gb"
    ports:
      - "38080:8080"  # 使用38080端口,如果冲突了可以换
      - "52000-52100:52000-52100/udp"
    
    environment:
      NEKO_SCREEN: 1920x1080@30
      NEKO_PASSWORD: neko  # 普通用户密码
      NEKO_PASSWORD_ADMIN: admin  # 管理员密码
      NEKO_EPR: 52000-52100
      NEKO_FILE_TRANSFER_ENABLED: true
      NEKO_CONTROL_PROTECTION: true # 控制保护,房间内至少一名管理员才允许控制
      NEKO_FILE_TRANSFER_PATH: /home/neko/Downloads
      NEKO_NAT1TO1: 192.168.204.128 
      NEKO_ICELITE: 1

2、在宝塔服务器创建/root/policies.json用来挂载到Docker里面(对应上面配置文件中的volumes:
- '/root/policies.json:/etc/chromium/policies/managed/policies.json')

{
  "DownloadRestrictions": 0,
  "AllowFileSelectionDialogs": true,
  "URLAllowlist": [
    "file:///home/neko/Downloads"
  ],
  "DefaultCookiesSetting": 1,
  "RestoreOnStartup": 1
}

3、在宝塔上编排容器并启动

启动后,可以在容器中看到具体的容器信息了

4、登录,访问http://192.168.204.128:38080/

使用命令行安装Neko

上面是使用容器编排的方式安装,也可以使用docker命令一句话安装(本命令行挂载的磁盘映射,所以请确保/root/policies.json文件存在),请注意使用特权模式privileged=true,因为我用cap_add=SYS_ADMIN这个参数直接就报错了,暂时没有找到解决办法。

docker run -d 
   --privileged=true
   --restart unless-stopped 
   --name nekotest 
   --shm-size="2gb" 
   -v /root/policies.json:/etc/chromium/policies/managed/policies.json
   -p 38080:8080 
   -p 52000-52100:52000-52100/udp 
   -e NEKO_PASSWORD='neko' 
   -e NEKO_PASSWORD_ADMIN='admin' 
   -e NEKO_NAT1TO1=192.168.204.128 
   -e NEKO_SCREEN=1920x1080@30 
   -e NEKO_ICELITE=1 
   -e NEKO_FILE_TRANSFER_ENABLED=true
   -e NEKO_CONTROL_PROTECTION=true
   -e NEKO_EPR=52000-52100 
   m1k1o/neko:chromium


其他备忘

镜像名浏览器备注
m1k1o/neko:latestFirefox默认
m1k1o/neko:firefoxFirefox默认
m1k1o/neko:chromiumChromium需要以系统管理员运行
m1k1o/neko:google-chromeGoogle Chrome需要以系统管理员运行
m1k1o/neko:ungoogled-chromiumUngoogled Chromium需要以系统管理员运行
m1k1o/neko:microsoft-edgeMicrosoft Edge需要以系统管理员运行
m1k1o/neko:vlcVLC Video Player需要以系统管理员运行
m1k1o/neko:operaOpera Browser需要以系统管理员运行
镜像版本

policies.json其他配置项(来自网络,未验证)

{
"AutofillAddressEnabled": false,
"AutofillCreditCardEnabled": false,
"BrowserSignin": 0,
"DefaultNotificationsSetting": 2,
"DeveloperToolsAvailability": 2,
"EditBookmarksEnabled": true,
"FullscreenAllowed": true,
"IncognitoModeAvailability": 1,
"SyncDisabled": true,
"AutoplayAllowed": true,
"BrowserAddPersonEnabled": false,
"BrowserGuestModeEnabled": false,
"DefaultPopupsSetting": 2,
"DownloadRestrictions": 0,
"VideoCaptureAllowed": true,
"AllowFileSelectionDialogs": true,
"PromptForDownloadLocation": false,
"BookmarkBarEnabled": true,
"PasswordManagerEnabled": true,
"BrowserLabsEnabled": true,
"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"
]
}

参考地址:https://www.886699.xyz/4081.html

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/neko-docker-remote-web-browser/

赞赏

微信赞赏支付宝赞赏

发表评论