[Linux] 使用 ifconfig/iptables 指令阻擋所有到 localhost 的連線

[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?

(本頁面已被瀏覽過 508 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料