[Linux] 使用 ifconfig/iptables 指令阻擋所有到 localhost 的連線
這一篇的標題看起來很怪,但事實上是因為專案有一些 socket server,
希望在測試時可以阻擋連線進來,用來模擬網卡出現問題的狀況~
試了一下,我們至少可以用 ifconfig 和 iptables 兩種做法來完成~
1. 使用 ifconfig
執行下面的指令將 lo 這張網卡直接關掉:
sudo ifconfig lo down
這時不管是 ping localhost、或是要連本地端的一些 socket server 都連不到了:
root@localhost # ping 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. ^C --- 127.0.0.1 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 999ms root@localhost # nc -v -v -z 127.0.0.1 12345 ^CExiting.
2. 使用 iptables
可以用 iptables 將走到 lo 這張網卡的封包全部丟掉,
做出來的效果和作法 1 是差不多的:
sudo iptables -I INPUT -i lo -j DROP
參考資料:How do I use iptables to reject all traffic to localhost port 80?
(本頁面已被瀏覽過 504 次)