文章可能有所偏差,排版很烂,请各位看官谅解
前情提要
之前用的向日葵,发现画质调成最低了也还是很卡,延迟很高,鼠标动一下都可能没反应,所以想换个远程软件,发现了HopToDesk是可以自建服务脱离他们自家的服务,自己又有一台服务器,所以就想自己搭个,HopToDesk自己的服务应该在国外,太卡了。
前提
1.建议将向日葵和HopToDesk结合使用,HopToDesk经常抽风,没有向日葵稳定
2.如果平时只是简单的远程就可以用HopToDesk
3.HopToDesk中 1080P+平衡画质,播放B站视频挺糊,但帧率基本不降,远程方接收流量大概1.6Mbps,建议购买服务器带宽大过改值。
4.向日葵1年158元以下(有时做活动更便宜),如果购买服务器成本大过该值就不建议自建了,我是自己本来就有一台服务器,有闲置带宽,就拿来用了
服务器环境
这个是我自己的服务器
腾讯云
带宽:流量包 - 2000GB/月(带宽:12Mbps)
系统:CentOS 8.2
python3(放配置文件用的,如果有nginx则不需要此环境)
搭建方案
使用coturn构建stun和turn,使用HopToDesk的服务端做汇聚点,云端或本地放置配置文件
搭建过程
假设(以下值请带入修改)
云服务器公网ip是101.22.34.13,部署在腾讯云上
stun/turn端口开放是9083,最小访问端口49152 ,最大访问端口65535
stun/turn的用户名和密码是admin/123456
hopToDesk的server端口是9080
类型一:无域名纯IP搭建
-
1. 在服务端安装并配置coturn
安装coturn
yum install coturn
配置coturn
cd /etc/coturn
cp turnserver.conf turnserver.conf.default # 备份原始配置文件
vim turnserver.conf # 编辑配置文件
编辑配置文件,并在末尾添加以下内容
listening-port=9083 # 指定侦听的端口
listening-ip=0.0.0.0 # 云主机内网 IP 地址
external-ip=101.22.34.13 # 云主机的公网 IP 地址
realm=101.22.34.13 # 云主机的公网 IP 地址
user=admin:123456 # 访问 STUN/TURN 服务的用户名和密码。
min-port=49152 # 最小访问端口
max-port=65535 # 最大访问端口
运行服务
systemctl restart coturn.service
在"腾讯云"控制台防火墙上开放端口
9083/TCP、9083/UDP、49152-65535/TCP、49152-65535/UDP
下载"火狐浏览器"在网站上使用(Trickle ICE)测试是否联通,出现Done则是成功了
-
2. 搭建汇聚点
方案一和方案二的区别是是否需要依赖官方的服务器,远控端和被控端需要在同一个汇聚点服务器下才能被连接
-
方案一:部署HopToDesk的on-premises(自建服务)
官网on-premises页面:https://www.hoptodesk.com/on-premises
运行(将sh hsinstall.sh移除,不需要立即执行)
cd /home && curl -o hsinstall.sh -L https://www.hoptodesk.com/hs/hsinstall
https://www.hoptodesk.com/on-premises下载脚本后编辑脚本(将80修改为9080,将82修改为9082)
# 将80修改为9080,将82修改为9082
EOF
cat <<EOF > /home/hopsignal/hopsignal.sh
#!/bin/bash
cd /home/hopsignal
./hopsignal --ADDR 0.0.0.0:9080 --FEDLIST fedlist.txt --FEDADDR 0.0.0.0:9082 --FEDPWD 123456789 --LOGFILE hs.log
EOF
cat <<EOF > /home/hopsignal/hop-cron.sh
#!/bin/bash
FILESIZE=\$(stat -c%s "rs.log")
if [ $FILESIZE -ge 100000000 ]; then
/usr/bin/systemctl stop hopsignal.service
/usr/bin/systemctl start hopsignal.service
exit
fi
TESTSOCKET=\$(curl -s --max-time 5 -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: 0.0.0.0:9080" -H "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" -H "Sec-WebSocket-Version: 13" 0.0.0.0:9080)
if [[ $TESTSOCKET == *"Switching"* ]]; then
echo "WebSockets Online"
else
echo "WebSockets Offline"
/usr/bin/systemctl stop hopsignal.service
/usr/bin/systemctl start hopsignal.service
fi
执行脚本运行
sh hsinstall.sh
在"腾讯云"控制台防火墙上开放端口
9080/TCP
-
方案二:使用HopToDesk自己的汇聚点
汇聚点signal.hoptodesk.com:80,之后需要使用
-
3. 本地客户端连接
远控端和被控端执行相同操作
在官网https://www.hoptodesk.com/下载windows安装包,
安装后关闭hopToDesk所有进程
开始设置配置文件
方案一:使用远程配置文件
从url加载一个配置文件,这样不用担心被HopToDesk覆盖掉本地配置
如果服务器上没有nginx之类的,可以先用python起一个简单的server
在服务器任意位置创建文件夹(本次示例位置为/file)
nohup python3 -m http.server 9085 &
在文件夹下创建api.json文件,填入以下信息并保存:
{
"turnservers": [
{
"protocol": "turn",
"host": "101.22.34.13",
"port": "9083",
"username": "admin",
"password": "123456"
}
],
"rendezvous": {
"host": "101.22.34.13",
"port": "9080"
},
"winversion": "1.0.0",
"macversion": "1.0.0",
"linuxversion": "1.0.0",
"none": "none"
}
如果是用的方案二(即使用官方汇聚点)
则改成
{
"turnservers": [
{
"protocol": "turn",
"host": "101.22.34.13",
"port": "9083",
"username": "admin",
"password": "123456"
}
],
"rendezvous": {
"host": "signal.hoptodesk.com",
"port": "80"
},
"winversion": "1.0.0",
"macversion": "1.0.0",
"linuxversion": "1.0.0",
"none": "none"
}
在"腾讯云"控制台防火墙上开放端口
9085/TCP
打开HopToDesk,选择网络,填入地址,自动下载json
然后就可以了
方案二:使用本地配置文件
打开%appData%\HopToDesk\config,新建文件api.json,填写以下信息
{
"turnservers": [
{
"protocol": "turn",
"host": "101.22.34.13",
"port": "9083",
"username": "admin",
"password": "123456"
}
],
"rendezvous": {
"host": "101.22.34.13",
"port": "9080"
},
"winversion": "1.0.0",
"macversion": "1.0.0",
"linuxversion": "1.0.0",
"none": "none"
}
如果是用的方案二(即使用官方汇聚点)
则改成
{
"turnservers": [
{
"protocol": "turn",
"host": "101.22.34.13",
"port": "9083",
"username": "admin",
"password": "123456"
}
],
"rendezvous": {
"host": "signal.hoptodesk.com",
"port": "80"
},
"winversion": "1.0.0",
"macversion": "1.0.0",
"linuxversion": "1.0.0",
"none": "none"
}
删除同目录下HopToDesk.toml和HopToDesk2.toml文件
启动HopToDesk
如果显示就绪就是已经完成了,如果显示未连接就等会儿
注意:显示服务没有启动不要点击启动服务,会导致HopToDesk使用官方配置,关掉重新开启,然后删掉HopToDesk.toml和HopToDesk2.toml
查看日志,会发现已经连接成功了(日志路径:%appData%\HopToDesk\log\HopToDesk_rCURRENT.log)
这个时候就可以远控了
如果觉得有点卡,可以把signal.hoptodesk.com的dns改成0.0.0.0