Linux
需要橋接模組時如何禁用 ipv6?
在linux中,如果需要橋接網卡,會自動載入橋接模組。但是bridge的依賴之一是ipv6。因為我只需要 ipv4,有什麼方法可以覆蓋 ipv6 依賴?我試圖將模組列入黑名單,但它根本不起作用。
編輯:問題不是問如何禁用 ipv6,而是我想知道如何在沒有 ipv6 模組的情況下載入網橋。問題不重複。
從其配置定義:
depends on: CONFIG_IPV6 || CONFIG_IPV6 = CONFIG_n
看來橋模組要麼依賴於 ipv6 模組,如果它被編譯(內置或作為模組),或者如果它根本沒有在核心中編譯,則不會依賴它。因此,如果您從不想使用 IPv6,您可以簡單地使用沒有
CONFIG_IPV6
選項集的核心。如果這不是一個選項,您可以執行以下操作之一:
- 首先載入 ipv6 模組 (
modprobe ipv6
),然後立即為介面或任何其他或所有介面禁用 IPv6,方法是將disable_ipv6
切換開關更改為 1:echo 1 > /proc/sys/net/ipv6/conf/someinterface/disable_ipv6
或使用等效的 sysctl (更友好
sudo
或更ip netns
友好):sysctl -w net.ipv6.conf.someinterface.disable_ipv6=1
必須首先載入 ipv6 模組以啟用禁用其功能!否則上面的切換將不可用。
在網橋介面本身上禁用 IPv6 確實可能是個好主意。
如果您想禁用任何 ipv6 的使用,包括稍後出現的較新介面:
sysctl -w net.ipv6.conf.default.disable_ipv6=1 sysctl -w net.ipv6.conf.all.disable_ipv6=1
- 還有一個核心啟動選項
ipv6.disable=1
,它可能更適合有限的環境(例如嵌入式),並且可能根本無法安裝 ipv6 程式碼,但我沒有測試它是否與您的網橋“啟動”兼容。將“ipv6.disable=1”添加到引導選項,然後保存您的 grub 文件:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet splash"
此 AskUbuntu 答案中有關此引導選項的詳細資訊:如何永久禁用 IPv6?
- 然後我認為這也應該有效(但我也無法測試它,因為我有 IPv6 內置):而不是簡單地
modprobe ipv6
在第一種方法中做,而是試試這個:modprobe ipv6 disable=1
或者
modprobe ipv6 disable_ipv6=1
在它被載入之前。如果這可行,那麼您可以將其作為選項添加,如下所示:
options ipv6 disable=1 disable_ipv6=1 #pick the right option
在一個名為 example 的文件中
/etc/modprobe.d/disable-ipv6.conf
。