配置中继服务器
RustDesk Pro - 使用docker安装具有地理位置的附加中继服务器
Note
您可以在全球运行多个中继服务器,并利用地理位置自动使用最近的中继服务器,从而在连接远程计算机时获得更快的体验。hbbs
每隔几秒钟自动检查这些中继服务器是否在线,它只选择在线的中继服务器。
Note
您需要私钥对
id_ed25519
和id_ed25519.pub
。
安装步骤
- 如果已安装docker,通过SSH连接到您的服务器并为hbbr创建卷:
# docker volume create hbbr
卷hbbr应该位于/var/lib/docker/volumes/hbbr/_data
。
- 将私钥对复制到卷位置,在本例中我们将使用SCP复制文件。
命令语法为scp <路径/文件名> 用户名@服务器:</目标/路径>
。
# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
- 使用先前创建的卷部署hbbr容器。该卷包含运行私有中继服务器所需的私钥对。
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _
- 检查运行日志以验证hbbr正在使用您的密钥对运行:
# docker logs hbbr
INFO [src/common.rs:121] **Private key comes from id_ed25519**
NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :21117
根据您的操作系统,您可能希望使用防火墙阻止/允许IP。
在我们的例子中,运行Ubuntu时,我们希望允许任何TCP连接到端口21117和21119。
防火墙配置
# sudo ufw allow proto tcp from any to any port 21117,21119
启用防火墙
# sudo ufw enable
检查状态
# ufw status
Status: active
To Action From
-- ------ ----
21117,21119/tcp ALLOW Anywhere
21117,21119/tcp (v6) ALLOW Anywhere (v6)
使用Web控制台为地理位置配置RustDesk Pro
注册并下载GeoLite2 City数据库文件
要使用地理位置,hbbs需要访问MaxMind GeoLite2 City数据库。该数据库是免费的,您可以注册下载文件并获取API密钥。
如果您使用安装脚本在Linux机器上安装了RustDesk Pro,mmdb
文件需要移动到/var/lib/rustdesk-server/
。
对于Docker安装,文件应该在部署容器时映射到/root
的卷中。
获取API密钥以自动化流程 - Linux服务器
您需要定期更新此文件,我们可以使用cronjob来执行。您需要一个API密钥来访问下载链接,这是免费的。
转到Manage License Keys
并生成新的许可证密钥。
您可以通过几种方式自动化下载过程,但您可以将以下命令添加到您的crontab中,将{您的访问密钥}替换为您从上一步获得的API密钥。
/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={您的访问密钥}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb'
在RustDesk Pro Web控制台中更改设置
将您的中继服务器IP地址或DNS名称(从版本1.1.11开始支持DNS)添加到Relay Servers
。不需要端口,显式使用21117
端口。
通过添加服务器IP地址和服务器所在位置的坐标来添加地理覆盖。
点击Reload Geo
,您的列表应该类似于此。
要确认结果,在点击Reload Geo
时检查您的hbbs日志,您应该看到显示中继服务器IP地址及其坐标的消息。
如果您在Linux机器上运行RustDesk Pro,请使用命令
RUST_LOG=debug ./hbbs
查看日志。如果您在Docker容器上运行,请使用docker logs hbbs
。
RUST_LOG=debug ./hbbs
INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb
INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx
[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx
[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx
GEOIP_FILE loaded, #overrides 3
INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"]
NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))]
您还可以直接在hbbr实例上确认中继请求,只需检查容器日志即可。
# docker logs hbbr
INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired
INFO [src/relay_server.rs:442] Both are raw