改版通知

巨人肩膀网站已全新改版。若您仍依赖旧站功能或数据,欢迎联系我们,我们会协助处理。联系我们

一个自托管的虚拟浏览器,提供安全隐私的访问,支持移动端,Star 6.2K!

oP3us6Af1G1D4v7c7iIPkM-piUzQ2024年8月29日713 浏览

在以前写的一篇《一个尊重个人隐私的搜索引擎,可以私有化部署,Star 9.6+!》文中,我们介绍了一款隐私搜索-SearXNG。细心的同学应该也发现了,在SearXNG的设置中心,需要针对不同的搜索内容设置下采用那种搜索引擎。所以,本质上SearXNG不是浏览器,而是一种建设在很多搜索引擎之上的搜索引擎。

图片


但是很多时候,我们遇到以下的一些场景和需求的时候,还是需要在电脑上安装多个浏览器才能满足:

  • 多账号管理登录场景:在一些场景中,用户可能需要在同一台设备上同时采用多个账号登录一个系统,需要采用多个浏览器,登录不同的账号,防止账号间认证关联,登录冲突等现象;
  • 网络安全与隐私保护场景:需要多个浏览器提供隔离不同的浏览环境,需要设置不同的安全级别,网络代理等等;
  • 兼容性测试场景:多个浏览器可以模拟不同的浏览器访问系统,帮助开发或者测试人员进行网站兼容性测试和性能调试等。

比如,我经常听到的我们团队小伙伴在排查问题时说的一句话就是 “换个浏览器试试,看看问题还有没有” 。这个就是浏览器兼容性或者缓存导致系统页面出现了问题,这也导致了团队小伙伴的电脑基本都安装了3-5个浏览器。


  • 所以,今天给大家介绍的是一款基于Docker的虚拟浏览器,从此告别多浏览器切换的烦恼-Neko

Neko 介绍

一个自托管的虚拟浏览器,采用 WebRTC 技术提供服务,提供安全隔离的环境访问互联网、浏览网页、运行应用程序,同时支持多用户同时在线协作,适合团队共享、互动演示等场景。

图片

🏠  项目信息

#github地址
https://github.com/m1k1o/neko
#项目地址
https://neko.m1k1o.net/#/

图片

🚀功能特性

  • 虚拟浏览器环境:在 Docker 容器中运行,提供一个隔离的浏览器环境,增强安全性。
  • WebRTC 流式传输:使用 WebRTC 技术实时流式传输桌面环境,减少延迟,提供流畅的用户体验。
  • 多用户访问:支持多个用户同时访问同一个虚拟浏览器,适合团队协作和共享。
  • 协作互动性:用户不仅可以观看屏幕共享,还可以进行实时的交互控制。
  • 隐私保护:敏感数据如 cookies 不会传输到主机浏览器,仅共享视频流。
  • 跨平台兼容性:支持多种操作系统和设备,包含手机端。用户可以在不同平台上使用 n.eko。
  • 文本聊天功能:内置文本聊天系统,支持基本的 Markdown 语法。
  • 管理员权限:管理员可以执行踢出、禁止用户,以及控制房间的权限。
  • 剪贴板同步:在支持的浏览器上实现剪贴板内容的同步。
  • 持久设置:允许用户保存设置,以便在下次访问时保留个性化配置。
  • 文件传输:如果启用,支持双向文件传输功能。
  • 无需客户端:用户无需下载客户端即可使用,直接通过浏览器访问。

🛠 Demo演示

图片

Neko 安装

Neko提供了Docker安装,并且支持通过环境变量设置不同的功能。目前支持Firefox、Chromium、VLC、Raspberry Pi。

一、部署

  • Firefox版本

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_NAT1TO1: <your-IP>
  • Chromium
version: "3.4"
services:
  neko:
    image: "m1k1o/neko:chromium"
    restart: "unless-stopped"
    shm_size: "2gb"
    ports:
      - "8080:8080"
      - "52000-52100:52000-52100/udp"
    cap_add:
      - SYS_ADMIN
    environment:
      NEKO_SCREEN: '1920x1080@30'
      NEKO_PASSWORD: neko
      NEKO_PASSWORD_ADMIN: admin
      NEKO_EPR: 52000-52100
      NEKO_NAT1TO1: <your-IP>
  • VLC
version: "3.4"
services:
  neko:
    image: "m1k1o/neko:vlc"
    restart: "unless-stopped"
    shm_size: "2gb"
    volumes:
      - "<your-video-folder>:/video" 
    ports:
      - "8080:8080"
      - "52000-52100:52000-52100/udp"
    cap_add:
      - SYS_ADMIN
    environment:
      NEKO_SCREEN: '1920x1080@30'
      NEKO_PASSWORD: neko
      NEKO_PASSWORD_ADMIN: admin
      NEKO_EPR: 52000-52100
      NEKO_NAT1TO1: <your-IP>

Raspberry Pi


version: "3.4"
services:
  neko:
    # see docs for more variants
    image: "ghcr.io/m1k1o/neko/arm-chromium:latest"
    restart: "unless-stopped"
    # increase on rpi's with more then 1gb ram.
    shm_size: "520mb"
    ports:
      - "8088:8080"
      - "52000-52100:52000-52100/udp"
    # note: this is important since we need a GPU for hardware acceleration alternatively
    #       mount the devices into the docker.
    privileged: true
    environment:
      NEKO_SCREEN: '1280x720@30'
      NEKO_PASSWORD: 'neko'
      NEKO_PASSWORD_ADMIN: 'admin'
      NEKO_EPR: 52000-52100
      # note: when setting NEKO_VIDEO, then variables NEKO_MAX_FPS and NEKO_VIDEO_BITRATE
      #       are not being used, you can adjust them in this variable.
      NEKO_VIDEO: |
        ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false
          ! video/x-raw,framerate=30/1
          ! videoconvert
          ! queue
          ! video/x-raw,framerate=30/1,format=NV12
          ! v4l2h264enc extra-controls="controls,h264_profile=1,video_bitrate=1250000;"
          ! h264parse config-interval=3
          ! video/x-h264,stream-format=byte-stream,profile=constrained-baseline
      NEKO_VIDEO_CODEC: h264

二、配置

Neko的配置可以通过docker-compose 文件的环境变量进行设置,以下是常用的配置项:

  • 是否开启文件传输功能
NEKO_FILE_TRANSFER_ENABLED: true
  • SSL证书配置

# SSL 证书的路径。
NEKO_CERT: /certs/cert.pem
#SSL 证书私钥的路径。
NEKO_KEY:/certs/key.pem
  • 有至少一名管理员在房间时用户才能获得控制权
NEKO_CONTROL_PROTECTION:false

Neko 使用

  • 复制粘贴文本

图片

  • 文件传输

图片

  • 普通用户登录

图片

  • 普通用户申请控制权

图片

  • 管理员授权控制

图片

  • 聊天互动

图片

  • 其他项设置

图片

  • 全屏效果

图片

  • 移动端访问效果

图片

最后

综上所述,Neko是一个多功能、高度可定制的虚拟浏览器解决方案,适用于多种不同的使用场景,无论是开发者测试应用、注重隐私的用户安全浏览,还是需要便捷分享浏览器访问权限的个人,都能很好的满足需求。如果你也感兴趣的话,不妨试试吧!