เอกสาร

เริ่มต้นอย่างรวดเร็ว + คำอธิบายฟังก์ชันของแต่ละส่วนและแต่ละอุปกรณ์ (อัปเดตต่อเนื่อง)

การติดตั้งและการถอนการติดตั้ง

บทความนี้อธิบายอย่างละเอียดถึงวิธีติดตั้ง, อัปเกรด และถอนการติดตั้งแผงควบคุม SSH Everywhere เน้นอธิบายให้ชัดว่า «เปลี่ยนไดเรกทอรีติดตั้งแล้วถอนการติดตั้งอย่างไร» และรายละเอียดรูปแบบในคำสั่ง (ช่องว่าง, เครื่องหมายคำพูด)

1. ติดตั้ง (คำสั่งบรรทัดเดียว)

รันบนเซิร์ฟเวอร์ Linux ที่มี IP สาธารณะ:

curl -fsSL https://ssheverywhere.com/install.sh | bash

สคริปต์จะทำเสร็จอัตโนมัติ: ตรวจระบบ → ติดตั้ง dependencies (Python3 / venv / pip / git / curl) → ดาวน์โหลดโค้ด → สร้าง virtual environment → ติดตั้ง dependencies ของ Python → ลงทะเบียนและเริ่มบริการ systemd

รองรับ Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (หากไม่มี systemd จะเปลี่ยนไปรันเบื้องหลังอัตโนมัติ)

พารามิเตอร์การติดตั้ง

พารามิเตอร์คำอธิบายตัวอย่าง
--lang <รหัส>ภาษาของข้อความแจ้งเตือน + ภาษาเริ่มต้นของแผงควบคุม (ค่าเริ่มต้นจะตรวจจาก locale ของระบบโดยอัตโนมัติ; รองรับหมายเลข 1-16 ด้วย)--lang ja
--dir <ไดเรกทอรี>ไดเรกทอรีติดตั้ง (ค่าเริ่มต้น /opt/ssh-everywhere; หากเขียนไม่ได้จะถอยกลับไปใช้ ~/ssh-everywhere ให้อัตโนมัติ และแจ้งให้ทราบในผลลัพธ์)--dir /opt/my-panel
--port <พอร์ต>พอร์ตของแผงควบคุม (ค่าเริ่มต้น 5501)--port 8080
--asciiบังคับให้แสดงสัญลักษณ์ ASCII ล้วน ([ok] / [..] / [!] / [x]) จะไม่เกิดตัวอักษรเพี้ยนบนเทอร์มินัลใด ๆ--ascii
--unicodeบังคับให้แสดงสัญลักษณ์ Unicode (✓ ⟳ ⚠️ ❌); ในสภาพแวดล้อม UTF-8 ถือเป็นค่าเริ่มต้นอยู่แล้ว--unicode
--yes / -yยืนยันอัตโนมัติเมื่ออัปเกรด ไม่ต้องโต้ตอบ--yes

รหัสภาษาที่รองรับ (16 ภาษา)

รหัสภาษารหัสภาษารหัสภาษารหัสภาษา
zh中文enEnglishja日本語ko한국어
esEspañolfrFrançaisdeDeutschruРусский
ptPortuguêsitItalianoarالعربيةtrTürkçe
viTiếng ViệtthไทยidBahasa Indonesiahiहिन्दी

หากไม่ส่ง --lang ระบบจะตรวจจาก locale ของระบบโดยอัตโนมัติ (เช่น LANG=ja_JP.UTF-8 → ข้อความภาษาญี่ปุ่น) เมื่อ locale ของเซิร์ฟเวอร์หรือเทอร์มินัลไม่ใช่ UTF-8 (อิมเมจแบบย่อของคลาวด์รายใหญ่พบ LANG=C ได้บ่อย) สคริปต์จะเปลี่ยนไปใช้สัญลักษณ์ ASCII ล้วน [ok] ให้อัตโนมัติ และเมื่อไม่ได้ระบุภาษาอย่างชัดเจน จะถอยกลับไปใช้ข้อความภาษาอังกฤษพร้อมอธิบายเหตุผลตอนต้น — ทั้งนี้เพื่อหลีกเลี่ยงตัวอักษรเพี้ยน หากต้องการบังคับให้แสดงภาษาของคุณ ใช้: --lang xx --unicode

การส่งพารามิเตอร์ผ่านไปป์ต้องเติม bash -s --:

# ข้อความภาษาญี่ปุ่น + แผงควบคุมภาษาญี่ปุ่น
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja

# ข้อความภาษารัสเซีย + ไดเรกทอรีและพอร์ตที่กำหนดเอง
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080

# เทอร์มินัลเก่า / เทอร์มินัล GBK ที่กลัวตัวอักษรเพี้ยน: แสดงผล ASCII ล้วน (ข้อความภาษาจีน + สัญลักษณ์ [ok])
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii

# ภาษาอาหรับ (อินเทอร์เฟซ RTL)
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar

หรือจะดาวน์โหลดก่อนแล้วค่อยรันก็ได้ (แบบโต้ตอบ จะถามภาษา ไดเรกทอรี และการยืนยันอัปเกรดทีละขั้น):

curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh

> คลาวด์รายใหญ่ (Tencent Cloud / Alibaba Cloud) ปิดการล็อกอินด้วย root เป็นค่าเริ่มต้น --dir ที่ระบุมาอย่างชัดเจนจะได้รับความสำคัญก่อน; เฉพาะเมื่อผู้ใช้ปัจจุบันไม่มีสิทธิ์เขียนในไดเรกทอรีนั้น สคริปต์จึงจะเปลี่ยนไปใช้ไดเรกทอรี HOME ของคุณ (~/ssh-everywhere) และแจ้งอย่างชัดเจนในผลลัพธ์ว่า "คุณระบุไดเรกทอรีใด เพราะเหตุใดจึงถูกเปลี่ยน และหากต้องการติดตั้งที่นั่นให้รันด้วย root"

2. อัปเกรด

รันคำสั่งติดตั้งอีกครั้งก็ได้ สคริปต์มีการตรวจเวอร์ชันในตัว หากพบเวอร์ชันใหม่จะแนะนำให้อัปเกรด (ข้อมูลคงอยู่, อัตโนมัติเต็มรูปแบบ):

curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes

--yes หมายถึงยืนยันอัตโนมัติตอนอัปเกรด ไม่ต้องโต้ตอบ

3. ถอนการติดตั้ง

ถอนการติดตั้งในไดเรกทอรีเริ่มต้น (แบบโต้ตอบ แนะนำ)

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh

สคริปต์จะแสดงรายการที่จะถอนก่อนและถามยืนยัน ต้องพิมพ์ yes จึงจะดำเนินการ

ถอนการติดตั้งแบบไม่โต้ตอบ / ผ่านสคริปต์

เพิ่ม --yes เพื่อข้ามการยืนยัน (การตรวจสอบความปลอดภัยยังคงอยู่):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes

พารามิเตอร์การถอนการติดตั้ง

พารามิเตอร์คำอธิบาย
--dir <directory>ไดเรกทอรีติดตั้ง (ค่าเริ่มต้น /opt/ssh-everywhere, หากเปลี่ยนไดเรกทอรีต้องระบุ)
--keep-dataสำรอง data (คอนฟิกเซิร์ฟเวอร์ / ฐานข้อมูล) เป็นแพ็กเกจ tar ก่อนถอนการติดตั้ง
--yesยืนยันการถอนการติดตั้งในโหมดไม่โต้ตอบ

4. เปลี่ยนไดเรกทอรีติดตั้งแล้วถอนการติดตั้งอย่างไร? (สำคัญ)

ตอนติดตั้งหากใช้ --dir เปลี่ยนไดเรกทอรี ตอนถอนการติดตั้งต้องระบุ --dir เดียวกัน มิฉะนั้นสคริปต์จะหาไดเรกทอรีติดตั้งไม่เจอและหยุดอัตโนมัติ (นี่คือการป้องกันความปลอดภัย กันลบผิด)

เส้นทางไดเรกทอรีไม่มีช่องว่าง

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel

แบบไปป์ (--dir วางหลัง bash -s --):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes

เส้นทางไดเรกทอรีมีช่องว่าง

หากชื่อไดเรกทอรีมีช่องว่าง ต้องใช้เครื่องหมายคำพูดคู่ครอบเส้นทางทั้งหมด มิฉะนั้น shell จะแยกเส้นทางเป็นสองส่วน สคริปต์จะหาไดเรกทอรีไม่เจอ:

bash uninstall.sh --dir "/opt/my panel"

แบบไปป์ก็เช่นกัน (เครื่องหมายคำพูดครอบเส้นทางทั้งหมด อย่าครอบแค่ครึ่งเดียว):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes

อยากเก็บข้อมูลไว้แล้วค่อยถอนการติดตั้ง

bash uninstall.sh --dir /opt/my-panel --keep-data

data (คอนฟิกเซิร์ฟเวอร์ / ฐานข้อมูล) จะถูกสำรองไปที่ <install-dir>-data-backup-<timestamp>.tar.gz หลังถอนการติดตั้งแล้วกู้คืนได้

> 💡 คำแนะนำ: ตอนติดตั้งควรหลีกเลี่ยงการใช้ช่องว่างในชื่อไดเรกทอรี เปลี่ยนไปใช้ขีดกลางหรือขีดล่าง (เช่น my-panel, my_panel) จะประหยัดความยุ่งยากจากเครื่องหมายคำพูด

5. คำอธิบายด้านความปลอดภัย

สคริปต์ถอนการติดตั้งมีระบบป้องกันสามชั้นในตัว กันลบผิด:

1. ตรวจสอบเส้นทางสัมบูรณ์ —— ปฏิเสธเส้นทางสัมพัทธ์

2. blacklist ไดเรกทอรีสำคัญของระบบ —— ปฏิเสธ /, /root, /etc, /usr, /var ฯลฯ

3. ตรวจสอบลายนิ้วมือไดเรกทอรีติดตั้ง —— ต้องมี VERSION และ app.py อยู่พร้อมกันจึงจะลบ มิฉะนั้นจะหยุด

> การถอนการติดตั้งลบแค่ตัวแผงควบคุม Agent บนเซิร์ฟเวอร์เป้าหมาย / อุปกรณ์ไม่ได้รับผลกระทบ (หลังลบแผงควบคุมแล้วมันจะแสดงออฟไลน์)