เปลี่ยน IP ภายนอกเป็น localhost หรือไม่


3

เป็นไปได้หรือไม่ที่จะเปลี่ยนเส้นทางการโทรทั้งหมดไปยัง IP ภายนอกบนอินเทอร์เน็ตไปยัง localhost (โดยไม่ต้องใช้โฮสต์)

ฉันมีแอปพลิเคชันเก่าและไม่มีซอร์สโค้ดและแอปพลิเคชันนี้พยายามเชื่อมต่อกับเซิร์ฟเวอร์ postgres โดยใช้ IP

ฉันสามารถสั่งให้อูบุนตูเปลี่ยนเส้นทางการโทรไปยัง IP ภายนอกทั้งหมดเป็น localhost ได้หรือไม่

ด้วยวิธีนี้ฉันจะสามารถเรียกใช้เซิร์ฟเวอร์ postgres บน localhost และทำงานกับแอปพลิเคชันของฉัน

หมายเหตุ: แอปพลิเคชันใช้ IP ไม่ใช่ dns

คำตอบ:


3

Iptablesเป็นวิธีที่จะไป

sysctl -w net.ipv4.conf.eth0.route_localnet=1 # to enable redirecting to localhost
EXTERNAL_IP=8.8.8.8 #change this line to reflect external ipaddress
sudo iptables -t nat -A OUTPUT -d ${EXTERNAL_IP} -j DNAT --to-destination 127.0.0.1

ทำลายมันลง

-t nat ช่วยให้คุณอ้างถึง 127.0.0.1 เป็นปลายทางที่ถูกต้อง

-A OUTPUTผนวกเข้ากับOUTPUTห่วงโซ่ของ iptables นี่คือห่วงโซ่ในตัวใช้ โซ่ในตัวอื่นมีอยู่เช่นINPUTซึ่งใช้กับแพ็คเก็ตที่เข้ามาและPREPROCESSINGซึ่งใช้กับแพ็คเก็ตที่เข้ามาทั้งหมดก่อนที่โซ่ bulit ในอื่น ๆ จะได้รับพวกเขา คุณยังสามารถสร้างเครือข่ายของคุณเองและผนวกเข้ากับหนึ่งในเครือข่ายในตัวเหล่านี้เพื่อการจัดการการตั้งค่าที่ดีขึ้น

-d ${EXTERNAL_IP} ตัวกรองที่อยู่ IP ปลายทางของแพ็กเก็ตที่ผ่านห่วงโซ่เอาท์พุท

-j DNATกำหนดเป้าหมายของกฎเป็นDNATซึ่งช่วยให้คุณสามารถแก้ไขที่อยู่ปลายทางของแพ็กเก็ต

--to-destination 127.0.0.1 is พารามิเตอร์ไปยังเป้าหมาย DNAT ที่ระบุสิ่งที่จะเปลี่ยนแปลงเกี่ยวกับแพ็กเก็ตที่ตรงกันเหล่านี้

นอกจากนี้คุณยังสามารถ จำกัด พอร์ตการเปลี่ยนเส้นทางของที่อยู่โดยใช้--dports ${ORIGINAL_PORT_NUMBER}หลัง-d ${EXTERNAL_IP}และมีพวกเขาอีกครั้งเพื่อเดินทางไปยังพอร์ตเฉพาะโดยการผนวกพอร์ต 127.0.0.1 127.0.0.1:${FINAL_PORT_NUMBER}เช่นดังนั้น

การถอด

ใช้สิ่งต่อไปนี้เพื่อลบออกจาก iptables

sudo iptables -t nat -D OUTPUT -d ${EXTERNAL_IP} -j DNAT --to-destination 127.0.0.1 #note -A was replaced by -A

และตรวจสอบรายชื่อ iptable ด้วยsudo iptables -t nat -L -n -vตำแหน่งที่-t natให้คุณดูการแมป iptable รวมถึงรายการที่เกี่ยวข้องกับ NAT

การกระทำเพิ่มเติม

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

ที่เกี่ยวข้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.