diff --git a/spk/INFO b/spk/INFO index 49671af..1a71c0d 100755 --- a/spk/INFO +++ b/spk/INFO @@ -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 & 裙下孤魂" diff --git a/spk/WIZARD_UIFILES/install_uifile b/spk/WIZARD_UIFILES/install_uifile index ce55fab..119089d 100755 --- a/spk/WIZARD_UIFILES/install_uifile +++ b/spk/WIZARD_UIFILES/install_uifile @@ -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, + } }] + }] + }] diff --git a/spk/scripts/installer b/spk/scripts/installer index af9f033..2e1332a 100755 --- a/spk/scripts/installer +++ b/spk/scripts/installer @@ -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 diff --git a/spk/scripts/start-stop-status b/spk/scripts/start-stop-status index ea0bf88..260ab36 100755 --- a/spk/scripts/start-stop-status +++ b/spk/scripts/start-stop-status @@ -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