共享屏幕?在线会议?Screego来帮你

Screego是一款开源的屏幕共享与协作工具,它具有以下特点:
- 免费开源, 且无需注册任何账号,即用即抛
- 无需安装客户端,直接通过浏览器即可分享和观看屏幕画面
- 基于WebRTC实现端到端的加密通信,不需要服务器中转,不消耗带宽
- 无法直连时可基于内置TURN服务器进行中转,有效解决NAT穿透问题,提高连接成功率
最佳实践
- 为客户解决售后问题需要观看对方屏幕,安装远程控制或在线会议软件太麻烦?Screego一个连接搞定
- 小型在线会议,担心免费服务超时又不想开会员?Screego一个连接搞定
- 使用第三方工具担心数据泄露?Screego可以自己部署
如果你经常有向同事或客户分享屏幕又不想腾讯会议等付费产品时,可以试一试这个工具。这里已搭建了一个在线环境可直接使用也可以部署自己的Screego服务。

部署自己的Screego服务
XCR容器镜像仓库已收录Screego容器镜像,可以按以下流程通过docker来部署一套自己专用的服务。
常见问题摆在前面
- 只支持HTTPS访问 因为涉及录屏、WebRTC等技术,因此只能在https访问下才能获取到浏览器的权限支持,可以让Screego直接启用TLS监听,也可以通过Nginx反向代理实现。
- 没有NAT时需要中转 当用户处于没有NAT的内网环境时,用户间无法实现点对点传输数据,这时需要开启服务器TURN来提供中转服务
安装前的准备
打开终端环境执行以下命令,如果不需要认证,可忽略此步骤
1 2 3 4 5
| mkdir -p /mnt/screego && cd /mnt/screego
docker run --rm xiechaoyi.com/screego hash --name "test" --pass "123456" > users.txt
|
容器启动脚本
1 2 3 4 5 6 7
| docker run -d --name=screego \ -v /mnt/screego/data:/data \ -v /mnt/screego/config:/config \ -v /mnt/screego/users.txt:/users.txt:ro \ -e SCREEGO_USERS_FILE=/users.txt \ -p 5050:5050 -p 3478:3478/tcp -p 3478:3478/udp -p 50000-50200:50000-50200/udp \ --restart=unless-stopped xiechaoyi.com/screego
|
服务器防火墙需要放通端口:5050/tcp,3478/tcp,3478/udp,50000-50200/udp,如果你需要使用docker-compose的方式部署,可以点此下载配置文件
参数说明
Screego支持通过以下环境变量配置参数:
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 27 28 29
| SCREEGO_EXTERNAL_IP: 192.168.31.100,,2408:8264:127c:6db8:9c3:7fd4:6c06:256f
SCREEGO_EXTERNAL_IP: dns:screego.xiechaoyi.com@223.5.5.5
SCREEGO_AUTH_MODE: turn
SCREEGO_USERS_FILE: /users.txt
SCREEGO_SECRET: gbt0O96fltRY5uBG
SCREEGO_SERVER_TLS: false
SCREEGO_TLS_CERT_FILE: /config/server.crt
SCREEGO_TLS_KEY_FILE: /config/server.key
SCREEGO_TURN_PORT_RANGE: 50000:50200
SCREEGO_TRUST_PROXY_HEADERS: true
|
Nginx反向代理配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| server { listen 443 ssl; server_name your-domain.com;
ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem;
location / { proxy_pass http://screego:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
|