ชั่วโมงแรกหลังได้ VPS มา: คู่มือเซ็ตอัพเริ่มต้นจากเครื่องเปล่าจนปลอดภัยและใช้งานได้จริง (ทำให้ OpenClaw ของคุวปลอดภัยขึ้น)
VPS เครื่องใหม่ที่เพิ่งซื้อมาก็เหมือนประตูบ้านที่ยังไม่ได้ล็อก มีสคริปต์คิดดีจากทั่วโลกคอยมาเคาะอยู่ตลอดเวลา บทความนี้จะพาคุณมาล็อกประตูให้แน่นหนา เผื่อกันลูกเล่นตัวป่วน (openclaw) ของคุณไม่ให้วิ่งแจ๋นไปไกล
0、มาวางม้ากันก่อน
เพิ่งซื้อ VPS มาใหม่ ตื่นเต้นจัด คว้า IP กับพาสเวิร์ด root มาได้แล้ว แล้วจะทำยังไงต่อ?
คนส่วนใหญ่มักจะรีบลงมือติดตั้งซอฟต์แวร์และเดployโปรเจกต์กันเลย
นี่คือนิสัยที่อันตรายชะมัด
VPS ของคุณมี Public IP อยู่ นั่นหมายความว่าใครก็ตามในโลกนี้สามารถลองเชื่อมต่อเข้ามาได้ และในค่าเริ่มต้นนั้น:
- พอร์ตเปิดเผยเป็น 22
- ยูสเซอร์เนมที่คนรู้จักกันดีคือ root
- เหลือแค่พาสเวิร์ดตัวเดียวที่คอยปกป้องคุณอยู่
ทุกวันมีสคริปต์อัตโนมัติมากมายคอยสแกนช่วง IP เพื่อลองดรายบังคับพาสเวิร์ดที่คนใช้กันบ่อยๆ ตั้งแต่เซิร์ฟเวอร์ของคุณออนไลน์เป็นต้นมา มันก็ถูกโจมตีอยู่แล้ว
ดังนั้น สิ่งแรกที่ต้องทำหลังจากได้ VPS มา ไม่ใช่ลงซอฟต์แวร์นะ แต่คือตั้งค่าความปลอดภัยเบื้องต้นให้เรียบร้อยก่อนเลย
1、เป้าหมายที่เราจะทำ
เป้าหมายของบทความนี้คือ:
- ✅ ตั้งค่า การเข้าถึงระยะไกลอย่างปลอดภัย: ล็อกอินด้วย SSH Key + เปลี่ยนจากพอร์ตเริ่มต้น
- ✅ สร้าง ผู้ใช้ทั่วไป: เลิกใช้ root โดยตรงกันเถอะ
- ✅ ตั้งค่า ไฟร์วอลล์: เปิดเฉพาะพอร์ตที่จำเป็นจริงๆ
- ✅ เปิดใช้งาน ตัวเร่งเครือข่าย: BBR ช่วยให้เน็ตพุ่งสุดป้าย
- ✅ ป้องกัน การถอนรหัสผ่านแบบเดรัจฉีน: fail2ban แบน IP ตัวการให้เองอัตโนมัติ
ทำครบทุกข้อแล้ว ตอนนี้ VPS ของคุณจะมีพื้นฐานที่แน่นอน พร้อมที่จะลงมือเดploy บริการต่างๆ ได้อย่างสบายใจแล้วล่ะ
2. วางแผนและทำความเข้าใจ
ทำไมต้องมาตั้งค่าพวกนี้กันนะ?
VPS ที่เพิ่งซื้อมาใหม่ก็เหมือนบ้านที่เพิ่งสร้างเสร็จยังไม่ได้ตกแต่งเลยนั่นแหละ:
| สถานะเริ่มต้น | ความเสี่ยง | ทางออกของเรา |
|---|---|---|
| ล็อกอินด้วย root ตรงๆ | สิทธิ์สูงเกินไป พลาดทีเดียวพังใหญ่ | สร้าง user ปกติ + sudo |
| ล็อกอินด้วยรหัสผ่าน | โดน brute force แตกได้ | ล็อกอินด้วย SSH Key |
| พอร์ต 22 ค่าเริ่มต้น | โดนสแกนเน้นๆ | เปลี่ยนเป็นพอร์ตที่ไม่มาตรฐาน |
| ปิดไฟร์วอลล์ | เปิดพอร์ตหมดทุกอย่าง | UFW เปิดเฉพาะพอร์ตที่จำเป็น |
| เน็ตเวิร์กเดิมๆ | 丢包สูง ดีเลย์มาก | อัลกอริทึมควบคุม BBR |
ขั้นตอนโดยรวม

เราจะทำตามลำดับนี้เลยนะ แล้วก็จะอธิบายให้ฟังทุกขั้นตอนว่าทำไมถึงทำแบบนี้
3. ขั้นตอนการจัดการ
3.1 ล็อกอินครั้งแรกและอัปเดตระบบ
ดึง IP ของเซิร์ฟเวอร์
หลังจากซื้อ VPS แล้ว ผู้ให้บริการจะส่งอะไรมาให้บ้าง:
- IP Address: เช่น
192.168.1.100 - Port: ปกติจะเป็น
22(บางผู้ให้บริการอาจเปลี่ยนเป็นพอร์ตอื่น) - Username: ปกติจะเป็น
root - Password: สตริงตัวอักษรที่สุ่มสร้างขึ้นมา

การเชื่อมต่อ SSH
สำหรับสาวก Mac / Linux: เปิด Terminal แล้วพิมพ์คำสั่งนี้ลงไปได้เลย:
1 | ssh root@你的服务器IP |
สำหรับสาวก Windows:
- Windows 10/11 มี OpenSSH มาให้ในตัว สามารถใช้คำสั่งด้านบนใน PowerShell หรือ CMD ได้เลย
- หรือจะใช้โปรแกรมอย่าง Termius, MobaXterm ก็ได้เช่นกัน
ตอนเชื่อมต่อครั้งแรก จะมีข้อความให้ยืนยัน Fingerprint แบบนี้:
1 | The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. |
นี่คือระบบกำลังถามเราอยู่ว่า: “ตู้นี้ของใหม่ ไม่คุ้นเคยนะ แน่ใจนะว่าจะเชื่อมต่อ?”
พิมพ์ yes แล้วกด Enter จากนั้นก็ใส่ Password (ข้อควรระวัง: ตอนพิมพ์จะไม่มีตัวอักษรขึ้นมาโชว์ให้เห็นเลย นี่คือฟีเจอร์ความปลอดภัยปกติ) แล้วกด Enter ไป

ถ้าเจอข้อความประมาณนี้ แปลว่าล็อกอินสำเร็จแล้ว:
1 | Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.x.x-x-generic x86_64) |
💡 ทำไมต้องเช็ค Fingerprint?
เพื่อป้องกัน “Man-in-the-Middle Attack” นะฮะ การจดจำ fingerprint ตั้งแต่ครั้งแรกที่เชื่อมต่อ แล้วคราวหน้าถ้ามันเปลี่ยนไป แสดงว่าอาจมีคนแอบปลอมตัวเป็นเซิร์ฟเวอร์ของเราก็ได้

มาทำความรู้จักกับเซิร์ฟเวอร์ของคุณกันก่อน
หลังจากล็อกอินเข้าไปแล้ว มาดูสภาพรวมๆ ของเครื่องนี้กันก่อนเลย:
1 | # 查看系统版本 |

จำข้อมูลพวกนี้เอาไว้นะ เดี๋ยวตอนเช็คปัญหาทีหลังจะได้มีใช้
อัปเดตระบบ
พอรู้ข้อมูลเซิร์ฟเวอร์ครบแล้ว ภารกิจแรกที่ต้องทำเลยคืออัปเดตระบบ ไอ้เดิมอิมเมจของเซิร์ฟเวอร์ใหม่อาจจะเป็นเวอร์ชั่นของเมื่อไม่กี่เดือนที่แล้ว ซึ่งช่วงนั้นอาจจะมีแพตช์ความปลอดภัยใหม่ๆ ออกมาแล้วก็ได้:
1 | # 更新软件包列表 + 升级所有软件 + 清理 |
อธิบายพารามิเตอร์:
apt update: อัปเดต index ของแพ็กเกจapt full-upgrade: อัปเกรดซอฟต์แวร์ทุกตัว รวมไปถึงเคอร์เนลด้วย-y: ยืนยันอัตโนมัติ ไม่ต้องมานั่งพิมพ์ yes เองapt autoremove: ลบ dependency ที่ไม่ต้องใช้แล้วทิ้งapt autoclean: ล้างแคชของแพ็กเกจที่ดาวน์โหลดมา

⏱️ ขั้นตอนนี้อาจจะใช้เวลาสักไม่กี่นาที ขึ้นอยู่กับว่ามีอัปเดตเยอะแค่ไหน ถ้าระหว่างทางมันถามให้ยืนยันบ้าง ก็กดไปตามลอจิกของมันได้เลยครับ
เช็คดูว่าต้องรีบูตไหม
หลังอัปเดตเคอร์เนล ปกติแล้วมักจะต้องรีบูตถึงจะมีผล:
1 | # 检查是否需要重启 |

ถ้าขึ้นมาบอกว่าต้องรีบูต:
1 | reboot |
หลังรีบูตเสร็จก็ต้องเข้ามาเชื่อมต่อ SSH ใหม่อีกรอบนะ
ติดตั้งเครื่องมือที่ใช้บ่อยๆ
1 | apt install -y sudo curl wget git vim htop tree unzip net-tools ufw fail2ban neofetch |
เครื่องมือพวกนี้เอาไว้ทำอะไร:
| เครื่องมือ | ไว้ทำอะไร | |
|---|---|---|
sudo |
ให้ยูสเซอร์ทั่วไปรันคำสั่งแอดมินได้ | |
curl / wget |
โหลดไฟล์ | |
git |
คุมเวอร์ชัน | |
vim |
เอดิเตอร์แต่งข้อความ | |
htop |
โมนิเตอร์โปรเซสที่หน้าตาดีกว่า | |
tree |
โชว์โครงสร้างโฟลเดอร์แบบต้นไม้ | |
net-tools |
เครื่องมือเน็ตเวิร์ก (ifconfig, netstat ฯลฯ) | |
ufw |
ไฟร์วอลล์ใช้ง่ายๆ | |
fail2ban |
กัน Brute-force | |
neofetch |
โชว์ข้อมูลระบบสวยๆ | |
![]() |
3.2 สร้าง User ที่ไม่ใช่ root
ทำไมไม่ใช้ root ไปเลย?
สิทธิ์ของ root มันสูงเกินไป พลาดนิดเดียว rm -rf / ก็อาจหายหมดทั้งเครื่องเลย ปกติเราควรใช้งานผ่าน user ทั่วไป แล้วค่อยเรียกใช้สิทธิ์แอดมินผ่าน sudo เมื่อไหร่ที่ต้องการจริงๆ
ลอบสเตอร์ (openclaw) มันคือมอนสเตอร์นะ จะกล้าไปยกสิทธิ์ root ให้มันใช้ได้ยังไงกัน?
สร้าง User ใหม่
1 | # 创建用户(把 ittinker 换成你想要的用户名) |
ระบบจะให้เราตั้งรหัสผ่านและกรอกข้อมูลนิดหน่อย:
1 | New password: # 输入密码(不会显示) |

ตั้งสิทธิ์ sudo
1 | # 把用户加入 sudo 组, ittinker 换成你自己上面创建的那个用户 |
ลองเช็คดูหน่อย:
1 | # 切换到新用户 ittinker 换成你自己上面创建的那个用户 |
ถ้าขึ้นผลลัพธ์ว่า root แปลว่าตั้งค่า sudo สำเร็จแล้ว

💡 ทริคเล็กๆ
พิมพ์
exitเพื่อสลับกลับไปใช้งาน root ขั้นตอนต่อจากนี้เราจะใช้ root ตั้งค่าต่อไปก่อน พอเสร็จแล้วค่อยสลับกลับไปใช้ user ทั่วไปนะ
3.3 ตั้งค่าล็อกอินด้วย SSH Key
ยืนยันตัวตนด้วย Key vs. ใช้รหัสผ่าน

การใช้ Key ปลอดภัยกว่าใช้รหัสผ่านเยอะเลย:
- รหัสผ่านโดน Brute force ได้ แต่ Key แทบจะเป็นไปไม่ได้เลย
- สะดวกกว่า ไม่ต้องคอยพิมพ์รหัสผ่านทุกครั้ง
- แม้รหัสผ่านจะรั่ว ถ้าไม่มี Private key ก็เข้ามาไม่ได้อยู่ดี
ขั้นตอนที่ 1: สร้าง Key pair ที่เครื่องตัวเอง
รันบน เครื่องของคุณเอง (ไม่ใช่เซิร์ฟเวอร์) นะ:
1 | # 生成 ED25519 密钥(推荐,更安全更快) |
ระบบจะขึ้นข้อความถามแบบนี้:
1 | Enter file in which to save the key (/Users/你/.ssh/id_ed25519): |
กด Enter ผ่านไปเลยเพื่อใช้พาธเริ่มต้นเลยก็ได้ ในที่นี้เราใช้ ./ittinker หมายความว่าเซฟไว้ในโฟลเดอร์ปัจจุบัน ชื่อไฟล์ ittinker
1 | Enter passphrase (empty for no passphrase): |
จะให้ตั้งพาสเวิร์ดป้องกันคีย์ (เพิ่มชั้นความปลอดภัย) หรือจะกด Enter ผ่านเพื่อเว้นว่างไว้เลยก็ได้

พอสร้างเสร็จ คุณจะเห็นไฟล์อยู่ในโฟลเดอร์ ~/.ssh/ 2 ไฟล์ (ด้านล่างคือชื่อไฟล์เริ่มต้นนะ ถ้ากด Enter ผ่านไปก็จะได้แบบนี้):
id_ed25519: Private Key ห้ามปล่อยให้รั่วไหลเด็ดขาด!id_ed25519.pub: Public Key เอาไว้สำหรับอัปโหลดขึ้นเซิร์ฟเวอร์
💡 ed25519 vs RSA
ed25519คืออัลกอริทึมที่แนะนำในตอนนี้ ปลอดภัยกว่าและคีย์สั้นกว่า RSA แบบดั้งเดิม ถ้าระบบของคุณเก่าเกินไปและไม่รองรับ ก็ใช้ssh-keygen -t rsa -b 4096แทนได้
เกร็ดเล็กๆ น้อยๆ นะ คีย์ที่สร้างจาก ed25519 จะมีขนาดเล็กกว่าคีย์จาก rsa ที่ไฟล์ใหญ่กว่าเยอะมาก ลองไปถาม AI ดูถึงรู้ว่าขนาดไม่ได้มีผลอะไรหรอก มันขึ้นอยู่กับอัลกอริทึมต่างหาก
ขั้นตอนที่สอง: อัปโหลด Public Key ขึ้นเซิร์ฟเวอร์
วิธี A: ใช้ ssh-copy-id (แนะนำ)
1 | # 在你的电脑上执行 |
ใส่พาสเวิร์ดเสร็จ Public Key ก็จะถูกคัดลอกขึ้นเซิร์ฟเวอร์ให้อัตโนมัติเลย

วิธี B: คัดลอกเองแบบแมนนวล
ถ้า ssh-copy-id ใช้ไม่ได้ ก็ทำแบบแมนนวลได้เลย:
1 | # 1. 在你的电脑上,查看公钥内容 |
ก๊อปปี้ข้อความที่ได้ (มันจะเป็นข้อความยาวๆ ที่ขึ้นต้นด้วย ssh-ed25519)
1 | # 2. 在服务器上,为新用户创建 .ssh 目录, ittinker 换成你刚刚创建的用户名 |
⚠️ เรื่อง Permission สำคัญมาก!
SSH จะเข้มงวดเรื่องสิทธิ์การเข้าถึงไฟล์อยู่แล้ว:
- โฟลเดอร์
.ssh: 700 (ให้เข้าถึงได้แค่ยูสเซอร์ตัวเอง)- ไฟล์
authorized_keys: 600 (ให้แค่ยูสเซอร์ตัวเองอ่านและเขียนได้)ถ้าตั้งสิทธิ์ผิด SSH จะไม่ยอมให้ล็อกอินด้วย Key แน่นอน
ขั้นตอนที่ 3: ทดสอบการล็อกอินด้วย Key
เปิดหน้าต่าง Terminal ใหม่ขึ้นมา (อย่าพึ่งปิดหน้าต่างเดิมนะ เผื่อไปตั้งค่าพลา้ยยังได้กู้คืน) แล้วลองทดสอบล็อกอินด้วย Key ดู:
1 | ssh ittinker@你的服务器IP |
ถ้าเข้าได้โดยไม่ต้องกรอกพาสเวิร์ด แปลว่าตั้งค่า Key สำเร็จแล้วจ้า! 🎉
(ถ้าตอนสร้าง Private key คุณตั้ง passphrase ไว้ มันจะขึ้นให้กรอกพาสเวิร์ดของ Private key นะ อันนี้ปกติแล้ว)

ตรงนี้เราเพิ่มพารามิเตอร์ -i เข้าไป เพราะ Key อันนี้เราไม่ได้เก็บไว้ที่ Path เริ่มต้น แต่เก็บไว้ที่ Path ปัจจุบันแทน ถ้าไม่ระบุให้ชัดเจน ระบบจะไปเรียกใช้ Key ใน Path เริ่มต้นให้เอง
3.4 ปรับแต่งความปลอดภัยให้ SSH
ตอนนี้ล็อกอินด้วย Key ใช้ได้แล้ว เรามาล็อคความปลอดภัยของ SSH ให้แน่นหนาขึ้นกันเถอะ:
- เปลี่ยน Port เริ่มต้น (เพื่อกันโดนสแกน)
- ปิดการล็อกอินด้วยพาสเวิร์ด
- ห้าม root ล็อกอินตรงๆ
แก้ไขไฟล์ Config ของ SSH
1 | # 备份原配置 |

หาและแก้ไขค่า config ต่อไปนี้ (บางตัวอาจจะถูก comment ไว้ ให้ลบเครื่องหมาย # ด้านหน้าออกก่อนนะ):
1 | # 修改端口(选一个 1024-65535 之间的数字) |

กดบันทึกแล้วออกจากโปรแกรม (ctrl + o)
สำหรับ Nano วิธีบันทึกคือกด ctrl + o แล้วมันจากถามชื่อไฟล์ กด Enter ผ่านได้เลย ส่วนวิธีออกคือกด ctrl + x
รีสตาร์ท Service ของ SSH
1 | systemctl restart sshd.service |
⚠️ ข้อควรระวัง!
อย่าพึ่งปิดหน้าต่าง Terminal อันปัจจุบันเด็ดขาด! ให้เปิดหน้าต่างใหม่ขึ้นมาทดสอบก่อนเลยว่า config ตัวใหม่ล็อกอินเข้าได้ปกติไหม:
1 ssh -p 22000 yourname@你的服务器IPถ้าเข้าได้สบาย ค่อยไปปิดหน้าต่างเก่าทิ้ง แต่ถ้าเข้าไม่ได้ ก็ยังพอมีโอกาสกลับไปแก้ config ในหน้าต่างเก่าได้อยู่
ถ้าคุณซื้อเป็นเซิร์ฟเวอร์ประเภท Lightweight ส่วนใหญ่พอร์ตนี้จะเปลี่ยนไม่ได้นะ แต่ถ้าเป็น ECS แบบดั้งเดิมจะเปลี่ยนได้ ระวังเรื่องนี้หน่อย
3.5 ตั้งค่า UFW Firewall

UFW (Uncomplicated Firewall) คือเครื่องมือ Firewall มาตรฐานของ Ubuntu ตั้งค่าง่ายแต่พลังเยอะเลย
การตั้งค่าเบื้องต้น
1 | # 设置默认策略:拒绝所有入站,允许所有出站 |
เปิดใช้งาน Firewall
1 | ufw enable |
ระบบจะขึ้นข้อความเตือนมา:
1 | Command may disrupt existing ssh connections. Proceed with operation (y|n)? |
พิมพ์ y เพื่อยืนยัน
เช็คสถานะ
1 | ufw status verbose |

23022 คือผมพิมพ์ผิดเองครับ ทุกคนใส่ตามเลขพอร์ตจริงของตัวเองได้เลยนะ
ผลลัพธ์จะออกมาประมาณนี้:
1 | Status: active |
คำสั่งที่ใช้บ่อยๆ สำหรับเรียกดู
1 | # 查看状态 |
3.6 เปิดใช้งาน BBR เร่งความเร็วเน็ต
BBR (Bottleneck Bandwidth and Round-trip propagation time) คืออัลกอริทึมควบคุมคอนเจสชัน TCP ที่ Google เป็นคนพัฒนาขึ้นมา ช่วยเพิ่มประสิทธิภาพเครือข่ายได้แบบชัดเจนเลยครับ
เปิดใช้งานแบบคลิกเดียว
1 | # 添加 BBR 配置 |
ตรวจสอบว่าเปิดสำเร็จหรือยัง
1 | # 查看当前拥塞控制算法 |
ผลลัพธ์ที่ได้ควรจะเป็นแบบนี้:
1 | net.ipv4.tcp_congestion_control = bbr |
1 | # 确认 BBR 模块已加载 |
ผลลัพธ์จะออกมาประมาณนี้:
1 | tcp_bbr 20480 3 |
💡 ผลลัพธ์จากการเปิด BBR
หลังจากเปิด BBR แล้ว โดยเฉพาะในสภาพแวดล้อมที่เน็ตไม่ค่อยเสถียรหรือมี latency สูง คุณจะรู้สึกได้ทันทีเลยว่า:
- ความเร็วในการดาวน์โหลดเร็วขึ้น
- พิมพ์คำสั่งผ่าน SSH ลื่นไหลขึ้น
- โหลดหน้าเว็บเร็วกว่าเดิม

3.7 ตั้งค่า fail2ban ป้องกันการถูก Brute Force
fail2ban จะคอยเฝ้าสอดส่อง log ให้เองครับ แล้วก็จะแบน IP ที่ล็อกอินผิดพลาดหลายครั้งโดยอัตโนมัติทันที
การตั้งค่าเบื้องต้น
1 | # 复制默认配置(不要直接修改 jail.conf) |
หาส่วนของ [sshd] แล้วตรวจสอบให้แน่ใจว่ามีการตั้งค่าดังนี้นะครับ:
1 | [sshd] |

สตาร์ทเซอร์วิส
1 | # 重启 fail2ban |
เช็คสถานะ
1 | # 查看 fail2ban 状态 |

Output จะประมาณนี้:
1 | Status for the jail: sshd |
คำสั่งที่ใช้บ่อย
1 | # 手动封禁 IP |
3.8 [ไม่บังคับ] จัดการเซิร์ฟเวอร์หลายตัวด้วย SSH Config
ถ้าคุณมีเซิร์ฟเวอร์หลายตัว การพิมพ์ ssh -p 22000 user@ip ทุกครั้งก็วุ่นวายอยู่พอสมควร ลองใช้ SSH Config มาช่วยให้ชีวิตง่ายขึ้นกันเถอะ
ไฟล์ Config
เปิดแก้ไข ~/.ssh/config ใน เครื่องคอมของคุณเอง นะ:
1 | vim ~/.ssh/config |
แล้วเพิ่ม Config ลงไป:
1 | # 第一台服务器 |
วิธีใช้งาน
ตอนนี้เรียกใช้ผ่าน Alias ตรงๆ ได้เลย:
1 | # 连接第一台服务器 |
ไม่ต้องมานั่งจำ IP, Port หรือ Username ให้ปวดหัวแล้ว!
3.9 [ไม่บังคับ] อนุญาตเฉพาะ Cloudflare เท่านั้น
ถ้าเว็บไซต์ของคุณอยู่หลัง Cloudflare แทบจะทั้งหมด ก็เซ็ตให้เข้าได้แค่ IP ของ Cloudflare ผ่าน Port 80/443 อย่างเดียวเพื่อเพิ่มความปลอดภัยได้เลย
⚠️ ระวัง: การตั้งค่านี้ต้องใช้โดเมนของคุณเชื่อมต่อกับ Cloudflare CDN ไว้แล้วนะ
สคริปต์ตั้งค่าอัตโนมัติ
1 | # 下载脚本 |
สคริปต์นี้จะ:
- ไปดึง IP range ล่าสุดจากเว็บทางการของ Cloudflare
- เพิ่มกฎ UFW ให้ยอมรับเฉพาะ IP พวกนี้เข้าพอร์ต 80/443 เท่านั้น
- Reload UFW ซักรอบ
ตั้งเวลอัปเดตอัตโนมัติ
IP range ของ Cloudflare อาจจะมีการเปลี่ยนแปลง เรามาตั้งให้มันอัปเดตอัตโนมัติทุกสัปดาห์กัน:
1 | # 添加 cron 任务(每周一凌晨执行) |
3.10 ตั้งค่า Timezone
ค่าเริ่มต้นอาจจะเป็น UTC อยู่ เปลี่ยนเป็น Timezone ของที่คุณอยู่จะได้อ่าน Log ง่ายขึ้น:
1 | # 查看当前时区 |

3.11 [ไม่บังคับ] ตั้งค่าอัปเดตความปลอดภัยอัตโนมัติ
ปล่อยให้ระบบลง Security Patch เองอัตโนมัติเลย จะได้ไม่ต้องมานั่งทำเองทุกครั้ง:
1 | # 安装自动更新工具 |
เลือก “Yes” เพื่อเปิดใช้งานการอัปเดตอัตโนมัติ
💡 ฟีเจอร์นี้จะลง อัปเดตด้านความปลอดภัย ให้อัตโนมัติ โดยจะไม่อัปเกรดข้ามไปเวอร์ชันหลัก (Major Version) ใหม่ ๆ ให้เลย ก็ถือว่าปลอดภัยอยู่
4. สรุป
Checklist สำหรับการเตรียมระบบ
หลังจากตั้งค่าทั้งหมดด้านบนเสร็จแล้ว ลองเอา Checklist นี้ไปเช็คทบทวนซักรอบ:
| รายการตรวจสอบ | คำสั่ง | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| ระบบอัปเดตแล้ว | apt update && apt list --upgradable |
ไม่มีแพ็กเกจให้อัปเกรด |
| ผู้ใช้ทั่วไปใช้ sudo ได้ | sudo whoami |
แสดงผลลัพธ์ root |
| ล็อกอินด้วย Key ปกติ | ssh yourname@ip -p port |
ล็อกอินเข้าได้โดยไม่ต้องใส่รหัสผ่าน |
| ปิดการล็อกอินด้วยรหัสผ่านแล้ว | grep PasswordAuth /etc/ssh/sshd_config |
PasswordAuthentication no |
| เปลี่ยนพอร์ต SSH แล้ว | grep Port /etc/ssh/sshd_config |
พอร์ตที่คุณตั้งไว้ |
| เปิดใช้งาน Firewall แล้ว | ufw status |
Status: active |
| เปิดใช้งาน BBR แล้ว | sysctl net.ipv4.tcp_congestion_control |
= bbr |
| fail2ban กำลังทำงาน | systemctl status fail2ban |
active (running) |
| ตั้งค่า Timezone แล้ว | timedatectl |
Asia/Shanghai หรือเขตเวลาของคุณ |
| SSH Config ในเครื่อง | cat ~/.ssh/config |
ตั้งค่าชื่อย่อเซิร์ฟเวอร์ไว้แล้ว |
ตำแหน่งไฟล์สำคัญ
1 | /etc/ssh/sshd_config # SSH 服务端配置 |
แนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด
- อัปเดตระบบเป็นประจำ:
apt update && apt upgrade - เช็ค Log การล็อกอินเป็นระยะ:
lastb(ล็อกอินล้มเหลว),last(ล็อกอินสำเร็จ) - ติดตามสถานะการแบนของ fail2ban อยู่เสมอ
- แบ็กอัปไฟล์ Config สำคัญก่อนแก้ไขเสมอ
5. บันทึกปัญหาผิดปกติ
Q1: ล็อกอินด้วย Key ไม่ผ่าน ยังต้องใส่รหัสผ่านอยู่?
สาเหตุที่เป็นไปได้:
-
ปัญหาสิทธิ์ (Permission) (เจอบ่อยสุด)
1
2
3# 检查并修复权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys -
คัดลอก Public Key มาไม่ครบหรือผิด
1
2
3# 检查 authorized_keys 内容
cat ~/.ssh/authorized_keys
# 应该是一行完整的公钥,以 ssh-ed25519 或 ssh-rsa 开头 -
SELinux มากวน (ระบบ CentOS/RHEL)
1
restorecon -Rv ~/.ssh
Q2: เปลี่ยน Port แล้วเข้าไม่ได้?
วิธีเช็ค:
-
ดูให้แน่ใจว่าเปิด Port ใหม่ใน Firewall แล้ว:
1
ufw status | grep 你的端口
-
เช็คดูว่าตั้งค่า SSH ถูกต้อง:
1
grep Port /etc/ssh/sshd_config
-
ยืนยันว่า Service ของ SSH รันอยู่:
1
systemctl status sshd
-
ถ้าเข้าไม่ได้เลยสักทาง ให้ใช้ VNC/Console ของผู้ให้บริการเข้าไปแก้ไข
Q2.5: เปลี่ยน Port แล้วไม่มีผลเลย? (กรณี Lightweight Server ของผู้ให้บริการ Cloud)
อาการ: แก้ /etc/ssh/sshd_config แล้ว พอ Restart Service ทีไร Port 22 ก็ยังครองอยู่ ส่วน Port ใหม่ไม่ยอมทำงาน
วิธีวินิจฉัย:
bash
1 | # 查看是谁在监听 22 端口 |
ถ้า Output ออกมาประมาณนี้:
1 | tcp 0 0.0.0.0:22 0.0.0.0:* LISTEN 1/init |
แปลว่า Port 22 นั้นถูก init (PID 1) เป็นฝ่ายดักรออยู่ ไม่ใช่ Process ของ sshd นะเว้ย
เหตุผล: SSH ของบางค่ายที่เป็นแบบ “Light Application Server” หรือ “Container Instance” จะถูกจัดการผ่าน พร็อกซีระดับแพลตฟอร์ม ดังนั้นการแก้ไขค่า sshd ข้างในเซิร์ฟเวอร์ของคุณเองจึงไม่มีผล
วิธีแก้ไข:
| ประเภทอินสแตนซ์ | วิธีแก้ไขพอร์ต SSH |
|---|---|
| ECS แบบดั้งเดิม | แก้ไข sshd_config ✅ |
| เซิร์ฟเวอร์เบาๆ | อาจต้องไปแก้ที่แผงควบคุมของค่ายคลาวด์ หรือไม่รองรับการแก้ไขเลย |
| Container Instance | ส่วนใหญ่จะไม่รองรับการแก้ไข |
ถ้าอินสแตนซ์ของคุณไม่รองรับการเปลี่ยนพอร์ต มาตรการรักษาความปลอดภัยอย่างอื่นยิ่งสำคัญกว่า:
- ✅ สร้างผู้ใช้ทั่วไป + ปิดการล็อกอินด้วย root
- ✅ ล็อกอินด้วย SSH Key + ปิดการล็อกอินด้วยรหัสผ่าน
- ✅ ใช้ fail2ban ป้องกันการถูก Brute Force
ถ้าทำข้อเหล่านี้ครบและเหมาะสม ความปลอดภัยก็ยังถือว่าอยู่ในระดับสูงอยู่ดี
Q3: โดน fail2ban แบนตัวเอง?
1 | # 用 VNC 登录后解封 |
Q4: เปิด UFW แล้วเข้าเว็บไม่ได้?
1 | # 检查 80/443 是否开放 |
Q5: พิมพ์คำสั่งแล้วขึ้นว่าไม่พบ sudo?
บางที Debian แบบ Minimal Install อาจจะไม่มี sudo มาให้ ให้ใช้ root ในการติดตั้ง:
1 | apt install sudo |
6. สคริปต์ตั้งค่าเริ่มต้นแบบคลิกเดียว (ใช้เมื่อคุ้นเคยแล้ว)
ถ้าคุณเก่งและคุ้นเคยกับขั้นตอนข้างต้นแล้ว ก็สามารถใช้สคริปต์นี้เพื่อตั้งค่าเริ่มต้นแบบรวดเร็วได้เลย
⚠️ สำคัญ: ก่อนจะรันสคริปต์ อย่าลืมเช็คให้แน่ใจว่าเตรียม SSH Public Key ของคุณเรียบร้อยแล้วนะ
1 |
|
7. ทำไปถึงนี้ ความปลอดภัยดีขึ้นขนาดไหน?
| ขั้นตอน | ทำอะไรไปบ้าง | ทำไมถึงสำคัญ |
|---|---|---|
| อัปเดตระบบ | ลงแพตช์ล่าสุด | แก้บั๊กที่รู้ว่ามีช่องโหว่ |
| สร้างยูสเซอร์ใหม่ | เลิกใช้ root ตรงๆ | ลดความเสี่ยงพิมพ์ผิดทำเรื่องเลวร้าย |
| SSH Key | ใช้คีย์แทนรหัสผ่าน | กันพวกเดาพาสเวิร์ดได้เลย |
| เปลี่ยนพอร์ต | หนีจากพอร์ต 22 ที่เป็นค่าเริ่มต้น | ลดโอกาสโดนสแกนเจอ |
| ปิดรหัสผ่าน | อนุญาตให้ล็อกอินด้วยคีย์เท่านั้น | ตัดปัญหาโดนแฮ็กผ่านพาสเวิร์ดไปเลย |
| ปิด root | ห้ามล็อกอินด้วย root ตรงๆ | ทำให้คนร้ายบุกยากขึ้น |
| UFW Firewall | เปิดเฉพาะพอร์ตที่จำเป็น | ลดพื้นที่ให้คนมาโจมตี |
| เปิด BBR | ปรับแต่งเครือข่ายให้ลื่นขึ้น | เพิ่มความเร็วในการเข้าถึง |
| fail2ban | แบน IP ตัวการอัตโนมัติ | กันพวกมาก่อกวน่นต่อเนื่อง |
ทำครบทุกข้อ ความปลอดภัยเซิร์ฟเวอร์ของคุณจะแซง 90% ของ VPS ทั่วไปไปแล้ว
ตอนต่อไปเราจะมาคุยกันเรื่อง
ตอนต่อไปจะพาไปดู สรุปการตั้งค่าล็อกอินด้วย SSH Key แบบเร็วๆ โดยจะเจาะลึกให้ละเอียดขึ้นในเรื่อง:
- วิธีสร้างคีย์บนระบบปฏิบัติการต่างๆ
- จัดการคีย์หลายๆ อัน
- ตั้งค่า SSH Agent
- ตั้งค่า SSH Client ยอดฮิตต่างๆ
อัปเดตล่าสุด: มกราคม 2026
ซีรีส์กล่องเครื่องมือสำหรับ Indie Dev ฝ่าฟีเจอร์เดี่ยว กดติดตามกันไว้เลย!




