Ubuntu 17.10:重新啟用 IPv6

Ubuntu 17.10:重新啟用 IPv6

使用此腳本成功停用 IPv6 後:

echo  'net.ipv6.conf.all.disable_ipv6 = 1'  >> /etc/sysctl.conf
echo  'net.ipv6.conf.default.disable_ipv6 = 1'  >> /etc/sysctl.conf
echo  'net.ipv6.conf.lo.disable_ipv6 = 1'  >> /etc/sysctl.conf
sysctl -p

我嘗試使用此腳本重新啟用:

sed  -i "/net.ipv6.conf.all.disable_ipv6/d" /etc/sysctl.conf
sed  -i "/net.ipv6.conf.default.disable_ipv6/d" /etc/sysctl.conf
sed  -i "/net.ipv6.conf.lo.disable_ipv6/d" /etc/sysctl.conf
sysctl -p

我已經驗證啟用腳本從 sysctl.conf 檔案中刪除了停用行。

在每種情況下,我都會用以下方法檢查結果:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

其中“1”表示禁用,“0”表示不禁用。

重新啟用部分不起作用。

在每種情況下,sysctl -p 指令都會重新載入 /etc/sysctl.conf 檔案。然而,重新加載似乎只是將其拉入緩衝區,而不​​是完全覆蓋它,以便禁用屬性不會被刪除。

這個分析正確嗎?

如果是這樣,我看不到清除 sysctl.conf 快取的選項。有嗎?或是有針對這個需求的策略嗎?

答案1

中的條目/etc/sysctl.conf以及其中包含的任何檔案指定在引導時或執行時要套用哪些 sysctl 設定sudo sysctl -p。但是這個檔案中缺少條目意味著這樣的sysctl(其中有數千個)不會改變從它目前擁有的任何價值。

您從此檔案中刪除了停用 IPv6 的 sysctl 條目,但您似乎並未實際更改 sysctl 設定本身。跑步sudo sysctl -p並沒有改變他們,因為他們不在/etc/sysctl.conf

為了將這些條目變更回預設值,您可以重新啟動系統,或使用sysctl明確設定它們。例如:

sudo sysctl net.ipv6.conf.all.disable_ipv6=0
sudo sysctl net.ipv6.conf.default.disable_ipv6=0
sudo sysctl net.ipv6.conf.lo.disable_ipv6=0

相關內容