Network
Port Forwarding คือเทคนิคที่ทำให้เครื่องคอมพิวเตอร์ หรืออุปกรณ์ต่างๆ ในเครือข่ายบ้านเรา สามารถเข้าถึงได้จากอินเทอร์เน็ตภายนอกได้โดยตรง สมัยผมทำร้านเน็ตนี่เจอบ่อยมาก ลูกค้าอยากเปิด Server เกมเองที่บ้าน อยากใช้โปรแกรม Remote Desktop แต่ทำไม่ได้ เพราะติดปัญหาเรื่อง NAT (Network Address Translation) ของ Router
Router ส่วนใหญ่จะทำหน้าที่เหมือนยามหน้าประตูบ้าน ใครมาจากข้างนอกจะเข้าบ้าน Router จะต้องอนุญาตก่อน ซึ่งโดยปกติ Router จะไม่อนุญาตให้ใครเข้ามาง่ายๆ เพราะกลัวอันตราย Port Forwarding ก็เหมือนเราไปบอก Router ว่า "ถ้ามีคนเคาะประตูเบอร์นี้ (Port Number) ให้เปิดประตูให้เค้าเข้ามาหาเครื่องนี้ (IP Address) ได้เลยนะ"
สำคัญมากๆ ถ้าคุณอยากทำอะไรที่ต้องให้คนภายนอกเข้ามา connect หาเครื่องคุณได้ ไม่ว่าจะเป็น:
ถ้าไม่มี Port Forwarding อุปกรณ์ภายนอกจะไม่สามารถหาเครื่องของคุณเจอ เพราะ Router จะปิดกั้นการเชื่อมต่อทั้งหมด
Port Forwarding ทำงานโดยอาศัยหลักการของ NAT (Network Address Translation) Router จะมี IP Address สาธารณะ (Public IP) ที่ใช้ในการติดต่อกับอินเทอร์เน็ต และ IP Address ส่วนตัว (Private IP) ที่ใช้ภายในเครือข่ายบ้านเรา
เวลาเครื่องในบ้านเราส่งข้อมูลออกไป Router จะเปลี่ยน Private IP ของเครื่องเรา เป็น Public IP ของ Router เอง แล้วจำไว้ว่าข้อมูลที่กลับมาจะต้องส่งไปให้เครื่องไหน พอข้อมูลจากภายนอกเข้ามา Router ก็จะเปลี่ยน Public IP กลับเป็น Private IP แล้วส่งข้อมูลไปให้เครื่องปลายทาง
Port Number คือหมายเลขที่ใช้ระบุ Service หรือ Application ที่กำลังทำงานอยู่บนเครื่องคอมพิวเตอร์ แต่ละ Service จะใช้ Port Number ที่แตกต่างกัน เช่น
Port Forwarding คือการบอก Router ว่า ถ้ามีข้อมูลเข้ามาที่ Public IP ของ Router โดยระบุ Port Number นี้ ให้ส่งข้อมูลนั้นไปที่ Private IP ของเครื่องนี้ โดยใช้ Port Number นี้
การทำ Port Forwarding อาจจะดูยุ่งยาก แต่จริงๆ แล้วไม่ได้ยากอย่างที่คิด แต่ละ Router ก็จะมีหน้าตา Interface ที่แตกต่างกัน แต่หลักการโดยรวมจะเหมือนกัน
อันดับแรกเราต้องรู้ก่อนว่าเครื่องที่เราต้องการ Forward Port มี IP Address อะไร วิธีที่ง่ายที่สุดคือการใช้ Command Prompt (Windows) หรือ Terminal (Mac/Linux)
Windows:
ipconfig
Mac/Linux:
ifconfig
มองหา IP Address ที่ขึ้นต้นด้วย 192.168. หรือ 10.0. อันนั้นแหละคือ Private IP Address ของเครื่องคุณ เช่น 192.168.1.100
เปิด Browser แล้วพิมพ์ IP Address ของ Router ลงไป โดยปกติจะเป็น 192.168.1.1 หรือ 192.168.0.1 ถ้าไม่แน่ใจ ลองดูที่คู่มือ Router หรือลองใช้ Command Prompt/Terminal พิมพ์คำสั่งต่อไปนี้
Windows:
ipconfig /all
มองหา Default Gateway นั่นแหละคือ IP Address ของ Router
Mac/Linux:
netstat -nr | grep default
Router ส่วนใหญ่จะถาม Username และ Password ค่า Default มักจะเป็น admin/admin หรือ admin/password ถ้าไม่ได้ ลองหาในคู่มือ Router หรือ Google ดู
เมื่อเข้าสู่หน้า Config ของ Router ได้แล้ว มองหาเมนูที่เกี่ยวข้องกับ Port Forwarding, NAT, Virtual Server หรือ Application Forwarding ชื่อเรียกอาจจะแตกต่างกันไป แต่หลักการคืออันเดียวกัน
ในหน้า Port Forwarding คุณจะต้องใส่ข้อมูลต่างๆ ดังนี้:
กด Save หรือ Apply แล้ว Restart Router (ถ้า Router แจ้งให้ทำ)
หลังจากทำ Port Forwarding แล้ว เราต้องตรวจสอบว่ามันทำงานได้จริงหรือไม่ มีหลายวิธีในการตรวจสอบ
ถ้า Port ไม่เปิด อาจจะมีปัญหาเรื่อง Firewall บนเครื่องของคุณ หรืออาจจะใส่ข้อมูล Port Forwarding ไม่ถูกต้อง ลองตรวจสอบอีกครั้ง
Port Forwarding เป็นดาบสองคม ถ้าทำไม่ระวัง อาจจะทำให้เครื่องของคุณเสี่ยงต่อการถูกโจมตีจาก Hacker ได้
| คุณสมบัติ | Port Forwarding | DMZ (Demilitarized Zone) |
|---|---|---|
| ความปลอดภัย | สูงกว่า (Forward เฉพาะ Port ที่จำเป็น) | ต่ำกว่า (เปิดทุก Port ให้เครื่องเดียว) |
| ความยืดหยุ่น | ยืดหยุ่นกว่า (Forward Port ให้หลายเครื่องได้) | น้อยกว่า (Forward Port ให้เครื่องเดียว) |
| ความซับซ้อน | ซับซ้อนกว่า (ต้อง Config Port Number) | ง่ายกว่า (ไม่ต้อง Config Port Number) |
| เหมาะสำหรับ | Forward Port ให้ Server เกม, กล้องวงจรปิด, Remote Desktop | ทดสอบ Application ที่ต้องการเปิดทุก Port |
DMZ คือการเปิดทุก Port ให้เครื่องใดเครื่องหนึ่งในเครือข่าย เหมาะสำหรับกรณีที่เราต้องการทดสอบ Application ที่ต้องการเปิดทุก Port หรือต้องการให้เครื่องนั้นเป็น Server หลัก แต่มีความเสี่ยงด้านความปลอดภัยสูงกว่า Port Forwarding
สมัยผมทำร้านเน็ต ผมจะแนะนำลูกค้าให้ใช้ Port Forwarding มากกว่า DMZ เพราะปลอดภัยกว่าเยอะ ถึงจะต้อง Config เยอะหน่อย แต่คุ้มค่ากว่า SiamCafe Blog มีบทความอื่นๆ ที่น่าสนใจอีกเยอะ ลองเข้าไปอ่านดูนะครับ
ดูวิดีโอเพิ่มเติมเกี่ยวกับPort Forwarding คืออะไร ทำยังไ:
อาจจะมีหลายสาเหตุ:
Dynamic IP Address คือ IP Address ที่เปลี่ยนแปลงทุกครั้งที่เรา Connect อินเทอร์เน็ต Router ส่วนใหญ่จะใช้ Dynamic IP Address จาก ISP (Internet Service Provider) ทำให้เราต้อง Update Port Forwarding ทุกครั้งที่ IP เปลี่ยน SiamCafe Blog มีวิธีแก้ปัญหาเรื่อง Dynamic IP ด้วย Dynamic DNS (DDNS) ลองศึกษาดูครับ
Static IP Address คือ IP Address ที่คงที่ ไม่เปลี่ยนแปลง Static IP Address เหมาะสำหรับ Server ที่ต้องการให้คนภายนอก Connect เข้ามาตลอดเวลา แต่มีค่าใช้จ่ายสูงกว่า Dynamic IP Address
หวังว่าบทความนี้จะเป็นประโยชน์นะครับ ถ้ามีคำถามเพิ่มเติม ถามมาได้เลย ผมยินดีตอบ :)
มาต่อกันเลยน้องๆ จากตอนที่แล้วที่พี่อธิบายเรื่อง Port Forwarding แบบบ้านๆ ให้เข้าใจง่ายๆ คราวนี้เราจะมาเจาะลึกเรื่อง Best Practices และคำถามที่พบบ่อยกัน
สมัยผมทำร้านเน็ต SiamCafe เนี่ย เรื่องความปลอดภัยสำคัญสุดๆ เพราะลูกค้าสารพัดรูปแบบ มาใช้บริการ เราต้องป้องกันไว้ก่อน ดีกว่ามาตามแก้ทีหลัง
หลายๆ อุปกรณ์ Network ไม่ว่าจะเป็น Router หรือ NAS มักจะมี Default Port ที่ใช้สำหรับ Management เช่น Port 80 หรือ 21 ถ้าเรา Forward Port พวกนี้โดยไม่เปลี่ยน มันก็เหมือนเปิดประตูบ้านทิ้งไว้ให้โจรเข้า
# ตัวอย่างการเปลี่ยน Port SSH บน Linux
sudo nano /etc/ssh/sshd_config
# หาบรรทัด #Port 22 แล้วแก้เป็น Port อื่น เช่น 2222
Port 2222
# Restart SSH Service
sudo systemctl restart sshd
จำไว้ว่า Port ที่ใช้ควรเป็น Port ที่ไม่ค่อยมีใครใช้ และไม่ควรเป็นเลขที่เดาง่ายๆ ด้วยนะ
แทนที่จะ Forward Port ให้ทุกคนบนโลกนี้ เราควรจำกัดให้เฉพาะ IP Address ที่เราไว้ใจเท่านั้น ที่สามารถเข้าถึง Port ที่เรา Forward ไว้ได้
เช่น ถ้าเราต้องการให้เครื่องคอมพิวเตอร์ที่บ้าน (IP: 192.168.1.100) เท่านั้น ที่สามารถ Remote เข้ามาที่เครื่อง Server ที่ร้านเน็ตได้ เราก็ต้องตั้งค่าใน Router ให้ Forward Port ไปที่ 192.168.1.100 เท่านั้น
ถ้าเป็นไปได้ การใช้ VPN (Virtual Private Network) จะปลอดภัยกว่า Port Forwarding มาก เพราะ VPN จะสร้าง Tunnel ที่เข้ารหัสระหว่างอุปกรณ์ของเรากับ Server ทำให้ข้อมูลที่ส่งผ่าน Tunnel นั้นปลอดภัยจากการถูกดักฟัง
สมัยนี้ VPN Client หาโหลดง่ายมาก แถม Router หลายๆ รุ่นก็รองรับ VPN Server ในตัวแล้ว ลองศึกษาดูนะน้อง
ลูกค้าที่ร้าน SiamCafe สมัยก่อน ถามคำถามพวกนี้บ่อยมาก พี่เลยรวบรวมมาให้ เผื่อเป็นประโยชน์
อันนี้เจอบ่อยสุด! เช็คให้ดีว่า:
การ Ping เป็นการทดสอบว่า Host สามารถ Reachable ได้หรือไม่ ไม่ได้หมายความว่า Port Forwarding ทำงานถูกต้องเสมอไป ลองใช้ Tool พวก Port Scanner (เช่น Nmap) เพื่อตรวจสอบว่า Port ที่ Forward นั้น Open หรือไม่ จะแม่นยำกว่า
ได้แน่นอน! แต่ต้องระวังไม่ให้ Port ชนกัน และควรตั้งชื่อ Rule ให้ชัดเจน เพื่อให้ง่ายต่อการจัดการ
สนใจลงทุน Forex ไหม ลองดูที่ iCafeForex สิ
Dynamic IP Address คือ IP Address ที่เปลี่ยนไปเรื่อยๆ ซึ่งจะทำให้ Port Forwarding ใช้งานไม่ได้ เพราะ Router จะ Forward Port ไปที่ IP Address เดิม ซึ่งอาจจะไม่ใช่ IP Address ของอุปกรณ์ปลายทางอีกต่อไป
วิธีแก้คือ ใช้ Dynamic DNS (DDNS) ซึ่งจะทำการ Map ชื่อ Domain Name ของเรา ไปยัง IP Address ปัจจุบันของ Router โดยอัตโนมัติ
# ตัวอย่างการ Update Dynamic DNS ด้วยโปรแกรม ddclient บน Linux
sudo nano /etc/ddclient.conf
# แก้ไข config ให้ตรงกับ DDNS Provider ที่ใช้
Port Forwarding เป็น Tool ที่มีประโยชน์มาก แต่ก็ต้องใช้อย่างระมัดระวัง เพราะถ้าตั้งค่าผิดพลาด อาจจะทำให้ระบบของเราตกอยู่ในความเสี่ยงได้
จำไว้ว่า ความปลอดภัยต้องมาก่อนเสมอ ศึกษาข้อมูลให้ดี ก่อนที่จะเริ่ม Forward Port นะน้องๆ ลองอ่านบทความอื่นๆ ที่ SiamCafe Blog ดูนะ มีความรู้ IT อีกเยอะเลย