自己的云浏览器!使用Neko来搭建一个在线浏览器
引言 - 关于Neko
Neko V3 是一个开源、自托管的虚拟浏览器解决方案,允许多位用户共享并协同操作同一个浏览器实例,具备低延迟的音视频流实时传输,同时支持 GPU 加速、扩展和书签持久化等定制功能。
它定位于远程浏览、协作观影、Web 开发测试以及安全云端上网等应用场景,可通过 Linux/Docker、主流云平台(如 AWS、Azure、Google Cloud)以及树莓派等 ARM 设备进行部署,提供高度灵活、可控且便捷的浏览体验。
同时,Neko的网络环境也取决于部署设备的网络环境,可以巧妙地绕过一些网络限制。它也支持多人同时观看/操作。
但是缺点就是对服务器资源消耗稍高,不过因为要运行一套完整的最小桌面环境和浏览器,这也就显得挺正常了。
本文将记录我在Ubuntu 24.04.2 LTS服务器上搭建 Neko + Google Chrome 云浏览器的过程。
环境准备
- 一台具有公有 IP 地址的服务器或 VPS
- 能够使用ssh登录
- 支持Docker
程序部署
Neko是基于Docker镜像的,安装部署非常简单,只需拉取镜像并进行简单配置。
本文中将以Ubuntu 24.04.2 LTS作为演示环境
安装并配置Docker环境
如果你已经安装了Docker,请直接前往下一步
安装 Docker :
1
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
安装 Docker Compose 插件 :
1
2sudo apt-get update
sudo apt-get install docker-compose-plugin
自定义docker-compose.yaml
创建
/opt/neko
文件夹1
sudo mkdir /opt/neko
创建
docker-compose.yaml
1
2cd /opt/neko
vim docker-compose.yaml写入以下内容
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
27services:
neko:
image: "ghcr.io/m1k1o/neko/google-chrome:latest"
restart: "always"
shm_size: "2gb"
cap_add:
- SYS_ADMIN
ports:
- "8080:8080" # 映射到8080端口
- "52000-52100:52000-52100/udp"
volumes:
- ./profile:/home/neko/.config/google-chrome # persist chrome settings
- ./policy.json:/etc/opt/chrome/policies/managed/policies.json
environment:
NEKO_DESKTOP_SCREEN: '1920x1080@45'
NEKO_DESKTOP_UPLOAD_DROP: true
NEKO_DESKTOP_FILE_CHOOSER_DIALOG: true
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: "user" # 注意更改访客密码
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: "admin" # 注意更改管理员密码
NEKO_WEBRTC_EPR: 52000-52100
NEKO_WEBRTC_ICELITE: 1
NEKO_PLUGINS_ENABLED: true
NEKO_CHAT_ENABLED: true
NEKO_FILETRANSFER_ENABLED: true
NEKO_FILETRANSFER_DIR: "./uploads"
NEKO_FILETRANSFER_REFRESH_INTERVAL: "30s"
LANGUAGE: "ZH-CN.UTF-8" # 为浏览器其用中文界面硬件加速
如果你的服务器有显卡,那么可以配置GPU加速,详情参考官方文档:
- Raspberry Pi GPU 加速: https://neko.m1k1o.net/docs/v3/installation/examples#raspberry-pi
- Nvidia GPU 加速: https://neko.m1k1o.net/docs/v3/installation/examples#nvidia
创建配置文件夹并设置权限
Neko默认会将浏览器配置存放在容器内,这意味着当停止容器时,我们对浏览器设置或浏览历史记录所做的任何更改都将丢失。这是因为容器是临时的,不会跨会话保留数据。
而且Neko默认会配置浏览器策略文件,对于个人使用这个非常没有必要。
创建浏览器配置文件夹
1 | mkdir ./profile |
创建空的浏览器策略文件以禁用浏览器策略
1 | touch policy.json |
设置所有者为neko用户
1 | sudo chown -R 1000:1000 ./policy.json |
设置Nginx反向代理以支持HTTPS
你需要为你的域名添加一个子域名,我以neko.etaris.moe
为例进行演示。
完整的Nginx server配置文件:
1 | server { |
测试配置并重启Nginx服务
1 | sudo nginx -t |
万事俱备,拉取并启动Docker容器
1 | cd /opt/neko/ # 确保位于正确目录下 |
接下来,docker会自动拉取镜像并启动容器,在这个过程中会下载近700MB的文件,注意你的磁盘空间和流量消耗。
启动好之后,在浏览器访问你的域名,输入配置文件中定义的密码(用户名任意),便可以进入云浏览器: