FTP
ความแตกต่างระหว่าง FTP และ SFTP คืออะไร?
FTP (File Transfer Protocol) และ SFTP (SSH File Transfer Protocol) ต่างกันในเรื่องความปลอดภัยของข้อมูลการโอนย้ายไฟล์ FTP เป็นโปรโตคอลเก่าที่ไม่มีการเข้ารหัส (Unencrypted) ซึ่งหมายความว่าสิ่งที่ส่งผ่าน FTP รวมถึงชื่อผู้ใช้ รหัสผ่าน และเนื้อหาไฟล์ทั้งหมด ส่งไปบนอินเทอร์เน็ตแบบปกติ ใครที่ได้เข้าถึงการรับส่งข้อมูล (Intercept) ก็สามารถดูข้อมูลนั้นได้ทั้งหมด ในขณะที่ SFTP เป็นโปรโตคอลที่มีการเข้ารหัส (Encrypted) ทำให้ข้อมูลต่างหากได้รับการป้องกัน ถึงแม้มีคนดักฟัง ก็จะเห็นแต่เพียงรหัสที่ปกปิดไว้ไม่สามารถอ่านได้
สรุปความแตกต่าง:
- FTP — ไม่มีการเข้ารหัส ส่งข้อมูลแบบเปิด เร็ว แต่ไม่ปลอดภัย
- SFTP — มีการเข้ารหัส ข้อมูลป้องกันไว้ ช้ากว่า FTP เล็กน้อย แต่ปลอดภัยกว่า
ความเสี่ยงด้านความปลอดภัยของ FTP
ใช้ FTP โดยไม่มีการเข้ารหัส นั้นเสี่ยงต่อการโจมตีหลายประการ:
1. การดักฟังรหัสผ่าน (Packet Sniffing)
ผู้โจมตีสามารถใช้เครื่องมือเฉพาะทางที่เรียกว่า "Packet Sniffer" เพื่อดักฟังข้อมูลที่ส่งผ่านอินเทอร์เน็ต เมื่อคุณเชื่อมต่อ FTP คุณส่งชื่อผู้ใช้และรหัสผ่านแบบไม่มีการเข้ารหัส ผู้โจมตีก็สามารถจับข้อมูลนี้ได้ทันที จากนั้นเขาสามารถใช้ข้อมูลนี้เข้าถึง Hosting ของคุณเองได้
2. การแทรกแซงการถ่ายโอนไฟล์ (Man-in-the-Middle Attack)
ผู้โจมตีอาจแทรกกลางการสื่อสาร FTP เพื่อแก้ไขไฟล์ที่คุณกำลังอัพโหลด เช่น เขาอาจแทรกโค้ด Malware ลงในไฟล์เว็บไซต์ที่คุณอัพโหลดไป เมื่อผู้เยี่ยมชมเข้ามายังเว็บไซต์ของคุณ พวกเขาก็จะติด Malware นี้ไปด้วย ด้วย SFTP ปัญหานี้ไม่มี เพราะข้อมูลทั้งหมดถูกเข้ารหัส
3. การเข้าถึงโดยไม่ได้รับอนุญาต (Unauthorized Access)
เมื่อผู้โจมตีได้รับรหัสผ่าน FTP เขาสามารถเข้าถึง Hosting ของคุณและแก้ไขไฟล์เว็บไซต์ได้ตามต้องการ ลบไฟล์ เปลี่ยนแปลงเนื้อหา หรือติดตั้ง Backdoor เพื่อให้มีการเข้าถึงถาวร
ทำไม SFTP ปลอดภัยกว่า FTP?
SFTP ใช้การเข้ารหัส End-to-End ซึ่งหมายความว่า:
- การเข้ารหัสทั้งหมด — ชื่อผู้ใช้ รหัสผ่าน และเนื้อหาไฟล์ทั้งหมดถูกเข้ารหัสก่อนส่งไป ผู้โจมตีแม้ว่าดักฟังได้ ก็อ่านไม่ออก
- การตรวจสอบตัวตน — SFTP ตรวจสอบว่าเซิร์ฟเวอร์ที่คุณกำลังเชื่อมต่อคือแท้จริงแน่นอน ไม่ใช่ผู้โจมตีที่อ้างว่าเป็นเซิร์ฟเวอร์
- ความสมบูรณ์ของข้อมูล — ถ้ามีใครพยายามแก้ไขข้อมูล SFTP ระหว่างการส่ง ระบบจะตรวจพบได้ทันที
วิธีตรวจสอบว่า Hosting รองรับ SFTP หรือไม่
ไม่ใช่ Hosting Provider ทั้งหมดจะเปิดใช้งาน SFTP ตามค่าเริ่มต้น บางแห่งอาจปิดทำให้ผู้ใช้ต้องขอเปิดเพิ่มเติม ลองตรวจสอบดูเหล่านี้:
วิธีที่ 1: ตรวจสอบใน cPanel FTP Accounts
เมื่อไปที่ cPanel และเลือก FTP Accounts ให้ดูหน้า FTP Account ของคุณ จะมีบริเวณแสดง Connection Information ที่บอกชื่อ Server หรือ Host ส่วนใหญ่ Hosting Provider ปกติจะบอกว่า Server นี้ใช้ Port ไหน สำหรับ FTP หรือ SFTP ตัวอย่าง:
- FTP: ftp.yourdomain.com:21
- SFTP: sftp.yourdomain.com:22 หรือ ftp.yourdomain.com:22
วิธีที่ 2: ติดต่อ Hosting Provider
ถ้าไม่แน่ใจ ให้ติดต่อทีม Support ของ Hosting Provider ของคุณแล้วถาม "Do you support SFTP and on which port?" หรือในภาษาไทย "Hosting ของคุณสนับสนุน SFTP หรือไม่ และ SFTP ใช้ Port ไหน?" ส่วนใหญ่ Hosting Provider ยุคใหม่ทั้งหมดรองรับ SFTP อยู่แล้ว
วิธีที่ 3: ทดสอบด้วย FileZilla
ลองตั้งค่า FileZilla โดยเปลี่ยน Port เป็น 22 และเลือก Protocol เป็น SFTP แล้วกด Connect ถ้าเชื่อมต่อสำเร็จ แสดงว่า Hosting รองรับ SFTP
เมื่อใดควรใช้ FTP และเมื่อใดควรใช้ SFTP?
ใช้ SFTP เมื่อ:
- Hosting รองรับ SFTP — ถ้า Hosting Provider ของคุณรองรับ SFTP ให้ใช้เสมอ มันปลอดภัยกว่า
- เซิร์ฟเวอร์เบื้องต้นนั้นเป็นเครือข่ายสาธารณะ — เช่น WiFi ของแคเฟ่ หรือ WiFi โรงแรม เมื่อเชื่อมต่อ Hosting ผ่าน SFTP ข้อมูลของคุณจะปลอดภัย
- ไฟล์ที่เก็บเป็นข้อมูลสำคัญ — ถ้าเว็บไซต์มี Sensitive Data การอัพโหลด/ดาวน์โหลดผ่าน SFTP ปลอดภัยกว่า
ใช้ FTP เมื่อ:
- Hosting ไม่รองรับ SFTP — Hosting เก่า ๆ บางแห่งไม่เปิด SFTP ให้ใช้ FTP เป็นทางเลือกเดียว
- ความเร็วเป็นปัญหาใหญ่ — FTP เร็วกว่า SFTP เล็กน้อย เพราะไม่ต้องเข้ารหัส แต่ในทางปฏิบัติ ความแตกต่างอาจไม่มีนัยสำคัญ
- อัพโหลดไฟล์สาธารณะทั่วไป — ถ้าเป็นไฟล์ที่ไม่สำคัญมากเหล่า ใช้ FTP ก็ได้ แต่ขอแนะนำให้ใช้ SFTP สักน้อยมากเพื่อความปลอดภัย
วิธีตั้งค่าใช้ SFTP ใน FileZilla
ถ้า Hosting รองรับ SFTP ให้ทำตามขั้นตอนนี้:
- เปิด FileZilla
- คลิก File → Site Manager
- สร้าง Site ใหม่หรือแก้ไขที่มีอยู่
- ที่ด้านขวา หาตัวเลือก Protocol แล้วเปลี่ยนจาก "FTP" เป็น "SFTP"
- ใส่ Host (เช่น sftp.yourdomain.com หรือ ftp.yourdomain.com)
- ใส่ Port เป็น 22 (ค่าเริ่มต้นของ SFTP)
- ใส่ Username และ Password
- คลิก Connect
ตรวจสอบว่า SFTP เชื่อมต่อได้ถูกต้อง
หลังจากตั้งค่า SFTP แล้ว ให้ทดสอบด้วยวิธีต่อไปนี้:
# 1. เพิ่มไฟล์ Test ใน FileZilla ด้วย SFTP
# ลองอัพโหลดไฟล์ชื่อ test.txt เข้า public_html
# 2. ตรวจสอบไฟล์ใน cPanel File Manager
# ไปที่ cPanel → File Manager → public_html
# ดูว่า test.txt อยู่ที่นั่นหรือไม่
# 3. เช็ค Transfer log ใน FileZilla
# ที่ด้านล่าง (Transfer Queue) ดู Messages tab
# ข้อความควรแสดง "Command: SFTP" แสดงว่าใช้ SFTP จริง
# 4. ดาวน์โหลดไฟล์จาก SFTP ทดสอบ
# ลองดาวน์โหลดไฟล์ config ไฟล์ใดก็ได้ เพื่อให้แน่ใจว่าการอ่านไฟล์ทำงาน
แก้ปัญหาที่พบบ่อย
Error: "Connection refused" เมื่อเชื่อมต่อ SFTP Port 22
แสดงว่าเซิร์ฟเวอร์ไม่รองรับ SFTP ที่ Port 22 หรือ Firewall บล็อก Port 22
- ติดต่อ Hosting Provider ว่า SFTP ใช้ Port ไหน (อาจเป็น Port อื่นไม่ใช่ 22)
- ลองเปลี่ยนกลับเป็น Port 21 และ Protocol เป็น FTP ดู
- ถ้ายังไม่ได้ ให้ลอง FTP ธรรมดาก่อน จากนั้นติดต่อ Support ขอให้เปิด SFTP
Error: "Unknown server key" หรือ "Server key is unknown"
เป็นเรื่องปกติเมื่อเชื่อมต่อ SFTP ครั้งแรก ระบบจะถามว่า "คุณแน่ใจหรือว่าเซิร์ฟเวอร์นี้คือแท้จริง" เพื่อป้องกัน Man-in-the-Middle Attack
วิธีแก้: คลิก "OK" หรือ "Accept" FileZilla จะจดจำเซิร์ฟเวอร์นี้ ครั้งต่อไปจะไม่ขึ้นอีก
Error: "Permission denied" หรือ "Cannot upload file via SFTP"
อาจเพราะสิทธิ์ในการเข้าถึงไฟล์ไม่พอ หรือโฟลเดอร์ที่อัพโหลดไปมีการ Lock
- ตรวจสอบว่าโฟลเดอร์ปลายทาง (public_html) มีสิทธิ์ Write (เขียน) หรือไม่
- ลองใช้ FTP ธรรมดา (Port 21) ดูว่าอัพโหลดได้หรือไม่ ถ้า FTP ได้แต่ SFTP ไม่ได้ อาจเป็นปัญหา Permission บน SFTP
- ติดต่อ Hosting Provider หรือลองใช้ cPanel File Manager แก้ไขสิทธิ์ (Permissions) ของโฟลเดอร์
Error: "SFTP ช้ากว่า FTP"
เป็นเรื่องปกติ SFTP ช้ากว่า FTP เล็กน้อยเพราะต้องเข้ารหัส แต่ความแตกต่างมักจะไม่เห็นได้ชัดเจนในการใช้งานปกติ
วิธีแก้: ยอมรับความแตกต่างนี้ เพราะความปลอดภัยสำคัญกว่า ความเร็วที่เพิ่มขึ้นเล็กน้อย
Error: "ทุก Connection เก่า (FTP) ไม่ใช้ได้หลังจากเปิด SFTP"
ถ้า Hosting Provider เปลี่ยนให้ FTP ไม่ทำงาน เพื่อบังคับให้ใช้ SFTP ทั้งหมด Connection เก่าจะหายไป
วิथี แก้: ลบ Site เก่าใน FileZilla และสร้าง Site ใหม่ด้วย SFTP Protocol
คำถามที่พบบ่อย
Q: ถ้าเว็บไซต์อยู่บน Hosting เก่าที่ไม่รองรับ SFTP ต้องทำยังไง?
A: ถ้า Hosting ไม่รองรับ SFTP ให้ใช้ FTP ก่อน พอเวลาเหมาะสม ลองติดต่อ Hosting Provider ขอให้เปิด SFTP ถ้ายังไม่เปิด อีกทางหนึ่งคือย้ายไป Hosting Provider ใหม่ที่รองรับ SFTP ตั้งแต่ต้น ซึ่งเป็นการลงทุนด้านความปลอดภัยของเว็บไซต์ของคุณ
Q: SFTP ใช้ Password เดียวกับ FTP ได้หรือไม่?
A: ใช่ SFTP และ FTP ใช้ชื่อผู้ใช้และรหัสผ่านเดียวกัน ความแตกต่างคือในวิธีการ Encrypt ข้อมูลเมื่อส่ง ตัว Password เองยังเป็นอันเดียวกัน เพียงแค่การส่งข้อมูลระหว่างคอมพิวเตอร์และเซิร์ฟเวอร์ไป SFTP จะเข้ารหัสเพิ่มเติม
Q: ต้องจ่ายเงินเพิ่มเติมเพื่อใช้ SFTP หรือไม่?
A: ไม่ SFTP เป็น Feature บนเซิร์ฟเวอร์ที่ Hosting Provider ส่วนใหญ่รองรับโดยไม่เสียค่าเพิ่มเติม คุณเพียงแค่ขอให้ Support เปิด SFTP ก็ได้ หากพวกเขาปฏิเสธ นั่นอาจเป็นสัญญาณว่า Hosting Provider ไม่ได้ดี ควรพิจารณาย้ายไป Provider อื่น