場景一:
將外網訪問192.168.100.10的80端口轉發到192.168.75.5:8000端口。 # iptables -t nat -A PREROUTING -d 192.168.100.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.75.5:8000
問題一:
我們將192.168.75.5端口為8080的服務映射至192.168.100.10的端口80上,此時192.168.100.*網段可以正常訪問到192.168.75.5:8080服務
但是無法在內網通過外部映射出去的ip和端口進行訪問
為了解決這個問題我們理清一下思路,在內網本地訪問外網映射出去ip和端口時,這時源地址必然是發生了轉換,且流量一定是流經網卡的,
那么我們可以不讓他流經網卡,讓內核來處理呢
我的思路:將本機出去的流量直接轉發到本地的8080不就能解決這個問題嗎,由於在網絡設備不支持回流的情況下,所以才想了這個方式,經過測試成功解決此問題
將本機訪問80端口的轉發到本機8080 # iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8080 # iptables -t nat -A OUTPUT -p tcp -d 192.168.100.10 --dport 80 -j DNAT --to 127.0.0.1:8080
原因:因為NAT后網絡回流造成內網無法通過公網IP訪問應用服務器,如果服務器是放在dmz區 也就是另一個網段就不會有這個問題