คนส่วนใหญ่รู้ว่า NAT แปลว่าอะไรหลังซื้อไปราวสิบนาที Nginx เปิดขึ้นมาได้ curl localhost ก็ส่งหน้าเว็บกลับมา แต่เบราว์เซอร์บนแล็ปท็อปกลับหมุนค้างอยู่อย่างนั้น ไม่มีอะไรเสีย แค่เซิร์ฟเวอร์ไม่มี IPv4 สาธารณะเป็นของตัวเอง และประตูเข้าบานเดียวคือพอร์ตที่ส่งต่อไว้สำหรับ SSH
ประตูบานเดียวนี้พอสำหรับงานจำนวนมากอย่างน่าแปลกใจ และไม่พอเลยสำหรับงานบางอย่างที่พบบ่อยมาก ถ้าคุณยังเลือกไม่ได้ระหว่างแพ็กเกจสองแบบ บทความเก่าของเรา IP เฉพาะหรือ VPS แบบ NAT ตั้งคำถามข้อเดียวที่ตัดสินได้ ส่วนบทความนี้ว่าด้วยการอยู่กับคำตอบนั้น ว่าเซิร์ฟเวอร์ NAT ทำอะไรได้จริง ชนกำแพงตรงไหน และจะออกมาอย่างไรเมื่อมันเล็กเกินไปสำหรับคุณ
สิ่งที่คุณได้จริง ๆ
เซิร์ฟเวอร์ NAT มีที่อยู่ส่วนตัวอยู่หลังเกตเวย์ของเรา แดชบอร์ดจะแสดงโฮสต์และพอร์ตส่วนตัว แล้วคุณเชื่อมต่อแบบนี้
ssh -p 20123 root@host
พอร์ตนั้นพาไปยังพอร์ต 22 ภายในเซิร์ฟเวอร์ของคุณ พอร์ตขาเข้าอื่นทั้งหมดบน IPv4 ถูกปิดจากภายนอก และไม่มีตัวเลือกให้ส่งต่อพอร์ตเพิ่ม ขาออกเป็นอีกเรื่อง เซิร์ฟเวอร์ไปถึงทุกที่บนอินเทอร์เน็ต ยกเว้นพอร์ต SMTP 25 และ 465 ซึ่งปิดไว้ในทุกแพ็กเกจ ไม่ว่าจะเป็น NAT หรือไม่ กฎทั้งหมดอยู่ใน เครือข่ายและพอร์ต
อีกรายละเอียดหนึ่งที่สำคัญสำหรับบางคน คือที่อยู่ขาออกไม่ใช่ของคุณเอง ทราฟฟิกออกไปทางที่อยู่ที่คุณควบคุมไม่ได้ คุณจึงตั้ง reverse DNS ให้มันไม่ได้ และสร้างชื่อเสียงผู้ส่งบนที่อยู่นั้นไม่ได้
สิ่งที่รันได้ดีหลังพอร์ตเดียว
อะไรก็ตามที่เป็นฝ่ายเริ่มการสนทนาเอง กลุ่มนี้กว้างกว่าที่ฟังดู
- บอทที่ใช้ polling บอท Telegram แบบ long polling บอท Discord บนการเชื่อมต่อ gateway บอทเทรดที่คุยกับ API ของกระดานเทรด ทั้งหมดเป็นขาออก
- AI agent เอเจนต์ที่เรียก API ของโมเดล ท่องเว็บ เขียนไฟล์ และรันโค้ด ไม่ต้องมีใครเรียกหามัน สิ่งที่มันต้องการคือ CPU หน่วยความจำ และการเชื่อมต่อออกไปข้างนอก
- worker และ scraper อะไรก็ตามที่ดึงงานจากคิว ไล่เก็บหน้าเว็บ หรือซิงก์ข้อมูลตามตารางเวลา
- เครื่อง build และ runner CI runner มักลงทะเบียนกับเซิร์ฟเวอร์เองแล้วดึงงานมาทำ จึงทำงานบน NAT ได้สบาย
สำหรับงานแบบนี้ แพ็กเกจที่ถูกที่สุดก็พอจริง ๆ Nano ราคา $3 ต่อเดือน ได้ 2 vCPU, RAM 1 GB และดิสก์ 15 GB ส่วน Small ราคา $8 ได้ 4 vCPU, 4 GB และ 35 GB รายการทั้งหมดอยู่ใน หน้าแพ็กเกจ NAT โดยเฉพาะ
ที่ที่พอร์ตเดียวไม่พอ
กำแพงคืออะไรก็ตามที่อีกฝ่ายต้องเป็นคนเริ่มการเชื่อมต่อ
เว็บไซต์คือตัวอย่างที่ชัดที่สุด เบราว์เซอร์เชื่อมต่อไปที่พอร์ต 443 (และ 80 สำหรับการเปลี่ยนเส้นทาง) แต่บนแพ็กเกจ NAT พอร์ตเหล่านี้ไม่มีอยู่เมื่อมองจากข้างนอก ใช้พอร์ตที่ไม่ใช่มาตรฐานก็ไม่ช่วย อย่างน้อยก็ไม่ใช่ในแบบที่ผู้เยี่ยมชมจะยอมรับ
โดเมนของคุณเองที่ใช้ HTTPS ชนกำแพงเดียวกันถึงสองครั้ง คุณชี้ระเบียน DNS ไปที่ที่อยู่ของเกตเวย์ได้ แต่ไม่มีอะไรที่มาถึงตรงนั้นถูกส่งต่อเข้าเซิร์ฟเวอร์ของคุณ ยกเว้นพอร์ต SSH และวิธีขอใบรับรองฟรีแบบปกติจะตรวจเซิร์ฟเวอร์ของคุณที่พอร์ต 80 หรือ 443
webhook ล้มเหลวแบบเงียบ ๆ การแจ้งเตือนการชำระเงิน แพลตฟอร์มบอทที่ส่งอัปเดต เซิร์ฟเวอร์ Git ที่แจ้งว่ามี commit ใหม่ ทั้งหมดต้องเข้าถึงคุณได้ บอทที่ทำงานดีด้วย long polling จะหยุดทำงานทันทีที่คุณเปลี่ยนไปใช้ webhook
ปลายทาง VPN เซิร์ฟเวอร์เกม และเมลเซิร์ฟเวอร์ต้องมีพอร์ตขาเข้าโดยธรรมชาติ รวมถึงอะไรก็ตามที่คุณอยากให้เพื่อนร่วมงานเปิดดูในเบราว์เซอร์
ทางเลี่ยง พูดกันตรง ๆ
IPv6 เซิร์ฟเวอร์ Linux ใหม่จะได้ที่อยู่ IPv6 สาธารณะ และบนแพ็กเกจ NAT ที่อยู่นี้เข้าถึงเซิร์ฟเวอร์ได้โดยตรงทุกพอร์ต ถ้าไคลเอนต์ทั้งหมดของบริการเป็นของคุณเอง (แล็ปท็อป เซิร์ฟเวอร์อื่น ๆ หรือตัวตรวจสอบที่รองรับ IPv6) วิธีนี้ใช้ได้ดี แต่สำหรับเว็บไซต์สาธารณะไม่ได้ เพราะผู้เยี่ยมชมส่วนหนึ่งยังอยู่บนเครือข่ายที่ไม่มี IPv6 และจะไม่มีวันโหลดหน้าเว็บได้ แพ็กเกจ Windows ตอนนี้มีแค่ IPv4
อุโมงค์ (tunnel) คุณรันเอเจนต์ตัวเล็ก ๆ ที่ค้างการเชื่อมต่อขาออกไปยังรีเลย์ที่อื่นได้ แล้วรีเลย์จะส่งทราฟฟิกสาธารณะกลับมาทางอุโมงค์ วิธีนี้ใช้ได้ และสำหรับเดโมหรือแดชบอร์ดภายในก็สมเหตุสมผล แต่สำหรับงานสำคัญ คุณได้เอาบุคคลที่สามมาไว้กลางทุกคำขอ แถมยังมีอีกชิ้นที่อาจพังตอนตีสาม
อุโมงค์ SSH สำหรับตัวเอง ถ้าแผงผู้ดูแลมีแค่คุณที่ใช้ ก็อย่าเปิดออกไปข้างนอกเลย ส่งต่อผ่านพอร์ต SSH ที่คุณมีอยู่แล้ว
ssh -p 20123 -L 8080:localhost:8080 root@host
จากนั้นเปิด http://localhost:8080 บนเครื่องของคุณ นี่คือเทคนิคที่ถูกมองข้ามมากที่สุดบนเซิร์ฟเวอร์ NAT และยังปลอดภัยกว่าการเอาแผงผู้ดูแลขึ้นอินเทอร์เน็ตด้วย
ความเห็นตรง ๆ ของผม IPv6 และอุโมงค์ SSH เป็นเครื่องมือที่ดี แต่บริการสาธารณะถาวรที่ต้องวิ่งผ่านอุโมงค์เพียงเพราะเซิร์ฟเวอร์ไม่มี IPv4 มักเป็นสัญญาณว่า NAT เล็กเกินไปสำหรับคุณแล้ว
ย้ายไปใช้ IPv4 ของตัวเองโดยไม่ต้องติดตั้งใหม่
ไม่ต้องสร้างอะไรใหม่ เปิดเซิร์ฟเวอร์ในแดชบอร์ด เลือก «เปลี่ยนแพ็กเกจ» แล้วเลือกแพ็กเกจ IP เฉพาะขนาดเท่าเดิมหรือใหญ่กว่า เซิร์ฟเวอร์จะรีบูตหนึ่งครั้งแล้วกลับมาพร้อม IPv4 สาธารณะของตัวเอง ดิสก์เดิม และทุกอย่างที่คุณติดตั้งไว้ พอร์ต 80, 443 และพอร์ตที่คุณเปิดในไฟร์วอลล์จะเข้าถึงได้จากภายนอก และ SSH จะย้ายไปใช้พอร์ต 22 ตามปกติ รายละเอียดอยู่ใน การเปลี่ยนแพ็กเกจ
สิ่งที่ควรรู้ก่อนกด
- คุณจ่ายส่วนต่างตามสัดส่วนสำหรับช่วงที่เหลือของรอบปัจจุบันจากยอดเงินคงเหลือ Nano-IP ราคา $8 ต่อเดือน เทียบกับ Nano ที่ $3 ส่วน Small-IP ราคา $16 เทียบกับ $8
- ต้องมีที่อยู่ว่างในตำแหน่งที่ตั้งของเซิร์ฟเวอร์ ถ้าตอนนี้ไม่มี แดชบอร์ดจะแจ้งก่อนตัดเงินใด ๆ
- ถ้าคุณแก้การตั้งค่าเครือข่ายในเซิร์ฟเวอร์ด้วยมือ ให้ตรวจสอบหลังรีบูต สำหรับอิมเมจมาตรฐาน ระบบจะปรับใช้ให้เอง
- สำรองข้อมูลก่อน แม้จะรีบูตแค่ครั้งเดียว แต่ก็เป็นข้อมูลของคุณ
ที่ที่ NAT ไม่เหมาะ และที่ที่ IPv4 ก็ไม่เหมาะเช่นกัน
NAT เป็นตัวเลือกที่ผิดสำหรับทุกอย่างที่เป็นสาธารณะ ทุกอย่างที่รับ webhook และทุกอย่างที่ต้องใช้ที่อยู่คงที่ให้ใครสักคนใส่ใน allowlist อย่าเสียเวลาหลายวันพยายามเลี่ยง ส่วนต่างราคาระหว่าง Nano กับ Nano-IP คือ $5 ต่อเดือน
แต่ IPv4 เฉพาะก็ไม่ใช่เวทมนตร์ มันไม่ได้ทำให้เว็บที่บล็อกที่อยู่ของดาต้าเซ็นเตอร์ยอมให้คุณเข้า และไม่ได้ช่วย scraper ที่โดนจำกัดอัตราคำขอ เพราะการตัดสินใจเหล่านั้นขึ้นกับเครือข่ายที่คุณอยู่ ไม่ได้ขึ้นกับว่ามีใครใช้ที่อยู่นั้นอีกบ้าง และถ้าทั้งโปรเจกต์ของคุณมีแค่บอทไม่กี่ตัวกับเอเจนต์หนึ่งตัว การซื้อ IPv4 ที่ไม่มีใครเชื่อมต่อเข้ามาเลยก็คือเสียเงินเปล่า
ถ้าคุณวางแผนจะย้ายไปใช้ระบบที่ใหญ่ขึ้นอยู่แล้ว ย้าย VPS โดยไม่มีดาวน์ไทม์ อธิบายลำดับขั้นตอน ส่วน วิธีอ่านสเปก VPS ช่วยตอนเปรียบเทียบแพ็กเกจ
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ