ออนพรีมิส

โฮสต์เครือข่าย HopToDesk ของคุณเองภายในองค์กรหรือบนคลาวด์

ตั้งค่าเครือข่ายของคุณเอง

ตั้งค่าเครือข่าย HopToDesk ของคุณเอง รองรับ Ubuntu 18 - 24 และ Windows

ระบบปฏิบัติการ:
Linux
LinuxWindows
การตั้งค่านี้ให้อุปกรณ์ในเครือข่าย LAN ของคุณเชื่อมต่อโดยตรง ขณะที่ใช้เซิร์ฟเวอร์รีเลย์เริ่มต้นของ HopToDesk สำหรับการเชื่อมต่อภายนอก
กำหนดค่าเซิร์ฟเวอร์ TURN ของคุณเองเพื่อควบคุมการเชื่อมต่อรีเลย์ได้อย่างเต็มที่ ต้องกรอกทุกช่อง

บทแนะนำการตั้งค่า

การโฮสต์ HopToDesk ด้วยตนเอง

คู่มือการตั้งค่าทีละขั้นตอน

ตัวติดตั้งทำอะไร ตรวจสอบอย่างไร และเชื่อมต่ออุปกรณ์ของคุณกับเครือข่ายของคุณเองอย่างไร

วิธีการทำงาน

HopToDesk ใช้เซิร์ฟเวอร์สองประเภท เซิร์ฟเวอร์สัญญาณช่วยให้อุปกรณ์ค้นหากันและเริ่มเซสชัน รีเลย์ TURN จะส่งผ่านข้อมูลเซสชันเฉพาะเมื่อไม่สามารถเชื่อมต่อโดยตรงระหว่างอุปกรณ์ทั้งสองได้

เซสชันเข้ารหัสแบบต้นทางถึงปลายทาง เซิร์ฟเวอร์ทั้งสองจึงอ่านหน้าจอ ไฟล์ หรือแชตของคุณไม่ได้ เซิร์ฟเวอร์สัญญาณเห็นเพียง ID อุปกรณ์และคำขอเชื่อมต่อเท่านั้น

ตัวติดตั้งในหน้านี้ตั้งค่าเซิร์ฟเวอร์สัญญาณ ข้อมูลผ่านรีเลย์จะไปที่รีเลย์ของ HopToDesk เป็นค่าเริ่มต้น หรือผ่านเซิร์ฟเวอร์ TURN ของคุณเองหากคุณระบุไว้

แดชบอร์ดยังคงเป็นบริการแบบโฮสต์ อุปกรณ์ในเครือข่ายที่โฮสต์เองยังเชื่อมโยงกับแดชบอร์ดเพื่อการจัดการได้ และแดชบอร์ดสามารถส่งการตั้งค่าเครือข่ายไปยังอุปกรณ์เหล่านั้น

ก่อนเริ่มต้น

  • เซิร์ฟเวอร์ที่ใช้ Ubuntu 18.04 ถึง 24.04 หรือเซิร์ฟเวอร์ Windows
  • สิทธิ์ root หรือ sudo บนเซิร์ฟเวอร์นั้น
  • ที่อยู่ IP หรือชื่อโฮสต์ที่อุปกรณ์ทุกเครื่องของคุณเข้าถึงได้ สำหรับเครือข่ายที่ไม่ออกนอก LAN ของคุณ ที่อยู่ส่วนตัวก็เพียงพอ
  • เปิดพอร์ต TCP 80 บนไฟร์วอลล์ของเซิร์ฟเวอร์สำหรับอุปกรณ์ของคุณ
  • หากต้องการรีเลย์ของตัวเอง: โฮสต์ พอร์ต ชื่อผู้ใช้ และรหัสผ่านของเซิร์ฟเวอร์ TURN ของคุณ

ขั้นตอนที่ 1: ติดตั้งเซิร์ฟเวอร์สัญญาณบน Linux

  1. เข้าสู่ระบบเซิร์ฟเวอร์ในฐานะ root หรือผู้ใช้ที่มีสิทธิ์ sudo
  2. ที่ด้านบนของหน้านี้ ให้เลือก LAN + Default Relay หรือ Custom TURN Server คำสั่งติดตั้งจะเปลี่ยนตามตัวเลือกของคุณ
  3. คลิก Copy วางคำสั่งลงในเทอร์มินัล แล้วกด Enter
  4. รอจนกว่าสคริปต์จะเสร็จ บนเซิร์ฟเวอร์ใหม่ การติดตั้งแพ็กเกจอาจใช้เวลาสองสามนาที
  5. เมื่อจบ สคริปต์จะแสดง HopSignal Setup Complete ตามด้วยที่อยู่เซิร์ฟเวอร์ของคุณและบล็อกการตั้งค่าเครือข่ายที่พร้อมใช้ เก็บผลลัพธ์นั้นไว้ คุณต้องใช้ในขั้นตอนที่ 3
cd /home && curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sh hsinstall.sh

หากใช้เซิร์ฟเวอร์ TURN ของคุณเอง ให้เพิ่มค่าทั้งสี่ต่อท้ายคำสั่งตามลำดับนี้: โฮสต์ พอร์ต ชื่อผู้ใช้ รหัสผ่าน

sh hsinstall.sh turn.example.com 443 myuser mypassword

สคริปต์ทำอะไร

  • ติดตั้งเครื่องมือสร้างและไลบรารี OpenSSL ที่จำเป็นด้วย apt
  • ดาวน์โหลดไบนารีของเซิร์ฟเวอร์สัญญาณไปยังโฟลเดอร์ /home/hopsignal
  • สร้างบริการ systemd ชื่อ hopsignal และเริ่มทำงานทุกครั้งที่บูต
  • เพิ่มตัวเฝ้าระวังใน cron ที่จะรีสตาร์ตบริการเมื่อหยุดตอบสนอง และหมุนเวียนไฟล์บันทึกเมื่อมีขนาดเกิน 100 MB
  • เปิดพอร์ต TCP 80 ใน ufw เมื่อ ufw ทำงานอยู่

ขั้นตอนที่ 1 บน Windows: เรียกใช้เซิร์ฟเวอร์สัญญาณ

  1. สลับสวิตช์ OS ที่ด้านบนของหน้านี้เป็น Windows แล้วคลิก Download คุณจะได้ไฟล์เดียวชื่อ hopsignal.exe
  2. สร้างโฟลเดอร์ เช่น C:\hopsignal แล้วย้าย hopsignal.exe เข้าไป
  3. ในโฟลเดอร์เดียวกัน ให้สร้างไฟล์ข้อความว่างชื่อ fedlist.txt
  4. เวอร์ชัน Windows ต้องการใบรับรอง TLS และคีย์ส่วนตัวในรูปแบบ PEM ด้วย ใช้คู่ใดก็ได้ รวมถึงแบบเซ็นเอง บันทึกเป็น cert.pem และ key.pem ในโฟลเดอร์เดียวกัน
  5. เปิด Command Prompt ในฐานะผู้ดูแลระบบแล้วเริ่มเซิร์ฟเวอร์
cd C:\hopsignal
hopsignal.exe --ADDR 0.0.0.0:80 --WSS_ADDR 0.0.0.0:443 --CERT cert.pem --KEY key.pem --FEDLIST fedlist.txt --FEDADDR 127.0.0.1:82 --FEDPWD 123456789 --LOGFILE hs.log

หากคุณมี OpenSSL คำสั่งนี้จะสร้างคู่ใบรับรองแบบเซ็นเองได้:

openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650 -subj "/CN=hopsignal"

อนุญาตพอร์ตใน Windows Firewall:

netsh advfirewall firewall add rule name="HopSignal" dir=in action=allow protocol=TCP localport=80

เพื่อให้เซิร์ฟเวอร์ทำงานต่อหลังรีบูต ให้ลงทะเบียนเป็นงานตามกำหนดเวลาที่เริ่มเมื่อบูตภายใต้บัญชี SYSTEM:

schtasks /Create /TN HopSignal /SC ONSTART /RU SYSTEM /TR "C:\hopsignal\hopsignal.exe --ADDR 0.0.0.0:80 --WSS_ADDR 0.0.0.0:443 --CERT C:\hopsignal\cert.pem --KEY C:\hopsignal\key.pem --FEDLIST C:\hopsignal\fedlist.txt --FEDADDR 127.0.0.1:82 --FEDPWD 123456789 --LOGFILE C:\hopsignal\hs.log"
schtasks /Run /TN HopSignal

ขั้นตอนที่ 2: ตรวจสอบว่าเซิร์ฟเวอร์กำลังทำงาน

บน Linux ให้ตรวจสอบบริการและไฟล์บันทึก:

sudo systemctl status hopsignal
tail /home/hopsignal/hs.log

บน Windows ให้ยืนยันว่าพอร์ตกำลังรับฟัง:

netstat -an | find ":80 "

ทดสอบพอร์ต WebSocket จากคอมพิวเตอร์เครื่องใดก็ได้ แทนที่ SERVER_IP ด้วยที่อยู่เซิร์ฟเวอร์ของคุณ เซิร์ฟเวอร์ที่ทำงานปกติจะตอบกลับ HTTP/1.1 101 Switching Protocols

curl -i -N -m 5 -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Version: 13" -H "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" http://SERVER_IP:80/

ขั้นตอนที่ 3: ชี้อุปกรณ์ของคุณไปที่เซิร์ฟเวอร์

อุปกรณ์แต่ละเครื่องอ่านการตั้งค่าเครือข่ายจากเอกสาร JSON ขนาดเล็ก นี่คือบล็อกที่ตัวติดตั้งแสดงไว้ตอนท้ายของขั้นตอนที่ 1 แทนที่ SERVER_IP ด้วยที่อยู่เซิร์ฟเวอร์ของคุณ และกรอกบล็อก TURN หากคุณใช้รีเลย์ของตัวเอง

{
  "turnservers": [
    {
      "protocol": "turn",
      "host": "turn.hoptodesk.com",
      "port": "443",
      "username": "hoptodesk",
      "password": "hoptodesk1234"
    }
  ],
  "rendezvous": {
    "host": "SERVER_IP",
    "port": "80"
  },
  "winversion": "1.0.0",
  "macversion": "1.0.0",
  "linuxversion": "1.0.0",
  "none": "none"
}

บล็อก rendezvous คือเซิร์ฟเวอร์สัญญาณของคุณ ใช้คีย์ rendezvousssl แทน rendezvous เมื่อเข้าถึงเซิร์ฟเวอร์ผ่าน TLS เช่น Cloudflare Worker หรือการติดตั้งบน AWS รายการ turnservers มีรีเลย์หนึ่งตัวหรือมากกว่า ตั้งโปรโตคอลเป็น turn สำหรับการเชื่อมต่อธรรมดา หรือ turn-tls สำหรับการเชื่อมต่อ TLS ปล่อยคีย์เวอร์ชันไว้ตามเดิม

มีสามวิธีในการส่งเอกสารนี้ให้อุปกรณ์ของคุณ เลือกวิธีที่เหมาะกับการติดตั้งของคุณ

ตัวเลือก A: วางไฟล์ api.json บนอุปกรณ์แต่ละเครื่อง

บันทึกเอกสารเป็นไฟล์ชื่อ api.json ในโฟลเดอร์การกำหนดค่าของ HopToDesk แล้วรีสตาร์ต HopToDesk แอปจะอ่านไฟล์เมื่อเริ่มทำงานและไม่ติดต่อ API ของ HopToDesk อีก

แพลตฟอร์มเส้นทาง
Windows ผู้ใช้ทุกคนและบริการC:\ProgramData\HopToDesk\config\api.json
Windows เฉพาะผู้ใช้ปัจจุบัน%APPDATA%\HopToDesk\config\api.json
macOS~/Library/Preferences/com.hoptodesk.HopToDesk/api.json
Linux~/.config/hoptodesk/api.json

บน Linux บริการเบื้องหลังทำงานในฐานะ root และอ่านไฟล์ใน /root ส่วนแอปที่คุณเปิดจะอ่านไฟล์ในโฟลเดอร์โฮมของคุณเอง ให้วางสำเนาไว้ทั้งสองที่

ตัวเลือก B: โฮสต์ไฟล์ไว้ที่ URL แล้วเลือกในแอป

  1. อัปโหลด api.json ไปยังเว็บเซิร์ฟเวอร์ใดก็ได้ที่อุปกรณ์ของคุณเข้าถึงได้ แนะนำให้ใช้ HTTPS
  2. ใน HopToDesk ให้คลิกไอคอนรูปเฟืองเพื่อเปิดการตั้งค่า
  3. ใน Network ให้คลิก Choose Network
  4. เลือก Custom Network Settings วาง URL ของไฟล์ของคุณ แล้วยืนยัน
  5. HopToDesk จะดาวน์โหลดไฟล์ ตรวจสอบว่ามีรายการ rendezvous ที่ถูกต้องและรายการ turnservers จากนั้นเชื่อมต่อใหม่ผ่านเซิร์ฟเวอร์ของคุณ

หากต้องการกลับไปใช้เครือข่ายสาธารณะ ให้เปิด Choose Network อีกครั้งแล้วเลือก HopToDesk Network

ตัวเลือก C: ส่งการตั้งค่าจากแดชบอร์ด

หากอุปกรณ์ของคุณเชื่อมโยงกับแดชบอร์ด HopToDesk คุณสามารถตั้งค่าเครือข่ายครั้งเดียวสำหรับทั้งบัญชี ไคลเอนต์แบบกำหนดเองที่สร้างจากแดชบอร์ดจะมีการตั้งค่าเหล่านี้ติดมาด้วย

  1. เข้าสู่ระบบแดชบอร์ดในฐานะเจ้าของหรือผู้ดูแลระบบ แล้วเปิดการตั้งค่า
  2. ใน Network Settings ให้เลือก Custom Network
  3. ป้อนโฮสต์ของเซิร์ฟเวอร์สัญญาณ พอร์ต และ WS เป็นโปรโตคอล เพิ่มเซิร์ฟเวอร์ TURN หากคุณใช้รีเลย์ของตัวเอง หรือเว้นว่างไว้เพื่อใช้รีเลย์ของ HopToDesk ต่อไป
  4. คลิก Save Network Settings อุปกรณ์ที่เชื่อมโยงทุกเครื่องจะได้รับการตั้งค่าใหม่และนำไปใช้โดยไม่ต้องติดตั้งใหม่

ใช้รีเลย์ TURN ของคุณเอง (ไม่บังคับ)

เซสชันที่เชื่อมต่อโดยตรงไม่ได้จะผ่านรีเลย์ของ HopToDesk เป็นค่าเริ่มต้น หากต้องการให้ข้อมูลทั้งหมดอยู่ในโครงสร้างพื้นฐานของคุณเอง ให้ใช้เซิร์ฟเวอร์ TURN เซิร์ฟเวอร์ TURN มาตรฐานใดก็ใช้ได้ และ coturn เป็นตัวเลือกที่นิยมบน Linux

  1. ติดตั้ง coturn บนเซิร์ฟเวอร์รีเลย์
sudo apt install coturn
  1. แก้ไข /etc/turnserver.conf และตั้งค่าอย่างน้อยตามด้านล่าง แทนที่ realm ข้อมูลรับรอง และ IP สาธารณะด้วยของคุณเอง
listening-port=443
fingerprint
lt-cred-mech
user=myuser:mypassword
realm=example.com
external-ip=PUBLIC_IP
  1. หาก /etc/default/coturn มีบรรทัด TURNSERVER_ENABLED ให้เอาเครื่องหมายคอมเมนต์ออก จากนั้นเปิดใช้และเริ่มบริการ
sudo systemctl enable --now coturn
sudo systemctl restart coturn
  1. เปิดพอร์ตรับฟังสำหรับ TCP และ UDP รวมถึงช่วงพอร์ตรีเลย์ UDP 49152 ถึง 65535 บนไฟร์วอลล์ของรีเลย์
  2. ส่งรีเลย์ให้อุปกรณ์ของคุณ: รันตัวติดตั้งอีกครั้งพร้อมค่า TURN ทั้งสี่ หรือแก้ไขบล็อก turnservers ในการตั้งค่าเครือข่าย ใช้ turn-tls เป็นโปรโตคอลหากรีเลย์ของคุณจัดการ TLS

จัดการเซิร์ฟเวอร์บน Linux

sudo systemctl status hopsignal
sudo systemctl restart hopsignal
sudo systemctl stop hopsignal
tail -f /home/hopsignal/hs.log

หากต้องการอัปเดตเซิร์ฟเวอร์ ให้หยุดบริการแล้วรันคำสั่งติดตั้งอีกครั้ง คำสั่งจะดาวน์โหลดไบนารีล่าสุดและเขียนบริการใหม่

หากต้องการลบเซิร์ฟเวอร์พร้อมบริการและรายการ cron:

cd /home && curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sh hsinstall.sh remove

การแก้ไขปัญหา

  • ID ค้างอยู่ที่ Generating หรือแอปพยายามเชื่อมต่อเครือข่ายอยู่ตลอด: อุปกรณ์เข้าถึงเซิร์ฟเวอร์สัญญาณไม่ได้ ตรวจสอบว่าบริการทำงานอยู่ พอร์ต 80 เปิดอยู่ และที่อยู่ในการตั้งค่าเครือข่ายถูกต้อง
  • อุปกรณ์เชื่อมต่อได้ใน LAN แต่เชื่อมต่อจากภายนอกไม่ได้: เข้าถึงรีเลย์ไม่ได้ หากใช้รีเลย์เริ่มต้น อุปกรณ์ต้องเข้าถึง turn.hoptodesk.com ขาออกที่พอร์ต 443 ได้ หากใช้รีเลย์ของคุณเอง ให้ตรวจสอบกฎไฟร์วอลล์และข้อมูลรับรอง
  • แอปไม่สนใจ api.json: ตรวจสอบว่าไฟล์เป็น JSON ที่ถูกต้องโดยไม่มีเครื่องหมายจุลภาคท้ายสุด อยู่ในโฟลเดอร์ที่ถูกต้อง และคุณได้รีสตาร์ต HopToDesk แล้ว บันทึกของแอปจะมีบรรทัด Loaded local api.json เมื่ออ่านไฟล์สำเร็จ
  • พอร์ต 82 คือพอร์ตสหพันธ์สำหรับเชื่อมเซิร์ฟเวอร์สัญญาณของคุณหลายเครื่องเข้าด้วยกัน ให้ปิดไว้ไม่ให้เข้าถึงจากอินเทอร์เน็ต
  • เซิร์ฟเวอร์สัญญาณไม่เก็บข้อมูลเซสชัน หากมีอะไรดูค้าง ให้รีสตาร์ตบริการ อุปกรณ์จะเชื่อมต่อใหม่เองภายในประมาณหนึ่งนาที

การโฮสต์กับผู้ให้บริการภายนอก

ต้องการแพลตฟอร์มแบบจัดการหรือไม่ ปรับใช้เครือข่าย HopToDesk ของคุณบน Cloudflare หรือ AWS ได้

HopToDesk บน Cloudflare

  1. เข้าสู่ระบบบัญชี Cloudflare ของคุณ แล้วไปที่โซนโดเมนที่ต้องการใช้
  2. สร้าง Worker ใหม่โดยใช้ชื่อไฟล์ index.js
  3. คัดลอกโค้ด Worker ไปยัง index.js จากนั้นบันทึกและปรับใช้ Worker โค้ด Worker
  4. URL ของ Cloudflare Worker ของคุณพร้อมแล้ว ใช้เป็นค่า "rendezvousssl" api.json API ที่ปรับแต่งได้

HopToDesk บน AWS

  1. สมัครบัญชี AWS หากคุณยังไม่มี
  2. สมัครใช้งานรายการ HopToDesk ใน AWS Marketplace AWS Marketplace
  3. หลังจาก Amazon จัดเตรียมบริการแล้ว ให้กำหนดค่าตามต้องการและเริ่มอินสแตนซ์
  4. เครือข่าย HopToDesk ของคุณถูกปรับใช้บน AWS แล้ว ตั้งค่า URL แบบ https เป็นค่า "rendezvousssl" api.json API ที่ปรับแต่งได้

หมายเหตุ: Worker นี้ต้องใช้แพ็กเกจแบบชำระเงินของ Cloudflare เริ่มต้นที่ 5 ดอลลาร์ต่อเดือน เนื่องจากใช้ Durable Objects ราคา Durable Objects

AWS Marketplace และโลโก้ AWS Marketplace เป็นเครื่องหมายการค้าของ Amazon.com, Inc. หรือบริษัทในเครือ
Cloudflare, โลโก้ Cloudflare และ Cloudflare Workers เป็นเครื่องหมายการค้าและ/หรือเครื่องหมายการค้าจดทะเบียนของ Cloudflare, Inc. ในสหรัฐอเมริกาและเขตอำนาจศาลอื่น ๆ