Score:0

iptables ส่งต่อพอร์ต tcp ไปยังพอร์ตอื่นบนโฮสต์เดียวกันหลังจากสร้างการเชื่อมต่อแล้ว

ธง in

ฉันมีเซิร์ฟเวอร์ tcp ที่พิมพ์ข้อความที่ได้รับ (โดยไม่ต้องส่งกลับ) ที่พอร์ต 1234 และเซิร์ฟเวอร์ tcp อีกเครื่องที่พอร์ต 5678 ฉันมีไคลเอนต์ที่สื่อสารกับเซิร์ฟเวอร์ 1234 แล้ว และฉันต้องการเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์ 5678

ฉันรู้วิธีเปลี่ยนเส้นทางแพ็กเก็ต (พร้อมคำขอเชื่อมต่อ) ตาราง ip -t nat -I PREROUTING -p tcp --dport 1234 -j REDIRECT --to-ports 5678 แต่มันใช้งานไม่ได้หากสร้างการเชื่อมต่อบนเซิร์ฟเวอร์ก่อนหน้าแล้ว คำถามของฉันคือจะบังคับใช้การเชื่อมต่อใหม่โดยที่ไคลเอ็นต์หยุดทำงานได้อย่างไร

A.B avatar
cl flag
A.B
หากการเชื่อมต่อ *แตกต่าง* จากไคลเอนต์เดียวกัน (เช่น: พอร์ตต้นทางที่แตกต่างกัน) เกิดขึ้น สิ่งนี้จะไม่เปลี่ยนแปลงการเชื่อมต่อที่สร้างไว้ และการเชื่อมต่อใหม่จะถูกเปลี่ยนเส้นทาง หากคุณต้องการแก้ไขการเชื่อมต่อที่สร้างขึ้น สมมติว่าคุณมีวิธีที่จะทำสิ่งนี้ สิ่งนี้จะไม่ทำงานสำหรับ TCP เนื่องจากเป็นโปรโตคอลที่เน้นการเชื่อมต่อซึ่งจะเก็บสถานะการเชื่อมต่อไว้ สำหรับ UDP อาจมีตัวเลือก แต่ทั้งหมดนี้ไม่สมเหตุสมผลสำหรับฉันจนกว่าคุณจะให้ตัวอย่างที่เป็นรูปธรรมเพื่ออธิบายสิ่งที่คุณต้องการทำด้วยตัวอย่าง และโดยเฉพาะอย่างยิ่ง *ทำไม* คุณต้องการทำ
Andrey Obruchkov avatar
in flag
@AB ฉันต้องการสแกนเพย์โหลดของการเชื่อมต่อ tcp (ข้อมูลที่ไปยังเซิร์ฟเวอร์บางตัวในเครื่องของฉัน) และวางแพ็กเก็ตที่มีคำว่า "สวัสดี" อยู่ในนั้น
A.B avatar
cl flag
A.B
แก้ไขคำถามของคุณเพื่อชี้แจง การทิ้งไม่ใช่การเปลี่ยนเส้นทาง การเปลี่ยนเส้นทางอาจเป็นไปไม่ได้ด้วย iptables สำหรับ TCP

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา