ไม่สามารถเปลี่ยนเส้นทางไปยัง localhost?


13

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


ปัญหาคือการเปลี่ยนเส้นทางอย่างง่าย (ที่อยู่ IP ปลายทาง NAT) คุณจะสูญเสียที่อยู่ IP ปลายทางเดิม คุณต้องการตั้งค่าพร็อกซี HTTP โปร่งใสหรือควรดำเนินการกับโปรโตคอลอื่นที่ไม่ใช่ HTTP ด้วยหรือไม่
pabouk

มันไม่สำคัญว่ามันโปร่งใสหรือไม่
DankMemes

การเปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดไปยังพร็อกซี คือ ฐานสำหรับพร็อกซีโปร่งใส :)
pabouk

ต่อไปนี้เป็นคำตอบที่ช่วยฉันออก unix.stackexchange.com/questions/111433/...
Wren T.

คำตอบ:


3
sysctl net.ipv4.ip_forward=1 
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080

1
อย่าใช้ตัวหนา ....

ขอบคุณ! ฉันยังไม่ได้ลอง แต่ฉันสงสัยว่าสิ่งที่ฉันทำหายไปคือคำสั่งการส่งต่อไอพี และครั้งต่อไปโปรดใช้บล็อคโค้ดไม่ใช่ตัวหนา
DankMemes

@AlexAntonov โปรดใช้บล็อคโค้ด เลือกข้อความของคุณในโหมดแก้ไขและคลิกที่ไอคอนวงเล็บ
DankMemes

@ZoveGames ขอโทษแก้ไข
Alex Antonov

2
ฉันทดลองกับสิ่งนี้ ip_forward sysctl ไม่จำเป็น อย่างไรก็ตามตัวเลือก route_localnet ที่นี่ คือ. ฉันเห็นแล้วว่านี่คือสิ่งที่ Juan Cespedes ' ตอบ รัฐ
Matt Joiner

25

ที่สามารถทำได้ด้วย iptablesแต่มีเฉพาะเคอร์เนล & gt; = 3.6

คุณจะต้องทำ:

sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080

ip_forward ไม่จำเป็นเพราะแพ็คเก็ตไม่ได้ส่งต่อ แต่ถ้าคุณไม่รวม sysctl route_localnet (ซึ่งใช้งานได้เฉพาะในเมล็ด & gt; = 3.6) แพ็คเก็ตจะถูกทิ้งโดยเคอร์เนลเพราะถือว่าเป็น "ดาวอังคาร" ซึ่งมาจากด้านนอกและมีที่อยู่ปลายทางที่ 127.0.0.1


ใช่นั่นใช้งานได้
Nick De Greek

ไม่ทราบเกี่ยวกับ route_localnet โรงเรียนเก่าและไม่สามารถหาสาเหตุที่ ip_forward ไม่ทำงาน (สงสัยว่ามันไม่จำเป็น
dmourati

1
ตรวจสอบให้แน่ใจว่าคุณบันทึก net.ipv4.conf.all.route_localnet=1 ใน /etc/sysctl.conf มิฉะนั้นจะไม่คงอยู่และหลังจากรีบูตตัวแปรจะกลับไปเป็น 0 ทำให้แพ็กเก็ตหลุด ถ้าอย่างนั้นมันจะยากที่จะคิดว่าทำไมตอนนี้ทุกอย่างไม่ทำงาน ... มันเกิดขึ้นกับฉัน ;)
viz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.