[ English / 中文 ]
为 CrossDesk 设计的服务端,支持WSS加密连接,使用SQLite3存储用户信息。
依赖:
编译
git clone https://github.com/kunkundi/crossdesk-server.git
cd crossdesk-server
xmake b crossdesk_server
# 切换编译模式
xmake f -m debug/release
# 可选编译参数
-r :重新构建目标
-v :显示详细的构建日志
-y :自动确认提示
# 示例
xmake b -vy crossdesk_server
更多使用方法可参考 Xmake官方文档 。
cd docker
sudo docker build -t image-name .
sudo docker run -d \
--name crossdesk_server \
--network host \
-e EXTERNAL_IP=xxx.xxx.xxx.xxx \
-e INTERNAL_IP=xxx.xxx.xxx.xxx \
-e CROSSDESK_SERVER_PORT=xxxx \
-e COTURN_PORT=xxxx \
-e MIN_PORT=xxxxx \
-e MAX_PORT=xxxxx \
-v /var/lib/crossdesk:/var/lib/crossdesk \
-v /var/log/crossdesk:/var/log/crossdesk \
crossdesk/crossdesk-server:v1.1.3上述命令中,用户需注意的参数如下:
参数
- EXTERNAL_IP:服务器公网 IP , 对应 CrossDesk 客户端自托管服务器配置中填写的服务器地址
- INTERNAL_IP:服务器内网 IP
- CROSSDESK_SERVER_PORT:自托管服务使用的端口,对应 CrossDesk 客户端自托管服务器配置中填写的服务器端口
- COTURN_PORT: COTURN 服务使用的端口, 对应 CrossDesk 客户端自托管服务器配置中填写的中继服务端口
- MIN_PORT/MAX_PORT:COTURN 服务使用的端口范围,例如:MIN_PORT=50000, MAX_PORT=60000,范围可根据客户端数量调整。
-v /var/lib/crossdesk:/var/lib/crossdesk:持久化数据库和证书文件到宿主机-v /var/log/crossdesk:/var/log/crossdesk:持久化日志文件到宿主机
示例:
sudo docker run -d \
--name crossdesk_server \
--network host \
-e EXTERNAL_IP=114.114.114.114 \
-e INTERNAL_IP=10.0.0.1 \
-e CROSSDESK_SERVER_PORT=9099 \
-e COTURN_PORT=3478 \
-e MIN_PORT=50000 \
-e MAX_PORT=60000 \
-v /var/lib/crossdesk:/var/lib/crossdesk \
-v /var/log/crossdesk:/var/log/crossdesk \
crossdesk/crossdesk-server:v1.1.3注意:
- 服务器需开放端口:COTURN_PORT/udp,COTURN_PORT/tcp,MIN_PORT-MAX_PORT/udp,CROSSDESK_SERVER_PORT/tcp。
- 如果不挂载 volume,容器删除后数据会丢失
- 证书文件会在首次启动时自动生成并持久化到宿主机的
/var/lib/crossdesk/certs路径下 - 数据库文件会自动创建并持久化到宿主机的
/var/lib/crossdesk/db/crossdesk-server.db路径下 - 日志文件会自动创建并持久化到宿主机的
/var/log/crossdesk/路径下
权限注意:如果 Docker 自动创建的目录权限不足(属于 root),容器内用户无法写入,会导致:
- 证书生成失败,容器启动脚本会报错退出
- 数据库目录创建失败,程序会抛出异常并崩溃
- 日志目录创建失败,日志文件无法写入(但程序可能继续运行)
解决方案:在启动容器前手动设置权限:
sudo mkdir -p /var/lib/crossdesk /var/log/crossdesk
sudo chown -R $(id -u):$(id -g) /var/lib/crossdesk /var/log/crossdesk在宿主机的 /var/lib/crossdesk/certs 路径下可找到证书文件 crossdesk.cn_root.crt,下载到你的客户端主机,并在客户端的自托管服务器设置中选择相应的证书文件路径。