Rock Sun
工具

n.eko

通过 WebRTC 使用 VSCode

n.eko自称是一个利用 WebRTC 技术的在 Docker 中运行的浏览器,但实际上,它可以运行任何在 Linux 上可以运行的程序,包括 VSCode 。

有一个 neko-apps 项目,其中包括了一些封装好的 neko 应用,其中虽然列出了 vscode,但是在官方镜像里并没有列出,但是文档中给出了如何自己构建 vscode 镜像。

构建 neko vscode 镜像

确保你的 Linux 下已经准备好了 Docker。

下载 neko-apps 项目,然后在项目根目录命令行中执行:

./build  --application vscode --base_image m1k1o/neko:base

如果一切正常,就会出现构建出来的镜像 tag,可以使用 docker tag 命令改成你自己的,推送到你的镜像仓库。

运行 neko vscode 镜像

准备 docker-compose.yaml

services:
  neko:
    image: "[your-neko-vscode-image-tag]"
    restart: "unless-stopped"
    shm_size: "2gb"
    ports:
      - "8080:8080"
      - "52000-52100:52000-52100/udp"
    environment:
      NEKO_DESKTOP_SCREEN: 1920x1080@30
      NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko
      NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: admin
      NEKO_WEBRTC_EPR: 52000-52100
      NEKO_WEBRTC_ICELITE: 1
      NEKO_NAT1TO1: [your-host-ip-address]
      NEKO_CERT: /certs/cert.pem
      NEKO_KEY: /certs/key.pem
    privileged: true
    volumes:
      - /volume3/docker/neko/certs/:/certs/:ro

需要注意的是 NEKO_NAT1TO1 应该是你的 Docker 主机的 IP 。

为了实现虚拟桌面的剪切板互通,需要采用 HTTPS 方式访问,这就需要配置证书。可以使用以下命令创建自签名的证书:

# 生成私钥
openssl genrsa -out key.pem 2048

# 生成证书签名请求(CSR)
openssl req -new -key key.pem -out cert.csr

# 生成自签名证书(有效期365天)
openssl x509 -req -days 365 -in cert.csr -signkey key.pem -out cert.pem

将证书复制到合适的位置,就可以运行 docker compose 了。

通过浏览器访问 https://[your-host-ip-address]:8080,默认会有两个用户:

  • neko
  • admin

密码在 docker-compose.yaml 已经指定。输入 admin 账号密码,即可看到 VSCode 了: