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 ภายนอกและพอร์ตที่คาดหวังหากคุณวางแผนที่จะสื่อสารกับแอปพลิเคชันและแอปพลิเคชันตรวจสอบแหล่งที่อยู่
ที่เกี่ยวข้อง