1
我最初正在做一些與Docker橋接網絡組合,並且注意到代替白名單本地IP,請求總是從網關IP發送。爲什麼我在Docker橋接網絡中將網關IP作爲源地址?
要以最小的努力重現它,我用了兩個Python容器運行一個HTTP服務器和客戶端:
docker run -it --rm python:alpine sh
在服務器端:
python -m http.server
在客戶端:
wget 172.17.0.3:8000
預期輸出,是請求來自容器IP:
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
172.17.0.2 - - [time] "GET/HTTP/1.1" 200 -
實際產量,其中請求來自橋網關IP:
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
172.17.0.1 - - [time] "GET/HTTP/1.1" 200 -
然而,當我跑我的筆記本電腦相同的測試,我得到預期的行爲(容器IP)。這個問題似乎只發生在我的服務器上。
什麼會導致這種行爲?是某種sysctl或iptables的問題?