เอกสาร

เริ่มต้นอย่างรวดเร็ว + คำอธิบายฟังก์ชันของแต่ละส่วนและแต่ละอุปกรณ์ (อัปเดตต่อเนื่อง)

การส่งต่อพอร์ต

บทความนี้อธิบาย «การส่งต่อพอร์ต» ของแผงควบคุม — การทำการส่งต่อพอร์ตแบบดั้งเดิม (iptables/nftables DNAT) บนเซิร์ฟเวอร์ที่มี IP สาธารณะของตัวเอง

เข้าใจในประโยคเดียว

คุณมีเซิร์ฟเวอร์ที่มี IP สาธารณะหนึ่งเครื่อง ต้องการให้มันส่งทราฟฟิกที่เข้ามาที่ «พอร์ตสาธารณะหนึ่ง» ต่อไปยัง «อีกเครื่องหนึ่ง (หรืออีกพอร์ตหนึ่งของเครื่องเดียวกัน)» โดยอัตโนมัติ การส่งต่อพอร์ตก็คือการทำสิ่งนี้

แนะนำฟังก์ชัน

สำหรับเซิร์ฟเวอร์ที่มี IP สาธารณะของตัวเอง สามารถส่งทราฟฟิกขาเข้าที่ «พอร์ตสาธารณะหนึ่ง» ไปยัง «IP เป้าหมาย:พอร์ต» ผ่านไฟร์วอลล์ของระบบ (iptables/nftables) นี่คือการส่งต่อพอร์ตแบบดั้งเดิมในระดับระบบ

ความต่างจากทะลุพอร์ต (แยกก่อนว่าจะใช้อันไหน)

การส่งต่อพอร์ต (บทความนี้)ทะลุพอร์ต
เซิร์ฟเวอร์ที่ใช้มี IP สาธารณะของตัวเองไม่มี IP สาธารณะ (เซิร์ฟเวอร์ทะลุ)
วิธีทำDNAT ของไฟร์วอลล์ระบบอุโมงค์ย้อนกลับ
ตำแหน่งที่ส่งต่อตัวเซิร์ฟเวอร์เป้าหมายเองเซิร์ฟเวอร์แผงควบคุม
ต้องมี Agentไม่ใช่

สถานการณ์ที่ใช้

  • ส่งต่อพอร์ตหนึ่งของ IP สาธารณะของเซิร์ฟเวอร์ไปยังบริการของอีกเซิร์ฟเวอร์หนึ่ง
  • แมปพอร์ตที่ไม่มาตรฐาน (เช่น 8888) ไปยังพอร์ตบริการมาตรฐาน
  • ให้เครื่องในเครือข่ายภายในเปิดเผยบริการผ่านเครื่องที่มี IP สาธารณะ

ตัวอย่าง

คุณมีเซิร์ฟเวอร์สาธารณะ 1.2.3.4 และมีเครื่องในเครือข่ายภายใน 192.168.1.100 ที่รันบริการเว็บอยู่ (พอร์ต 80) คุณต้องการให้คนข้างนอกเข้าถึง 1.2.3.4:8888 แล้วเท่ากับเข้าถึงพอร์ต 80 ของเครือข่ายภายใน:

  • โปรโตคอล: TCP
  • พอร์ตที่รับฟัง: 8888
  • IP เป้าหมาย: 192.168.1.100
  • พอร์ตเป้าหมาย: 80

วิธีใช้งาน

เข้าสู่ «แผงจัดการระบบ → ไฟร์วอลล์ → การส่งต่อพอร์ต» ของเซิร์ฟเวอร์เป้าหมายที่มี IP สาธารณะ แล้วเปิด «การจัดการส่งต่อพอร์ต»:

1. คลิก «เพิ่มการส่งต่อ» แล้วกรอก:

  • โปรโตคอล: TCP / UDP
  • พอร์ตที่รับฟัง: พอร์ตขาเข้าบนอินเทอร์เน็ต
  • IP เป้าหมาย: ที่อยู่จริงของเป้าหมายการส่งต่อ (IP สาธารณะ หรือ IP เครือข่ายภายในที่เส้นทางไปถึงได้)
  • พอร์ตเป้าหมาย: พอร์ตของบริการเป้าหมาย

2. หลังสร้างแล้ว ทราฟฟิกจะถูกส่งต่อทันที

3. การส่งต่อที่สร้างแล้วจะแสดงเป็นรายการ แก้ไข หรือ ลบ ได้

คำอธิบายทางเทคนิค (กฎการส่งต่อ)

แผงควบคุมจะตั้งกฎสามข้อบนเซิร์ฟเวอร์ให้อัตโนมัติ (ยกตัวอย่าง TCP รับฟัง 8888 เป้าหมาย 192.168.1.100:80):

1. DNAT: เขียนทราฟฟิกที่มาที่ :8888 ใหม่ไปยัง 192.168.1.100:80

2. เปิดทาง FORWARD: เปิดทางให้ทราฟฟิกส่งต่อขาไป/ขากลับ

3. MASQUERADE: แปลงที่อยู่ต้นทาง เพื่อให้แพ็กเก็ตตอบกลับกลับมาได้ถูกต้อง

> เข้าใจแบบง่าย ๆ: DNAT คือ «เปลี่ยนปลายทาง» MASQUERADE คือ «เปลี่ยนที่อยู่ขากลับ» ต้องมีกฎครบทั้งสามข้อการส่งต่อจึงทำงานสมบูรณ์

ข้อควรระวัง

1. ต้องมี IP สาธารณะของตัวเอง: การส่งต่อพอร์ตทำที่เครื่องของเซิร์ฟเวอร์เป้าหมาย ต้องให้เซิร์ฟเวอร์เครื่องนี้มี IP สาธารณะของตัวเอง (ทราฟฟิกยิงมาที่มันจริง)

2. เปิดทางไฟร์วอลล์: เมื่อส่งต่อไปยังอีกเซิร์ฟเวอร์หนึ่ง เซิร์ฟเวอร์เป้าหมาย/ไฟร์วอลล์กลางต้องเปิดทางพอร์ตเป้าหมาย

3. แก้ไข = ลบกฎเก่า + สร้างใหม่: กฎไฟร์วอลล์ของระบบไม่รองรับการแก้ไขในที่ เวลาแก้ไขจะลบกฎเก่าก่อนแล้วเพิ่มกฎใหม่

4. แผงควบคุมปรับตัวเข้ากับแบ็กเอนด์ iptables-legacy / iptables / nftables ทั้งสามแบบอัตโนมัติ ไม่ต้องเลือกเอง