Screego是一个开源的用go语言写的屏幕投影软件,可以以高质量低延迟将你的屏幕演示给其他人看,screego带有身份验证,集成了TURN服务方便NAT遍历。有了它我们可以自建一个便捷的共享屏幕服务器。共享看片,指日可待。

openmeetings共享屏幕操作Java 屏幕共享源代码_反向代理

项    目

  1. 项目地址:https://github.com/screego/server
  2. 文档地址:https://screego.net/#/


Screego提供了docker、多个平台的可执行二进制文件和源码的下载。

演示说明


Screego强制要求使用TLS,我这里演示使用nginx反向代理二进制文件,也可以直接在Screego内部使用,自行研究文档。 下载

从github的releases页面下载适合 centos 的 linux _amd64.tar.gz包

wget https://github.com/screego/server/releases/download/v1.0.7/screego_1.0.7_linux_amd64.tar.gz


解压

解压之后包含"screego","screego.config.example"这两个文件,"screego"是二进制可执行文件,"screego.config.example"是config文件配置范例。 编辑配置文件

"screego.config.example"是包含所有的参考案例。新建一个screego.config,注意不要打成screen。写入以下配置:

# 服务器公网IP
SCREEGO_EXTERNAL_IP=X.X.X.X
# 设置密钥,任意随机字符就行
SCREEGO_SECRET=8w6EJ183hqFieprl
# 后续使用nginx反向代理,这里关闭内部的TLS,如果要使用内部的TLS,就true
SCREEGO_SERVER_TLS=false
# 监听端口,之后使用反向代理,这里设置监听在本地
SCREEGO_SERVER_ADDRESS=127.0.0.1:5050
# TURN监听端口
SCREEGO_TURN_ADDRESS=0.0.0.0:3478
# 使用反向代理这里必须启用
SCREEGO_TRUST_PROXY_HEADERS=true
# 参数值all表示所有请求都需要身份验证。如果不需要验证,任何人都可以自由建立房间,改为true
SCREEGO_AUTH_MODE=all
# 修改为使用的域名,记得是https
SCREEGO_CORS_ALLOWED_ORIGINS=https://screego.ExampleDomainName.cn
# 日志信息
SCREEGO_LOG_LEVEL=info
# 用于身份验证的文件
SCREEGO_USERS_FILE=user


建立用户

上面配置文件最后一行,我们使用user,touch新建一个user文件。在包含screego二进制文件里的文件夹里执行

./screego hash --name "linuxprobe" --pass "password"


对应的 linuxprobe 和 password 可以换成自定义的值。执行上述 命令 应该有类似的输出:

linuxprobe:$2a$12$9YgqeiL2MC2skKCj/ulpruOAlga5GdgXBECfubZCuapJGhGmQTuly


把输出内容写入到user文件里。 配置反向代理

直接使用的nginx,可以编辑对应的conf配置文件,如screego.conf文件,反向代理写入以下配置,注意替换域名:

server {
listen 80;
server_name screego.ExampleDomainName.cn;
location / {
proxy_pass http://127.0.0.1:5050;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect http:// $scheme://;
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 http;
proxy_set_header Host $http_host;
}
}


如果使用宝塔,需要在站点新建反向代理到5050端口,在编辑反向代理文件,加入三条宝塔默认反向代理配置漏掉的三条:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect http:// $scheme://;

openmeetings共享屏幕操作Java 屏幕共享源代码_反向代理_02

openmeetings共享屏幕操作Java 屏幕共享源代码_linux_03


TLS

Screego强制要求使用TLS,Nginx也得强制配置SSL。Nginx配置https证书都是常规操作,不在赘述。

使用


所有配置完成之后,使用 命令 启动:

./screego serve

openmeetings共享屏幕操作Java 屏幕共享源代码_屏幕共享源码_04


访问域名


openmeetings共享屏幕操作Java 屏幕共享源代码_github_05

openmeetings共享屏幕操作Java 屏幕共享源代码_反向代理_06

openmeetings共享屏幕操作Java 屏幕共享源代码_github_07

openmeetings共享屏幕操作Java 屏幕共享源代码_linux_08

openmeetings共享屏幕操作Java 屏幕共享源代码_屏幕共享源码_09

openmeetings共享屏幕操作Java 屏幕共享源代码_屏幕共享源码_10

openmeetings共享屏幕操作Java 屏幕共享源代码_反向代理_11

openmeetings共享屏幕操作Java 屏幕共享源代码_屏幕共享源码_12

openmeetings共享屏幕操作Java 屏幕共享源代码_github_13

END

Linux命令大全:www.linuxcool.com