เปลี่ยนเส้นทางคำขอไปยัง IP ภายนอกไปยัง localhost (จำลองเซิร์ฟเวอร์)


12

ฉันได้รับแอปพลิเคชัน (ไม่มีซอร์สโค้ด) โทรหาเซิร์ฟเวอร์ (รหัสที่เข้ารหัสยาก) และคาดว่าจะได้คำตอบก่อนเริ่ม (การเข้าสู่ระบบชนิดหนึ่ง)

สาเหตุที่เซิร์ฟเวอร์ไม่ทำงานฉันต้องการสร้างเซิร์ฟเวอร์จำลองซึ่งจะเลียนแบบพฤติกรรมของเซิร์ฟเวอร์อย่างเป็นทางการ

ปัญหาของฉัน:

ฉันจะเปลี่ยนเส้นทางปริมาณการใช้งานไปยังเครื่องท้องถิ่นของฉันได้อย่างไร

ฉันต้องการให้คำขอทั้งหมดส่งไปยัง IP wxyz เพื่อกำหนดเส้นทางใหม่ไปยัง localhost (ซึ่งเซิร์ฟเวอร์จำลองของฉันทำงานอยู่)

ข้อมูลเพิ่มเติม:

  • เซิร์ฟเวอร์จำลองของฉันคือโซลูชัน apache / php
  • ฉันพยายามแก้ไขรหัสฮาร์ดโค้ดในแอปพลิเคชันด้วยตัวแก้ไข hex แต่การตรวจสอบบางอย่างล้มเหลวเมื่อฉันเริ่มแอปพลิเคชัน
  • ทำให้ IP นั้นเข้ารหัสยากในแอปพลิเคชันฉันไม่สามารถใช้ไฟล์โฮสต์ได้
  • ฉันใช้ win xp

ที่เกี่ยวข้อง: วิธีเปลี่ยนเส้นทางปริมาณการใช้งานไปยัง IP หนึ่งไปยัง IP อื่นบน Windows Server 2008

คำตอบ:


8

นี่จะเป็นการแฮ็คทั้งหมด แต่คุณสามารถลองกำหนด IP ของเซิร์ฟเวอร์ที่สงสัยว่าเป็น IP เพิ่มเติมในอินเทอร์เฟซในตัวคุณได้คำแนะนำที่นี่


มันดูดีมาก! แต่ฉันไม่สามารถลองได้ในขณะนี้ (อินเทอร์เน็ตของฉันล่มฉันกำลังล่ามกับ 3G .. ) ฉันจะให้ข้อเสนอแนะแก่คุณในตอนท้ายของสัปดาห์หน้า
Loda

1
หินนี้จริง ๆ ! ใช้งานได้ดีและแก้ปัญหาได้ง่ายมาก ขอบคุณมาก!
Loda

น่ารักดีใจที่ได้ยิน :)
Robert Swisher

1
ความแม่นยำ: การเพิ่ม IP 2sd ไปที่ NIC ของฉันจะมีผลข้างเคียง; IP ทั้งหมดใน subred ภายนอกเดียวกันจะถูกเปลี่ยนเส้นทางไปยัง NIC ของฉัน เช่น: เมื่อเพิ่ม IP 50.51.51.51, IP 50.51.51.52 จะไม่สามารถเข้าถึงได้อีกต่อไป สิ่งนี้เกิดจากเส้นทาง 50.51.51.0 และเส้นทาง 50.255.255.255 วิธีแก้ปัญหา: เพิ่มเส้นทาง 50.51.51.52 -> เกตเวย์ปกติ
Loda

ลิงก์ใช้งานไม่ได้
danilo

2

คุณสามารถลองทำสิ่งต่อไปนี้:

ตั้งค่าเส้นทางเฉพาะสำหรับที่อยู่ IP นั้นซึ่งจะใช้เซิร์ฟเวอร์จำลองเป็นเกตเวย์เช่นนี้:

เราต์เพิ่ม -host wxyz / 32 gw dummy-server-ip

สำหรับสิ่งนี้คุณจะต้องเข้าถึงเราเตอร์หลักสำหรับเครือข่ายของคุณหรือคุณต้องทำบนเครื่องที่กำลังส่งคำขอ สิ่งนี้จะส่งแพ็กเก็ต TCP ที่มี IP แอดเดรส wxyz ไปยังที่อยู่ MAC ของเซิร์ฟเวอร์จำลอง ดังนั้นตอนนี้คุณต้องแน่ใจว่าเซิร์ฟเวอร์จำลองรู้ว่าต้องทำอะไรกับพวกเขา

จากนั้นเพิ่มที่อยู่ IP wxyz เป็นที่อยู่สำรองไปยังเซิร์ฟเวอร์จำลอง
ในที่สุดให้อัปเดต apache config บนเซิร์ฟเวอร์จำลองเพื่อให้แน่ใจว่าได้ฟังที่อยู่ wxyz และตรวจสอบให้แน่ใจว่า vhost บนเซิร์ฟเวอร์จำลองยอมรับการร้องขอขาเข้าสำหรับทั้งที่อยู่ IP และชื่อโดเมน

โปรดทราบว่านี่จะใช้งานได้หากไม่มีเราเตอร์อื่น ๆ ระหว่างเครื่องที่ร้องขอและเซิร์ฟเวอร์จำลอง และหากมีไฟร์วอลล์ใด ๆ ที่เกี่ยวข้องก็จำเป็นต้องมีการอัพเดต


ขอบคุณสำหรับคำตอบมันเหมือนที่ฉันต้องการจะทำ แต่ฉันมีปัญหาในการใช้งาน ฉันชอบที่จะไม่สัมผัสเราเตอร์ด้วยเช่นกันเพราะโซลูชันควรเป็นเอกสิทธิ์สำหรับเครื่องของฉัน คำสั่งที่คุณทำให้ฉันเป็นตัวอย่างไม่ทำงานบน win xp ของฉัน ฉันยังลอง "เส้นทางเพิ่ม wxyz 127.0.0.1" ไม่สำเร็จ ฉันไม่มีไฟร์วอลล์ / เราเตอร์ระหว่างแอปพลิเคชันและเซิร์ฟเวอร์จำลอง พวกเขาทั้งสองทำงานบนเครื่องเดียวกัน (แต่ฉันมีซอฟต์แวร์ไฟร์วอลล์: kaspersky) ฉันจะขอบคุณความช่วยเหลือเกี่ยวกับวิธีการตั้งค่าเส้นทางนี้
Loda

1
มีคำสั่ง route สำหรับ Windows: route ADD wxyz MASK 255.255.255.255 127.0.0.1 นี่จะชี้เส้นทางกลับไปยังเครื่องของคุณเอง คุณอาจต้องเปิดไฟร์วอลล์สำหรับคำขอเข้ามาในที่อยู่ wxyz
wolfgangsz

ฉันพยายามเพิ่มเส้นทางโดยใช้คำสั่งนี้โดยไม่ประสบความสำเร็จ ไม่รู้ทำไม
Loda

"route เพิ่ม 62.1.1.10 mask 255.255.255.255 127.0.0.1" ข้อความแสดงข้อผิดพลาดพูดว่า: "เกิดข้อผิดพลาดในการเพิ่มเส้นทาง: พารามิเตอร์ที่ไม่ถูกต้อง" (แปลจาก ES)
Loda

อืมคุณอาจต้องแทนที่ 127.0.0.1 ด้วยที่อยู่ IP ของ LAN ในอินเทอร์เฟซนั้น ฉันไม่เคยลองอะไรแบบนี้มาก่อนเลยมีการคาดเดาเล็กน้อยที่เกี่ยวข้อง
wolfgangsz

1

คุณอาจจะปังบางอย่างพร้อมกับ iptables นี่คือสิ่งที่ฉันเคยใช้ แต่ไม่ได้ทำเพื่อให้คุณเป็นเจ้าของเท้าอีกต่อไป:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 172.16.25.202 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to 172.16.27.59:8025
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT

NB: ฉันทำมานานแล้วอาจมีข้อผิดพลาดเกิดขึ้น

สิ่งเดียวที่ฉันเห็นว่าอาจเป็นปัญหาคือมันมีเฉพาะกับส่วนต่อประสาน ฉันคิดว่า eth0 นั้นมีไว้สำหรับส่วนขาเข้าเท่านั้นดังนั้นการใช้ ip บนอินเตอร์เฟส lo (127.0.0.1) เนื่องจากเป้าหมายอาจยังทำงานได้ ...


1
นั่นเป็นคำตอบที่ยอดเยี่ยม ... แต่เขาใช้ Windows XP
Jason Berg

Doh! ฉันคิดว่าฉันเห็น "apache / php" และหยุดอ่าน แม้หลังจากที่คุณชี้ให้เห็นว่าฉันสแกนสามครั้งก่อนที่ฉันจะเห็นมัน โอ้ฉันจะทิ้งมันไว้บางทีมันอาจจะช่วยใครซักคนที่เมื่อไหร่
jj33

ฉันกำลังคิดกับ Vagrant, busybox และ iptables เพื่อสร้าง VPN แบบเลือก ฉันต้องการบอกระบบของฉันว่ามีที่อยู่ IP ที่รู้จักเพียงไม่กี่แห่งที่เป็นของ VPN ดังนั้นการรับส่งข้อมูลไปยังที่อื่นจะไม่ผ่าน VPN ความคิดของฉันคือใช้ Linux ที่มีน้ำหนักเบามากเป็น busybox เพื่อเชื่อมต่อกับ VPN จากนั้นใช้ iptables หรือโฮสต์ไฟล์หรือสิ่งที่คล้ายกันเปลี่ยนเส้นทางคำขอของที่อยู่ IP ที่รู้จักไปยัง Vagrant VM ของผู้เยี่ยมชมเพื่อที่จะจัดการ VPN . นี้ iptables กฎอาจจะให้ฉันช่วยบาง :)
บรูโน่ลายนิ้วมือ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.