EQVPS

ถูกล็อกออกจาก VPS ด้วย ufw? กลับเข้าไปโดยไม่ติดตั้งใหม่

Aug 22, 2026 · 2 นาทีในการอ่าน · EQVPS Team

มีพิธีผ่านสำหรับใครที่ใหม่ต่อการรันเซิร์ฟเวอร์ของตัวเอง: คุณตัดสินใจตั้ง firewall คุณพิมพ์คำสั่ง ufw ไม่กี่ตัว คุณกด enable — และ terminal ของคุณเงียบ SSH หายไป คุณไม่ได้แครชอะไร คุณไม่ได้ถูกแฮ็ก คุณแค่ล็อกประตูโดยตัวเองอยู่ข้างนอก

มันเกิดกับ sysadmin ที่ดีด้วย มันเกิดกับลูกค้าของเราสัปดาห์ที่แล้ว ซึ่งเป็นเหตุผลที่ฉันเขียนนี่ลง ข่าวดี: มันกู้คืนได้สมบูรณ์ในเวลาต่ำกว่าหนึ่งนาที และคุณไม่ต้องติดตั้งใหม่หรือเสียไฟล์แม้แต่ไฟล์เดียว นี่คือวิธี

VPS ที่ปิดผนึกหลังกำแพง firewall พร้อมหน้าต่างคอนโซลเรืองแสงเป็นทางกลับเข้า

เกิดอะไรผิดจริง ๆ

ufw (Uncomplicated Firewall) ค่าเริ่มต้นเป็น ปฏิเสธขาเข้าทั้งหมด ทันทีที่คุณรัน ufw enable อะไรที่คุณไม่ได้อนุญาตชัดเจนถูก drop — รวมเซสชัน SSH ที่คุณนั่งอยู่ หากคุณลืม ufw allow พอร์ต SSH ของคุณก่อน คุณตัดการเชื่อมต่อของคุณเองทันทีที่กฎมีผล

นั่นคือฉบับคลาสสิก มีอีกสองรสที่จับคน:

ไม่ว่าทางไหน เซิร์ฟเวอร์เองโอเค — รันอยู่ ดิสก์ไม่เสีย แอปของคุณยังฮัมหลังกำแพง มันคือปัญหาการเข้าถึงเครือข่ายล้วน ซึ่งเป็นเหตุผลพอดีที่การแก้ง่าย

ท่าผิด: การติดตั้งใหม่

สัญชาตญาณแรกมักคือ "แค่รีเซ็ตเซิร์ฟเวอร์และเริ่มใหม่" อย่า — ไม่ใช่สำหรับนี่ การติดตั้งใหม่ล้างทุกอย่างเพื่อให้ได้ SSH ที่ทำงานกลับ เมื่อสิ่งที่บล็อก SSH คือคำสั่ง firewall หนึ่งที่คุณ undo ในสิบวินาที คุณจะเผาบ้านเพราะคุณล็อกประตูหน้า

การติดตั้งใหม่คือทางเลือกที่ถูกเมื่อคุณต้องการเริ่มสะอาด สำหรับการล็อก ufw มันเกินจำเป็น

ท่าถูก: เว็บคอนโซล

VPS ทุกตัวที่คุ้มค่าให้คุณคอนโซล out-of-band — ทางเข้าเครื่องที่ไม่ผ่าน SSH หรือแม้แต่ network stack บน EQVPS มันคือปุ่ม Console บนหน้าเซิร์ฟเวอร์ของคุณ มันคือ serial console: ข้อความเท่านั้น เชื่อมต่อตรงกับ VM แบบที่จอและคีย์บอร์ดจะทำ กฎ firewall ไม่มีอำนาจเหนือมัน เพราะมันไม่ใช่ทราฟฟิกเครือข่าย

ปุ่ม Console บนหน้าจัดการเซิร์ฟเวอร์ EQVPS

คลิกมัน เข้าสู่ระบบด้วยข้อมูลรับรอง root ของคุณ (หรือเปิดดูรหัสผ่านในแผงหากคุณไม่มีมันติดมือ) และคุณอยู่บนเครื่อง firewall หรือไม่มี firewall

ตอนนี้ undo ความเสียหาย เส้นทางเร็วที่สุด:

sudo ufw disable

นั่นปิด firewall และเก็บกฎของคุณ ดังนั้นคุณเปิดใหม่ได้ภายหลังเมื่อคุณแก้ข้อผิดพลาด SSH กลับมาทันที

หากคุณไม่อยาก drop firewall ทั้งหมด แค่เปิดพอร์ตที่คุณพลาด:

sudo ufw allow 22
sudo ufw status numbered

มุมมอง status numbered คุ้มค่าดู — มันแสดงลำดับกฎ ซึ่งเป็นที่ที่กรณี "ฉันอนุญาต 22 แต่มันยังบล็อก" ซ่อน หาก deny นั่งเหนือ allow ของคุณ ลบมันด้วย sudo ufw delete <number>

ข้อควรระวัง NAT ที่คู่มือส่วนใหญ่พลาด

หากคุณอยู่บนแพ็กเกจ NAT มีกับดักที่นี่ คุณ SSH เข้าบนพอร์ตสูง — อย่าง 20266 — ดังนั้นสัญชาตญาณธรรมชาติคือ ufw allow 20266 นั่นไม่ทำอะไร

บน NAT พอร์ตภายนอกนั้นถูก forward ไปพอร์ต 22 ภายใน VM ufw รันภายใน VM และเห็นเฉพาะ 22 ดังนั้นกฎที่คุณต้องการจริงคือ:

sudo ufw allow 22

อนุญาต 20266 และคุณจะจ้องการเชื่อมต่อที่ยังเสียสงสัยว่าทำไม อนุญาต 22 และคุณเข้า ไอเดียเดียวกันสำหรับบริการใด: อนุญาตพอร์ตที่โปรเซสรอรับภายในเครื่อง ไม่ใช่ตัวที่ forward ที่คุณเชื่อมต่อจากภายนอก

วิธีไม่ทำนี่อีก

การแก้ใช้เวลาหนึ่งนาที แต่การไม่ต้องการมันดีกว่า สองนิสัย:

อนุญาตพอร์ต SSH ของคุณก่อนเปิด ในลำดับนี้ เสมอ:

sudo ufw allow 22
sudo ufw enable

ทำมันย้อนกลับและคุณกลับในคอนโซล

เก็บเซสชันที่สองเปิดขณะเปลี่ยนกฎ firewall เข้าสู่ระบบสองครั้ง ทำการเปลี่ยนในหน้าต่างหนึ่ง หาก SSH ตาย หน้าต่างอีกอันยังมีชีวิตให้แก้ ทริกเก่า ช่วยคุณทุกครั้ง

และหากคุณกำลังตั้งเครื่องสด เช็กลิสต์ความปลอดภัย VPS ใหม่ของเราครอบคลุม ufw ถูกทาง ควบคู่คีย์ SSH และสิ่งอื่นสองสามอย่างที่สำคัญจริงในสิบนาทีแรก

สิ่งที่ควรจำ

การล็อก ufw ดูน่ากลัวและแทบไม่มีอะไร เซิร์ฟเวอร์ไม่เคยไป คุณแค่ต้องการประตูที่ firewall กระแทกไม่ได้ — เว็บคอนโซล — และหนึ่งคำสั่ง เก็บ ufw disable และคอนโซลไว้ในกระเป๋าหลัง อนุญาตพอร์ตของคุณก่อนเปิดครั้งหน้า และคุณจะไม่เหงื่อออกกับอันนี้อีก

FAQ

ฉันเปิด ufw และตอนนี้ SSH เชื่อมต่อไม่ได้ ฉันเสียเซิร์ฟเวอร์ไหม?

ไม่ เซิร์ฟเวอร์รันอยู่ดี — คุณแค่บล็อกประตูจากด้านใน ข้อมูลของคุณไม่ถูกแตะ เปิดเว็บคอนโซลในแผงควบคุมของคุณ (มันเข้าสู่ระบบให้คุณโดยไม่ใช้ SSH) และรัน `sudo ufw disable` และคุณกลับมา ไม่ต้องติดตั้งใหม่

ทำไมการเปิด ufw ฆ่า SSH ของฉัน?

ufw ค่าเริ่มต้นเป็นปฏิเสธทราฟฟิกขาเข้าทั้งหมด และหากคุณเปิดมันโดยไม่อนุญาตพอร์ต SSH ของคุณก่อน เซสชันของคุณเองถูกตัด มันคือการล็อกตัวเองที่พบมากที่สุด อนุญาต `ufw allow <ssh-port>` ก่อน `ufw enable` เสมอ

ฉันแก้ ufw อย่างไรถ้า SSH เข้าไม่ได้เลย?

ใช้เว็บคอนโซล out-of-band (serial console) ในแผงของคุณ — มันไม่ผ่าน SSH หรือแม้แต่ต้องการ network stack ดังนั้นกฎ firewall บล็อกมันไม่ได้ เข้าสู่ระบบที่นั่น จากนั้น `sudo ufw disable` (เร็วที่สุด) หรือ `sudo ufw allow <port>` เพื่อแก้กฎเจาะจง

บน NAT VPS ฉันอนุญาตพอร์ตใดใน ufw?

อนุญาต 22 ไม่ใช่พอร์ตภายนอก บนแพ็กเกจ NAT คุณเชื่อมต่อบนพอร์ตสูงอย่าง 20266 แต่นั่นถูก forward ไปพอร์ต 22 ภายใน VM ufw รันภายใน VM และเห็นเฉพาะ 22 การอนุญาต 20266 ไม่ทำอะไร อนุญาต 22

`ufw reset` ปลอดภัยกว่า `ufw disable` ไหม?

`disable` แค่ปิด firewall และเก็บกฎของคุณ — ทางกลับเข้าที่เร็วที่สุด `reset` ล้างทุกกฎเป็นค่าเริ่มต้น ใช้ `disable` เพื่อกู้คืน จากนั้นเพิ่มกฎอย่างระมัดระวัง `reset` เฉพาะหากชุดกฎยุ่งที่คุณอยากให้หายไป

← กลับไปบล็อกดูแพ็กเกจและราคา →

ความคิดเห็น

ยังไม่มีความคิดเห็น เป็นคนแรกสิ

แสดงความคิดเห็น

ความคิดเห็นจะถูกตรวจสอบก่อนแสดง