ออนพรีมิส
โฮสต์เครือข่าย HopToDesk ของคุณเองภายในองค์กรหรือบนคลาวด์
ตั้งค่าเครือข่ายของคุณเอง
ตั้งค่าเครือข่าย HopToDesk ของคุณเอง รองรับ Ubuntu 18 - 24 และ Windows
บทแนะนำการตั้งค่า
คู่มือการตั้งค่าทีละขั้นตอน
ตัวติดตั้งทำอะไร ตรวจสอบอย่างไร และเชื่อมต่ออุปกรณ์ของคุณกับเครือข่ายของคุณเองอย่างไร
วิธีการทำงาน
HopToDesk ใช้เซิร์ฟเวอร์สองประเภท เซิร์ฟเวอร์สัญญาณช่วยให้อุปกรณ์ค้นหากันและเริ่มเซสชัน รีเลย์ TURN จะส่งผ่านข้อมูลเซสชันเฉพาะเมื่อไม่สามารถเชื่อมต่อโดยตรงระหว่างอุปกรณ์ทั้งสองได้
เซสชันเข้ารหัสแบบต้นทางถึงปลายทาง เซิร์ฟเวอร์ทั้งสองจึงอ่านหน้าจอ ไฟล์ หรือแชตของคุณไม่ได้ เซิร์ฟเวอร์สัญญาณเห็นเพียง ID อุปกรณ์และคำขอเชื่อมต่อเท่านั้น
ตัวติดตั้งในหน้านี้ตั้งค่าเซิร์ฟเวอร์สัญญาณ ข้อมูลผ่านรีเลย์จะไปที่รีเลย์ของ HopToDesk เป็นค่าเริ่มต้น หรือผ่านเซิร์ฟเวอร์ TURN ของคุณเองหากคุณระบุไว้
แดชบอร์ดยังคงเป็นบริการแบบโฮสต์ อุปกรณ์ในเครือข่ายที่โฮสต์เองยังเชื่อมโยงกับแดชบอร์ดเพื่อการจัดการได้ และแดชบอร์ดสามารถส่งการตั้งค่าเครือข่ายไปยังอุปกรณ์เหล่านั้น
ก่อนเริ่มต้น
- เซิร์ฟเวอร์ที่ใช้ Ubuntu 18.04 ถึง 24.04 หรือเซิร์ฟเวอร์ Windows
- สิทธิ์ root หรือ sudo บนเซิร์ฟเวอร์นั้น
- ที่อยู่ IP หรือชื่อโฮสต์ที่อุปกรณ์ทุกเครื่องของคุณเข้าถึงได้ สำหรับเครือข่ายที่ไม่ออกนอก LAN ของคุณ ที่อยู่ส่วนตัวก็เพียงพอ
- เปิดพอร์ต TCP 80 บนไฟร์วอลล์ของเซิร์ฟเวอร์สำหรับอุปกรณ์ของคุณ
- หากต้องการรีเลย์ของตัวเอง: โฮสต์ พอร์ต ชื่อผู้ใช้ และรหัสผ่านของเซิร์ฟเวอร์ TURN ของคุณ
ขั้นตอนที่ 1: ติดตั้งเซิร์ฟเวอร์สัญญาณบน Linux
- เข้าสู่ระบบเซิร์ฟเวอร์ในฐานะ root หรือผู้ใช้ที่มีสิทธิ์ sudo
- ที่ด้านบนของหน้านี้ ให้เลือก LAN + Default Relay หรือ Custom TURN Server คำสั่งติดตั้งจะเปลี่ยนตามตัวเลือกของคุณ
- คลิก Copy วางคำสั่งลงในเทอร์มินัล แล้วกด Enter
- รอจนกว่าสคริปต์จะเสร็จ บนเซิร์ฟเวอร์ใหม่ การติดตั้งแพ็กเกจอาจใช้เวลาสองสามนาที
- เมื่อจบ สคริปต์จะแสดง 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: เรียกใช้เซิร์ฟเวอร์สัญญาณ
- สลับสวิตช์ OS ที่ด้านบนของหน้านี้เป็น Windows แล้วคลิก Download คุณจะได้ไฟล์เดียวชื่อ hopsignal.exe
- สร้างโฟลเดอร์ เช่น C:\hopsignal แล้วย้าย hopsignal.exe เข้าไป
- ในโฟลเดอร์เดียวกัน ให้สร้างไฟล์ข้อความว่างชื่อ fedlist.txt
- เวอร์ชัน Windows ต้องการใบรับรอง TLS และคีย์ส่วนตัวในรูปแบบ PEM ด้วย ใช้คู่ใดก็ได้ รวมถึงแบบเซ็นเอง บันทึกเป็น cert.pem และ key.pem ในโฟลเดอร์เดียวกัน
- เปิด 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 แล้วเลือกในแอป
- อัปโหลด api.json ไปยังเว็บเซิร์ฟเวอร์ใดก็ได้ที่อุปกรณ์ของคุณเข้าถึงได้ แนะนำให้ใช้ HTTPS
- ใน HopToDesk ให้คลิกไอคอนรูปเฟืองเพื่อเปิดการตั้งค่า
- ใน Network ให้คลิก Choose Network
- เลือก Custom Network Settings วาง URL ของไฟล์ของคุณ แล้วยืนยัน
- HopToDesk จะดาวน์โหลดไฟล์ ตรวจสอบว่ามีรายการ rendezvous ที่ถูกต้องและรายการ turnservers จากนั้นเชื่อมต่อใหม่ผ่านเซิร์ฟเวอร์ของคุณ
หากต้องการกลับไปใช้เครือข่ายสาธารณะ ให้เปิด Choose Network อีกครั้งแล้วเลือก HopToDesk Network
ตัวเลือก C: ส่งการตั้งค่าจากแดชบอร์ด
หากอุปกรณ์ของคุณเชื่อมโยงกับแดชบอร์ด HopToDesk คุณสามารถตั้งค่าเครือข่ายครั้งเดียวสำหรับทั้งบัญชี ไคลเอนต์แบบกำหนดเองที่สร้างจากแดชบอร์ดจะมีการตั้งค่าเหล่านี้ติดมาด้วย
- เข้าสู่ระบบแดชบอร์ดในฐานะเจ้าของหรือผู้ดูแลระบบ แล้วเปิดการตั้งค่า
- ใน Network Settings ให้เลือก Custom Network
- ป้อนโฮสต์ของเซิร์ฟเวอร์สัญญาณ พอร์ต และ WS เป็นโปรโตคอล เพิ่มเซิร์ฟเวอร์ TURN หากคุณใช้รีเลย์ของตัวเอง หรือเว้นว่างไว้เพื่อใช้รีเลย์ของ HopToDesk ต่อไป
- คลิก Save Network Settings อุปกรณ์ที่เชื่อมโยงทุกเครื่องจะได้รับการตั้งค่าใหม่และนำไปใช้โดยไม่ต้องติดตั้งใหม่
ใช้รีเลย์ TURN ของคุณเอง (ไม่บังคับ)
เซสชันที่เชื่อมต่อโดยตรงไม่ได้จะผ่านรีเลย์ของ HopToDesk เป็นค่าเริ่มต้น หากต้องการให้ข้อมูลทั้งหมดอยู่ในโครงสร้างพื้นฐานของคุณเอง ให้ใช้เซิร์ฟเวอร์ TURN เซิร์ฟเวอร์ TURN มาตรฐานใดก็ใช้ได้ และ coturn เป็นตัวเลือกที่นิยมบน Linux
- ติดตั้ง coturn บนเซิร์ฟเวอร์รีเลย์
sudo apt install coturn
- แก้ไข /etc/turnserver.conf และตั้งค่าอย่างน้อยตามด้านล่าง แทนที่ realm ข้อมูลรับรอง และ IP สาธารณะด้วยของคุณเอง
listening-port=443 fingerprint lt-cred-mech user=myuser:mypassword realm=example.com external-ip=PUBLIC_IP
- หาก /etc/default/coturn มีบรรทัด TURNSERVER_ENABLED ให้เอาเครื่องหมายคอมเมนต์ออก จากนั้นเปิดใช้และเริ่มบริการ
sudo systemctl enable --now coturn sudo systemctl restart coturn
- เปิดพอร์ตรับฟังสำหรับ TCP และ UDP รวมถึงช่วงพอร์ตรีเลย์ UDP 49152 ถึง 65535 บนไฟร์วอลล์ของรีเลย์
- ส่งรีเลย์ให้อุปกรณ์ของคุณ: รันตัวติดตั้งอีกครั้งพร้อมค่า 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
- เข้าสู่ระบบบัญชี Cloudflare ของคุณ แล้วไปที่โซนโดเมนที่ต้องการใช้
- สร้าง Worker ใหม่โดยใช้ชื่อไฟล์ index.js
- คัดลอกโค้ด Worker ไปยัง index.js จากนั้นบันทึกและปรับใช้ Worker โค้ด Worker
- URL ของ Cloudflare Worker ของคุณพร้อมแล้ว ใช้เป็นค่า "rendezvousssl" api.json API ที่ปรับแต่งได้

HopToDesk บน AWS
- สมัครบัญชี AWS หากคุณยังไม่มี
- สมัครใช้งานรายการ HopToDesk ใน AWS Marketplace AWS Marketplace
- หลังจาก Amazon จัดเตรียมบริการแล้ว ให้กำหนดค่าตามต้องการและเริ่มอินสแตนซ์
- เครือข่าย 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. ในสหรัฐอเมริกาและเขตอำนาจศาลอื่น ๆ