รับเครดิต $200

สอนสร้าง Droplet แรกบน DigitalOcean ตั้งแต่ศูนย์: SSH, ผู้ใช้ใหม่, ไฟร์วอลล์ และอัปเดตระบบ

อัปเดตล่าสุด 3 พฤศจิกายน 2569 · อ่านประมาณ 9 นาที · โดย DigitalOcean Review ไทย

คู่มือภาษาไทยทีละขั้นตอน สร้าง Droplet Ubuntu บน DigitalOcean สร้าง SSH key เชื่อมต่อด้วย SSH ตั้งผู้ใช้ sudo เปิดไฟร์วอลล์ UFW ตั้ง swap เขตเวลาไทย และอัปเดตความปลอดภัยอัตโนมัติ

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

ก่อนเริ่ม: สิ่งที่ต้องเตรียม

บทความนี้พาคุณสร้างเซิร์ฟเวอร์ Linux เครื่องแรกบน DigitalOcean ตั้งแต่ศูนย์ และตั้งค่าพื้นฐานที่ปลอดภัย สิ่งที่ต้องมี

เราจะใช้ Ubuntu LTS (รุ่นสนับสนุนระยะยาว) เพราะมีเอกสารและชุมชนใหญ่ที่สุด คำสั่งส่วนใหญ่ใช้ได้กับ Debian ด้วย

ขั้นที่ 1: สร้าง SSH key

SSH key ปลอดภัยกว่าการใช้รหัสผ่านมาก เพราะคนอื่นเดาไม่ได้ และบอตที่สแกนรหัสผ่านทั่วอินเทอร์เน็ตจะเข้าไม่ได้ ถ้าตั้งค่าให้ปิดการล็อกอินด้วยรหัสผ่าน

บนเครื่องของคุณ (macOS/Linux/Windows PowerShell) รัน

ssh-keygen -t ed25519 -C "[email protected]"

กด Enter เพื่อใช้ตำแหน่งเริ่มต้น และตั้ง passphrase เพื่อป้องกันกรณีไฟล์ key หลุด จากนั้นดู public key

cat ~/.ssh/id_ed25519.pub

ผลลัพธ์ที่ขึ้นต้นด้วย ssh-ed25519 ... คือ public key ที่ปลอดภัยที่จะแชร์ ส่วนไฟล์ id_ed25519 (ไม่มี .pub) คือ private key ห้ามส่งให้ใคร

บน Windows PowerShell ใช้ type $env:USERPROFILE\.ssh\id_ed25519.pub แทน cat

ขั้นที่ 2: เพิ่ม SSH key ใน DigitalOcean

  1. เข้าเมนู Settings → Security → SSH Keys (ชื่อเมนูอาจต่างเล็กน้อยตามเวอร์ชันหน้าเว็บ)
  2. กด Add SSH Key วาง public key ตั้งชื่อ เช่น "laptop-2569"
  3. บันทึก

ขั้นที่ 3: สร้าง Droplet

  1. กด Create → Droplets
  2. Region: แนะนำ Singapore สำหรับผู้ใช้ในไทย (ความหน่วงต่ำ) ดู DigitalOcean สำหรับคนไทย
  3. Image: Ubuntu (เลือกรุ่น LTS ล่าสุดที่มีให้ เช่น 24.04 LTS)
  4. Size: Basic → Regular → เลือก $6 (1 GiB) หรือ $12 (2 GiB) สำหรับเริ่มต้น ดูตัวเลือกใน ราคา DigitalOcean ทุกบริการ
  5. Authentication: เลือก SSH Key แล้วติ๊กคีย์ที่เพิ่มไว้
  6. ตัวเลือกเสริม: เปิด Monitoring (ฟรี) จะได้กราฟ CPU/RAM และตั้งแจ้งเตือนได้ ส่วน Backups ค่อยเปิดภายหลังถ้าต้องการ (คิดเพิ่ม)
  7. ตั้ง hostname ที่จำง่าย เช่น web-01 แล้วกด Create Droplet

ภายในไม่กี่สิบวินาทีคุณจะได้ที่อยู่ IPv4 ของเครื่อง เช่น 203.0.113.10 (ตัวอย่าง)

ขั้นที่ 4: เชื่อมต่อด้วย SSH

ssh [email protected]

เปลี่ยน IP เป็นของคุณ ครั้งแรกจะถามยืนยัน fingerprint ให้พิมพ์ yes ถ้าเข้าได้ แปลว่า key ทำงานถูกต้อง

ขั้นที่ 5: อัปเดตระบบ

apt update && apt upgrade -y

ถ้ามีการอัปเดตเคอร์เนล ระบบอาจแนะนำให้รีบูต (reboot) ทำทันทีตอนนี้ได้เพราะเครื่องยังว่าง

ขั้นที่ 6: สร้างผู้ใช้ใหม่ที่ไม่ใช่ root

การใช้ root ตลอดเวลาเสี่ยงเกินไป ให้สร้างผู้ใช้ปกติที่ใช้ sudo ได้

adduser deploy
usermod -aG sudo deploy

คัดลอก SSH key ของ root ให้ผู้ใช้ใหม่

rsync --archive --chown=deploy:deploy ~/.ssh /home/deploy

เปิดหน้าต่าง Terminal ใหม่ แล้วทดสอบล็อกอินด้วย

ssh [email protected]
sudo whoami

ถ้าได้คำตอบว่า root แปลว่าทุกอย่างพร้อม อย่าปิดหน้าต่างเดิมจนกว่าจะทดสอบสำเร็จ กันพลาดจนเข้าเครื่องไม่ได้

ขั้นที่ 7: เปิดไฟร์วอลล์ UFW

UFW เป็นไฟร์วอลล์ที่ง่ายที่สุดบน Ubuntu ตั้งกฎให้เปิดเฉพาะพอร์ตที่จำเป็น

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

สำคัญ: ต้อง allow OpenSSH ก่อน enable เสมอ ไม่เช่นนั้นคุณจะล็อกตัวเองออกจากเครื่อง นอกจากนี้ DigitalOcean มี Cloud Firewall (ฟรี) ที่ทำงานระดับเครือข่ายอีกชั้น ดูใน คู่มือความปลอดภัยเซิร์ฟเวอร์

ขั้นที่ 8: ปิดการล็อกอินด้วยรหัสผ่านและห้าม root login

แก้ไฟล์ตั้งค่า SSH

sudo nano /etc/ssh/sshd_config

หาและตั้งค่าบรรทัดเหล่านี้ (ถ้าไม่มีให้เพิ่ม)

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

ตรวจสอบรูปแบบก่อนรีสตาร์ท

sudo sshd -t
sudo systemctl restart ssh

บน Ubuntu บางรุ่นอาจมีไฟล์ใน /etc/ssh/sshd_config.d/ ที่ override ค่าเหล่านี้ ให้ตรวจดูว่าไม่มีบรรทัดที่ขัดแย้ง (เช่น PasswordAuthentication yes) แล้วทดสอบล็อกอินใหม่จากหน้าต่างอื่นก่อนปิดหน้าต่างเดิม

ขั้นที่ 9: ตั้งเขตเวลาไทย

sudo timedatectl set-timezone Asia/Bangkok
timedatectl

หมายเหตุ: ผู้พัฒนาบางคนชอบให้เซิร์ฟเวอร์ใช้ UTC และแปลงเวลาที่ฝั่งแอป ซึ่งก็เป็นแนวปฏิบัติที่ดี เลือกอย่างใดอย่างหนึ่งและใช้ให้สม่ำเสมอ

ขั้นที่ 10: เพิ่ม swap (สำหรับเครื่อง RAM น้อย)

เครื่อง 1 GiB ควรมี swap กันกระบวนการถูกฆ่าเมื่อ RAM เต็ม

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h

swap บน SSD ช้ากว่า RAM จริงมาก ใช้เป็นตัวกันเหนียวเท่านั้น ถ้าต้องใช้ swap ตลอดเวลาแปลว่าควรอัปเกรดเครื่อง

ขั้นที่ 11: เปิดอัปเดตความปลอดภัยอัตโนมัติ

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

เลือก Yes ระบบจะติดตั้งแพตช์ความปลอดภัยให้อัตโนมัติ ช่วยลดความเสี่ยงช่องโหว่ได้มาก

ขั้นที่ 12: ติดตั้ง fail2ban (ทางเลือก)

fail2ban ช่วยแบน IP ที่พยายามเดารหัสผ่านซ้ำ ๆ

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

ถ้าปิดการล็อกอินด้วยรหัสผ่านแล้ว บอตเดารหัสผ่านก็เข้าไม่ได้อยู่ดี แต่ fail2ban ช่วยลด log รกและโหลดเล็กน้อย

รับเครดิตฟรี $200 (ใช้ได้ 60 วัน)สมัคร DigitalOcean ผ่านลิงก์แนะนำของเรา แล้วเพิ่มวิธีชำระเงินที่ใช้งานได้ ระบบจะให้เครดิตทดลองใช้งาน ตามเงื่อนไขของ DigitalOcean ณ วันที่สมัคร
สมัครรับเครดิต $200 →

ขั้นที่ 13: เชื่อมโดเมนกับ Droplet

  1. ไปที่ผู้ให้บริการโดเมนของคุณ แล้วชี้ nameserver ไป DigitalOcean (ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com) หรือจะใช้ DNS ของผู้ให้บริการเดิมก็ได้
  2. ที่เมนู Networking → Domains เพิ่มโดเมน แล้วสร้าง record
  3. A record ชื่อ @ ชี้ไป IPv4 ของ Droplet
  4. A record ชื่อ www ชี้ IP เดียวกัน (หรือใช้ CNAME ไปที่ @)
  5. รอ DNS กระจายตัว ปกติไม่กี่นาทีถึงไม่กี่ชั่วโมง ตรวจด้วย dig +short yourdomain.com

ขั้นที่ 14: ติดตั้งเว็บเซิร์ฟเวอร์ตัวแรก

ทดลองติดตั้ง Nginx

sudo apt install nginx -y
curl -I http://localhost

เปิดเบราว์เซอร์ไปที่ http://IP-ของคุณ จะเห็นหน้า "Welcome to nginx!" ต่อไปคุณสามารถติดตั้ง WordPress ต่อตาม ติดตั้ง WordPress บน DigitalOcean หรือ deploy แอปด้วยวิธีอื่น

เช็กลิสต์หลังตั้งค่าเสร็จ

  • [x] ล็อกอินด้วย SSH key เท่านั้น ปิด root และรหัสผ่าน
  • [x] เปิด UFW อนุญาตเฉพาะ 22/80/443
  • [x] อัปเดตระบบและเปิด unattended-upgrades
  • [x] ตั้งเขตเวลาและ swap
  • [ ] เปิด Cloud Firewall และ Monitoring ใน Control Panel
  • [ ] ตั้งแผนสำรองข้อมูล (Snapshot/Backup) ดู คู่มือความปลอดภัยเซิร์ฟเวอร์
  • [ ] ตั้ง Billing Alert และเปิด 2FA ในบัญชี DigitalOcean

ข้อผิดพลาดที่พบบ่อย

ล็อกอินไม่ได้: Permission denied (publickey)

สาเหตุที่พบบ่อยคือสิทธิ์ไฟล์ผิด บนเซิร์ฟเวอร์ ตรวจว่า ~/.ssh เป็น 700 และ ~/.ssh/authorized_keys เป็น 600 และเป็นของผู้ใช้นั้น หรือใช้ key คนละไฟล์กับที่เพิ่มไว้ ลอง ssh -i ~/.ssh/id_ed25519 -v deploy@IP เพื่อดู log

ล็อกตัวเองออกจากเครื่องเพราะไฟร์วอลล์

ใช้ Recovery Console ใน Control Panel (เมนูของ Droplet → Access → Launch Recovery Console) เพื่อเข้าเครื่องผ่านเบราว์เซอร์ แล้วแก้กฎ UFW ได้ (sudo ufw allow OpenSSH)

ลืมลบ Droplet ทดลอง

ตั้งนิสัยลบเครื่องที่ไม่ใช้ทันที ปิดเครื่องไม่ได้หยุดคิดเงิน ดู 15 วิธีลดค่าใช้จ่าย DigitalOcean

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

ใช้รหัสผ่านแทน SSH key ได้ไหม

ทำได้ แต่เสี่ยงกว่ามาก เพราะเซิร์ฟเวอร์บนอินเทอร์เน็ตถูกบอตสแกนเดารหัสผ่านตลอดเวลา ถ้าจำเป็นต้องใช้รหัสผ่าน ใช้รหัสที่ยาวและสุ่ม พร้อม fail2ban

ควรเลือก Ubuntu หรือ Debian

ทั้งสองเสถียรมาก Ubuntu LTS มีบทความสอนมากกว่าและ 1-Click App ส่วนใหญ่ใช้ Ubuntu เหมาะกับมือใหม่

เปิด Monitoring เสียเงินไหม

Droplet Monitoring ของ DigitalOcean ไม่คิดค่าบริการเพิ่มตามที่ผู้ให้บริการเปิดเผย (ตรวจสอบสถานะล่าสุดใน Control Panel) ช่วยตั้งแจ้งเตือนเมื่อ CPU หรือดิสก์ใกล้เต็ม

รับเครดิตฟรี $200 (ใช้ได้ 60 วัน)สมัคร DigitalOcean ผ่านลิงก์แนะนำของเรา แล้วเพิ่มวิธีชำระเงินที่ใช้งานได้ ระบบจะให้เครดิตทดลองใช้งาน ตามเงื่อนไขของ DigitalOcean ณ วันที่สมัคร
สมัครรับเครดิต $200 →