เอกสาร

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

คำถามที่พบบ่อย FAQ

บทความนี้รวบรวมปัญหาที่พบบ่อยที่สุดระหว่างการใช้แผงควบคุมและวิธีตรวจสอบ

การติดตั้งและการเข้าสู่ระบบ

Q: ติดตั้งแผงควบคุมต้องมีเงื่อนไขอะไรบ้าง?

เซิร์ฟเวอร์ Linux ที่มี IP สาธารณะ หนึ่งเครื่อง (แนะนำดิสโทรยอดนิยมอย่าง Debian / Ubuntu / CentOS) หน่วยความจำ 512MB ขึ้นไปก็รันได้ลื่น เซิร์ฟเวอร์ที่ถูกจัดการไม่ต้องติดตั้งอะไรเลย แค่ต้อง SSH เชื่อมได้ก็พอ

Q: บัญชีและรหัสผ่านเริ่มต้นคืออะไร?

บัญชีเริ่มต้น admin รหัสผ่าน 123456 โปรดเปลี่ยนทันทีหลังล็อกอินครั้งแรก (ไอคอนผู้ใช้มุมขวาบนของแผงควบคุม → ตั้งค่าผู้ใช้)

Q: ลืมรหัสผ่านเข้าสู่ระบบทำอย่างไร?

หากเปลี่ยนแล้วและลืม รีเซ็ตได้บนเซิร์ฟเวอร์แผงควบคุม รันคำสั่งต่อไปนี้เพื่อรีเซ็ตเป็นรหัสผ่านเริ่มต้น (หรือกำหนดรหัสผ่านใหม่):

# เข้าไดเรกทอรีติดตั้งแผงควบคุม ใช้สคริปต์ในตัวรีเซ็ตรหัสผ่าน
cd /opt/ssh-everywhere
python3 -c "from app import reset_password; reset_password('new-password')"

> ชื่อสคริปต์ที่แน่นอนอาจปรับตามเวอร์ชัน หรือแก้ตาราง users ในฐานข้อมูล data/ssheverywhere.db โดยตรงก็ได้

Q: เปลี่ยนพอร์ตของแผงควบคุม (5501) อย่างไร?

แก้ Environment=PORT=5501 ในบริการ systemd แล้วโหลดใหม่:

systemctl edit ssh-everywhere.service
# เพิ่มหรือแก้ไข: Environment=PORT=your-port
systemctl daemon-reload && systemctl restart ssh-everywhere.service

หลังแก้เสร็จอย่าลืมเปิดพอร์ตใหม่ในไฟร์วอลล์คลาวด์/security group

Q: เข้าถึงแผงควบคุมไม่ได้ (พอร์ต 5501)?

ตรวจสอบตามลำดับ:

1. ยืนยันว่าบริการแผงควบคุมกำลังทำงาน: systemctl status ssh-everywhere.service

2. ตรวจสอบว่าไฟร์วอลล์คลาวด์/security group ของเซิร์ฟเวอร์แผงควบคุมเปิด 5501 แล้วหรือยัง (นี่คือสาเหตุที่พบบ่อยที่สุด)

3. ยืนยันว่าที่อยู่ที่เข้าถึงคือ http://server-public-ip:5501 (ไม่ใช่ https เว้นแต่คุณตั้งค่า reverse proxy ไว้)

เกี่ยวกับเซิร์ฟเวอร์

Q: เซิร์ฟเวอร์แสดง «ออฟไลน์» ทำอย่างไร?

«ออฟไลน์» แค่บอกว่าแผงควบคุม SSH เชื่อมมันไม่ติด ไม่ได้แปลว่าเซิร์ฟเวอร์ล่ม ตรวจสอบตามลำดับ:

1. ยืนยันว่าเซิร์ฟเวอร์เองออนไลน์อยู่: ไปดูสถานะไฟเลี้ยงในคอนโซลของผู้ให้บริการเซิร์ฟเวอร์

2. ทดสอบว่าพอร์ต SSH เข้าถึงได้หรือไม่: รัน nc -zv <target-ip> <port> จากเซิร์ฟเวอร์แผงควบคุม ดูว่าพอร์ตผ่านหรือไม่

3. ตรวจไฟร์วอลล์/security group: ไฟร์วอลล์คลาวด์/security group ของเซิร์ฟเวอร์เป้าหมายเปิดพอร์ต SSH แล้วหรือยัง

4. เซิร์ฟเวอร์ NAT ตรวจการแมปพอร์ต: ยืนยันว่าการแมปพอร์ต NAT ยังอยู่, IP ภายในเป้าหมายถูกต้อง

5. ตรวจ whitelist ของ IP ต้นทาง: ผู้ให้บริการบางรายจำกัด IP ต้นทางของพอร์ต SSH ต้องเพิ่ม IP ของเซิร์ฟเวอร์แผงควบคุมเข้า whitelist

6. ตรวจบัญชีและรหัสผ่าน: ชื่อผู้ใช้, รหัสผ่าน/private key ถูกต้องหรือไม่

Q: เพิ่มเซิร์ฟเวอร์แล้วเชื่อมไม่ติด?

  • ยืนยันว่าพอร์ต SSH, ชื่อผู้ใช้, รหัสผ่านถูกต้อง
  • ยืนยันว่า sshd ของเซิร์ฟเวอร์เป้าหมายกำลังทำงาน
  • ยืนยันว่าไฟร์วอลล์เปิดพอร์ต SSH แล้ว
  • คลาวด์รายใหญ่ (Tencent Cloud / Alibaba Cloud) ปิด root เป็นค่าเริ่มต้น โปรดล็อกอินด้วยผู้ใช้ทั่วไป (เช่น ubuntu)

Q: เซิร์ฟเวอร์ NAT (พอร์ตที่ไม่ใช่ 22) เชื่อมไม่ติด?

การแมปพอร์ตของเซิร์ฟเวอร์ NAT ต้องเข้าถึงได้จากเครือข่ายที่เซิร์ฟเวอร์แผงควบคุมอยู่ สาเหตุที่พบบ่อย:

  • การแมปพอร์ตใช้ไม่ได้ (ไปตรวจสอบ/สร้างใหม่ในคอนโซลของผู้ให้บริการ)
  • ผู้ให้บริการทำ whitelist IP ต้นทางไว้ (เพิ่ม IP ของเซิร์ฟเวอร์แผงควบคุมเข้า whitelist)
  • IP ภายใน/พอร์ตเป้าหมายที่แมปกรอกผิด

เกี่ยวกับทะลุพอร์ต / ส่งต่อพอร์ต

Q: ทะลุพอร์ตแสดง «ออฟไลน์»?

  • การทะลุพึ่งพา Agent ออนไลน์ เมื่อ Agent ออฟไลน์ (อุปกรณ์ปิด, เครือข่ายขาด, Agent หยุด) การทะลุจะขาด
  • หลังบริการแผงควบคุมรีสตาร์ท การทะลุจะกลับมาอัตโนมัติเมื่อ Agent เชื่อมใหม่ รอสักครู่ก็ได้
  • ยืนยันว่าไฟร์วอลล์คลาวด์ของเซิร์ฟเวอร์แผงควบคุมเปิดพอร์ตที่ listen ไว้

Q: ส่งต่อพอร์ตที่ไม่ใช่ 22 ไม่ทำงาน?

การส่งต่อพอร์ตที่ไม่ใช่ SSH (เช่น 9117) ต้องให้เซิร์ฟเวอร์ทะลุติดตั้ง Agent เวอร์ชันใหม่ (เวอร์ชันเก่ารองรับแค่ 22) ติดตั้ง Agent ใหม่ก็ได้

Q: สร้างส่งต่อพอร์ตแล้วแต่ไม่ทำงาน?

การส่งต่อพอร์ตแบบดั้งเดิมต้องทำบนเครื่องเซิร์ฟเวอร์ที่มี IP สาธารณะเป็นของตัวเอง ตรวจสอบ:

1. เซิร์ฟเวอร์เป้าหมาย/ไฟร์วอลล์ตรงกลางเปิดพอร์ตเป้าหมายแล้วหรือยัง

2. IP เป้าหมายที่กรอกเป็นที่อยู่ที่เข้าถึงได้จริงหรือไม่

3. security group ของคลาวด์สกัดกั้นพอร์ตที่ listen ไว้หรือไม่

Q: ทะลุพอร์ตกับส่งต่อพอร์ตต่างกันอย่างไร?

  • ทะลุพอร์ต: ใช้กับอุปกรณ์ที่ไม่มี IP สาธารณะ ผ่านอุโมงค์ย้อนกลับ เปิดพอร์ตสาธารณะบนเซิร์ฟเวอร์แผงควบคุม
  • ส่งต่อพอร์ต: ใช้กับเซิร์ฟเวอร์ที่มี IP สาธารณะ ผ่าน DNAT ของไฟร์วอลล์ระบบ ทำบนเครื่องเซิร์ฟเวอร์เป้าหมายเอง

ดูรายละเอียดที่ ทะลุพอร์ต และ ส่งต่อพอร์ต

เกี่ยวกับ Docker / การติดตั้งแอป

Q: รวมแอป/Docker ติดตั้งล้มเหลวทำอย่างไร?

แผงควบคุมจะแสดงข้อความข้อผิดพลาดตามจริง (ไม่รายงานว่าสำเร็จเท็จ) สาเหตุที่พบบ่อย:

1. ดิสโทรที่เก่าเกินไป: เวอร์ชันที่ EOL แล้วอย่าง Fedora 32 แหล่งซอฟต์แวร์หยุดดูแล การติดตั้งจะหมดเวลาหรือล้มเหลว แนะนำให้อัปเกรดระบบ

2. เครือข่ายเข้าถึงไม่ได้: ซอร์สทางการของ Docker (get.docker.com / download.docker.com) ในบางสภาพเครือข่าย (เช่นเซิร์ฟเวอร์ NAT ในจีนแผ่นดินใหญ่) อาจเข้าถึงไม่ได้ ตอนนี้ต้องตั้งค่าตัวเร่งอิมเมจในประเทศของ Docker หรือใช้ฟังก์ชัน «เปลี่ยนแหล่งอิมเมจ» สลับไปซอร์ส Alibaba Cloud

3. ชื่อแพ็กเกจต่างกัน: แอปบางตัว (เช่น ufw, deb.nodesource ของ Node.js) พึ่งพาดิสโทรเฉพาะ อาจติดตั้งบนเครื่องที่ไม่ใช่ Debian/Ubuntu ไม่ได้ ข้อความข้อผิดพลาดจะแจ้งให้ชัดเจน

Q: เซิร์ฟเวอร์ในจีนแผ่นดินใหญ่ดึงอิมเมจ Docker ช้ามาก/หมดเวลา?

นี่เป็นปัญหาเครือข่าย ไม่ใช่ปัญหาแผงควบคุม แนะนำให้ตั้งค่าตัวเร่งอิมเมจ Docker (ตัวเร่งสาธารณะเช่น docker.1ms.run / docker.m.daocloud.io) หรือรันบนเซิร์ฟเวอร์ก่อน:

# อ้างอิง: ตั้งค่าตัวเร่งส่วนตัวของ Alibaba Cloud (ต้องแทนที่ด้วยที่อยู่ตัวเร่งของคุณ)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{ "registry-mirrors": ["https://your-accelerator-address"] }
EOF
sudo systemctl restart docker

เทคนิคตรวจสอบทั่วไป

1. ทดสอบว่าพอร์ตผ่านก่อน แล้วจึงตรวจบัญชีและรหัสผ่าน: nc -zv <IP> <port>

2. เทียบกับเซิร์ฟเวอร์อื่น: เซิร์ฟเวอร์ประเภทเดียวกันเชื่อมได้ แต่เครื่องนี้เชื่อมไม่ได้ แสดงว่าปัญหาอยู่ที่เครื่องนี้เป็นพิเศษ (ไฟร์วอลล์/การแมป/whitelist)

3. ดูบันทึก: บันทึกของแผงควบคุมอยู่ที่ service.log บันทึกของทะลุ/Agent ช่วยระบุปัญหาการเชื่อมต่อได้