This commit is contained in:
rustdesk
2021-04-04 01:44:14 +08:00
parent 005720b5b2
commit 600fcfbe3b
4 changed files with 49 additions and 36 deletions

View File

@@ -1,7 +1,7 @@
package="RustDesk Server"
version="1.1.3"
description="RustDesk是一款可以完全由用户定义的远程桌面软件。您可以使用RustDesk服务器自建中继服务器先尝试打洞加密直连不行再由服务器转发。此服务需要三个端口NAT测试端口21115(tcp)ID/注册端口21116(tcp/udp) ,中继端口:21117(tcp)"
displayname="RustDesk服务器"
description="RustDesk is a remote desktop software allowing your own rendezvous/relay server. It attempts to make direct connect via TCP hole punch first, and then forward via relay server if direct connection fails. 4 ports are used: NAT test port: 21115(tcp), ID/rendezvous port: 21116(tcp/udp), relay port: 21117(tcp). Key: ()"
displayname="RustDesk Rendezvous/Relay Server"
maintainer="CarrieZ Studio"
maintainer_url="https://rustdesk.com/zh/"
distributor="RustDesk & 裙下孤魂"

View File

@@ -2,33 +2,40 @@
"step_title": "Install Settings",
"items": [{
"type": "textfield",
"desc": "RustDesk中继服务器端口",
"subitems": [{
"key": "hbbr_port",
"desc": "TCP",
"defaultValue": "21117",
"validator": {
"allowBlank": false,
"regex": {
"expr": "/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/",
"errorText": "端口号必须为数字"
}
}
}]
}, {
"type": "textfield",
"desc": "RustDesk ID/注册服务器端口",
"desc": "Listening Ports",
"subitems": [{
"key": "hbbs_port",
"desc": "ID/注册服务端口TCP/UDP",
"desc": "RustDesk ID Server Port",
"defaultValue": "21116",
"validator": {
"allowBlank": false,
"regex": {
"expr": "/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/",
"errorText": "端口号必须为数字"
"errorText": "Digit number only"
}
}
}, {
"key": "hbbr_port",
"desc": "RustDesk Relay Server Port",
"defaultValue": "21117",
"validator": {
"allowBlank": false,
"regex": {
"expr": "/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/",
"errorText": "Digit number only"
}
}
}]
}
},{
"type": "textfield",
"desc": "Only allow the client with the same key",
"subitems": [{
"key": "key",
"desc": "Key",
"defaultValue": "21117",
"validator": {
"allowBlank": True,
}
}]
}]
}]

View File

@@ -11,6 +11,7 @@ FWFILENAME="RustDesk_Server.sc"
[ "${hbbr_port}" == "" ] && hbbr_port="21117"
[ "${hbbs_port}" == "" ] && hbbs_port="21116"
[ "${key}" == "" ] && key=""
nat_port=`expr ${hbbs_port} - 1`
preinst() {
@@ -47,14 +48,16 @@ postinst() {
fi
# 添加应用配置
sed -i "s/中继端口21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/ID\/注册端口21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/NAT测试端口21115/NAT测试端口${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/relay port: 21117/relay port: ${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/ID\/rendezvous port: 21116/ID\/rendezvous port: ${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/NAT test port: 21115/NAT test port: ${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/Key: ()/Key: (${key})/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}"
sed -i "s/port=[^ ]*/port=${hbbr_port}/g" "${PACKAGE_BASE}/config/hbbr.conf"
sed -i "s/port=[^ ]*/port=${hbbs_port}/g" "${PACKAGE_BASE}/config/hbbs.conf"
sed -i "s/key=[^ ]*/key=${key}/g" "${PACKAGE_BASE}/config/hbbs.conf"
# 添加防火墙配置
cat "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >"/tmp/${FWFILENAME}"
@@ -141,9 +144,11 @@ postupgrade() {
hbbr_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbr.conf" port` >>/tmp/wakko.txt
hbbs_port=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" port` >>/tmp/wakko.txt
nat_port=`expr ${hbbs_port} - 1`
sed -i "s/中继端口21117/中继端口:${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
sed -i "s/ID\/注册端口21116/ID\/注册端口:${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
sed -i "s/NAT测试端口21115/NAT测试端口${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
key=`${GETKEYVALUE} "${PACKAGE_BASE}/config/hbbs.conf" key` >>/tmp/wakko.txt
sed -i "s/relay port: 21117/relay port: ${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
sed -i "s/ID\/rendezvous port: 21116/ID\/rendezvous port: ${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
sed -i "s/NAT test port: 21115/NAT test port: ${nat_port}/" "/var/packages/${PACKAGE_NAME}/INFO" >>/tmp/wakko.txt
sed -i "s/Key: ()/Key: (${key})/" "/var/packages/${PACKAGE_NAME}/INFO"
sed -i "s/21117/${hbbr_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
sed -i "s/21116/${hbbs_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt
sed -i "s/21115/${nat_port}/" "/var/packages/${PACKAGE_NAME}/scripts/${FWFILENAME}" >>/tmp/wakko.txt

View File

@@ -8,10 +8,11 @@ PACKAGE_NAME="RustDesk Server"
PACKAGE_BASE="/var/packages/${PACKAGE_NAME}/target"
HBBR_BIN="${PACKAGE_BASE}/bin/hbbr"
HBBR_PORT=`synogetkeyvalue "${PACKAGE_BASE}/config/hbbr.conf" port`
HBBR_LOG="${PACKAGE_BASE}/logs/hbbr.log"
HBBR_LOG="/var/log/hbbr.log"
HBBS_BIN="${PACKAGE_BASE}/bin/hbbs"
HBBS_PORT=`synogetkeyvalue "${PACKAGE_BASE}/config/hbbs.conf" port`
HBBS_LOG="${PACKAGE_BASE}/logs/hbbs.log"
KEY=`synogetkeyvalue "${PACKAGE_BASE}/config/hbbs.conf" key`
HBBS_LOG="/var/log/hbbs.log"
PACKAGE_ENABLED="/var/packages/${PACKAGE_NAME}/enabled"
PS_CMD="/bin/ps -w"
DSM_MAJORVERSION=`synogetkeyvalue /etc.defaults/VERSION majorversion`
@@ -44,7 +45,7 @@ running_hbbs() {
start() {
[ "$SYNOPKG_TEMP_LOGFILE" == "" ] && SYNOPKG_TEMP_LOGFILE="/var/log/rustdeskserver.start.log"
LANG=C cd "$PACKAGE_BASE" && (nohup "$HBBR_BIN" -p $HBBR_PORT > "$HBBR_LOG" 2>&1 &) && (nohup "$HBBS_BIN" -r 127.0.0.1 -p $HBBS_PORT > "$HBBS_LOG" 2>&1 &)
LANG=C cd "$PACKAGE_BASE" && (nohup "$HBBR_BIN" -p $HBBR_PORT -k "$KEY" > "$HBBR_LOG" 2>&1 &) && (nohup "$HBBS_BIN" -p $HBBS_PORT -k "$KEY" > "$HBBS_LOG" 2>&1 &)
i=0
@@ -61,14 +62,14 @@ start() {
# 检查hbbr进程状态
if ! running_hbbr ; then
echo -e "${sError}hbbr进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
echo -e "${sError}hbbr process not running" | tee -a $SYNOPKG_TEMP_LOGFILE
stop
return 1
fi
# 检查hbbs进程状态
if ! running_hbbs ; then
echo -e "${sError}hbbs进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
echo -e "${sError}hbbs process not running" | tee -a $SYNOPKG_TEMP_LOGFILE
stop
return 1
fi
@@ -90,7 +91,7 @@ stop() {
kill -9 $PID
sleep 5s
if running_hbbr ; then
echo "${sError}无法关闭hbbr进程 (pid=$PID)!" | tee -a $SYNOPKG_TEMP_LOGFILE
echo "${sError}Failed to kill hbbr process(pid=$PID)!" | tee -a $SYNOPKG_TEMP_LOGFILE
return 1
fi
fi
@@ -131,19 +132,19 @@ case $1 in
status)
# 检查套件开关
if [ ! -f "${PACKAGE_ENABLED}" ]; then
echo "${sError}套件没有开启" | tee -a $SYNOPKG_TEMP_LOGFILE
echo "${sError}package not started" | tee -a $SYNOPKG_TEMP_LOGFILE
exit 0
fi
# 检查hbbr进程状态
if ! running_hbbr ; then
echo "${sError}hbbr进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
echo "${sError}hbbr process killed" | tee -a $SYNOPKG_TEMP_LOGFILE
exit 1
fi
# 检查hbbs进程状态
if ! running_hbbs ; then
echo "${sError}hbbs进程已死" | tee -a $SYNOPKG_TEMP_LOGFILE
echo "${sError}hbbs process killed" | tee -a $SYNOPKG_TEMP_LOGFILE
exit 1
fi