ฉันต้องทำการปรับเปลี่ยนเล็กน้อยเพื่อทราฟฟิกขาเข้าจากโฮสต์ tcp ที่รู้จัก: พอร์ตก่อนกระบวนการที่จัดการการเชื่อมต่อจะได้รับกระแสข้อมูล
ตัวอย่างเช่นให้ 192.168.1.88 เป็นรีโมตโฮสต์ที่รันเว็บเซิร์ฟเวอร์
ฉันต้องการสิ่งนั้นเมื่อกระบวนการในโลคัลโฮสต์ของฉันรับข้อมูลจาก 192.168.1.88:80 (เช่นเบราว์เซอร์) ข้อมูลจะถูกเปลี่ยนก่อนแทนที่text-A
ด้วยtext-B
เช่นนี้
- 127.0.0.1: ... เชื่อมต่อกับ 192.168.1.88:80
127.0.0.1: ... ส่งไปที่ 192.168.1.88:80:
GET /
192.168.1.88:80 ส่งไปที่ 127.0.0.1: ... :
HTTP/1.0 200 OK Content-Type: text/plain Some text-A, some other text
ข้อมูลนั้นถูกดักโดยระบบและส่งไปยังโปรแกรมที่มีเอาต์พุต:
HTTP/1.0 200 OK Content-Type: text/plain Some text-B, some other text
ระบบจะให้ข้อมูลที่เปลี่ยนแปลงดังนั้นกับการจัดการกระบวนการ 127.0.0.1: ... เช่นถ้ามันมาจาก 192.168.1.88:80
สมมติว่าฉันมีวิธีแบบสตรีมเพื่อทำการเปลี่ยนแปลงนี้ (โดยใช้sed
ตัวอย่าง) วิธีที่ง่ายที่สุดในการประมวลผลสตรีม tcp ที่เข้ามาล่วงหน้าคืออะไร
ฉันเดาว่าสิ่งนี้จะเกี่ยวข้องiptables
แต่ฉันไม่ค่อยเก่ง
โปรดทราบว่าแอปพลิเคชันควรรู้สึกถึงการจัดการกับโฮสต์เดิมดังนั้นการตั้งค่าพร็อกซีจึงไม่น่าเป็นทางออก