怎樣在 Ubuntu 上禁用 IPv6 ?
想知道怎樣在 Ubuntu 上禁用 IPv6 嗎?我會在這篇文章中介紹一些方法,以及為什麼你應該考慮這一選擇;以防改變主意,我也會提到如何啟用,或者說重新啟用 IPv6。 |
網際網路協議第 6 版Internet Protocol version 6(IPv6)是網際網路協議(IP)的最新版本。網際網路協議是一種通訊協議,它為網路上的計算機提供識別和定位系統,並在網際網路上進行通訊路由。IPv6 於 1998 年設計,以取代 IPv4 協議。
IPv6 意在提高安全性與效能的同時保證地址不被用盡;它可以在全球範圍內為每臺裝置分配唯一的以 128 位位元儲存的地址,而 IPv4 只使用了 32 位位元。
儘管 IPv6 的目標是取代 IPv4,但目前還有很長的路要走;網際網路上只有不到 30% 的網站支援 IPv6(這裡 是谷歌的統計),IPv6 有時也給 一些應用帶來問題。
由於 IPv6 使用全球(唯一分配的)路由地址,以及(仍然)有網際網路服務供應商Internet Service Provider(ISP)不提供 IPv6 支援的事實,IPv6 這一功能在提供全球服務的虛擬私人網路Virtual Private Network(虛擬專用網)供應商的優先順序列表中處於較低的位置,這樣一來,他們就可以專注於虛擬專用網使用者最重要的事情:安全。
不想讓自己暴露在各種威脅之下可能是另一個讓你想在系統上禁用 IPv6 的原因。雖然 IPv6 本身比 IPv4 更安全,但我所指的風險是另一種性質上的。如果你不實際使用 IPv6 及其功能,那麼啟用 IPv6 後,你會很容易受到各種攻擊,因而為駭客提供另一種可能的利用工具。
同樣,只配置基本的網路規則是不夠的;你必須像對 IPv4 一樣,對調整 IPv6 的配置給予同樣的關注,這可能會是一件相當麻煩的事情(維護也是)。並且隨著 IPv6 而來的將會是一套不同於 IPv4 的問題(鑑於這個協議的年齡,許多問題已經可以在網上找到了),這又會使你的系統多了一層複雜性。
據觀察,在某些情況下,禁用 IPv6 有助於提高 Ubuntu 的 WiFi 速度。
在本節中,我會詳述如何在 Ubuntu 上禁用 IPv6 協議,請開啟終端(預設快捷鍵:CTRL+ALT+T),讓我們開始吧!
注意:接下來大部分輸入終端的 都需要 root 許可權(sudo)。
警告!
如果你是一個普通 桌面使用者,並且偏好穩定的工作系統,請避開本教程,接下來的部分是為那些知道自己在做什麼以及為什麼要這麼做的使用者準備的。
首先,可以執行以下 來檢查 IPv6 是否已經啟用:
ip a
如果啟用了,你應該會看到一個 IPv6 地址(網路卡的名字可能會與圖中有所不同)
IPv6 Address Ubuntu
IPv6 Address Ubuntu在教程《在 Ubuntu 中重啟網路》(LCTT 譯註:其實這篇文章並沒有提到使用 sysctl 的方法……)中,你已經見過 sysctl 命令了,在這裡我們也同樣會用到它。要禁用 IPv6,只需要輸入三條命令:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
檢查命令是否生效:
ip a
如果命令生效,你應該會發現 IPv6 的條目消失了:
IPv6 Disabled Ubuntu
然而這種方法只能臨時禁用 IPv6,因此在下次系統啟動的時候,IPv6 仍然會被啟用。
(LCTT 譯註:這裡的臨時禁用是指這次所做的改變直到此次關機之前都有效,因為相關的引數是儲存在記憶體中的,可以改變值,但是在記憶體斷電後就會丟失;這種意義上來講,下文所述的兩種方法都是臨時的,只不過改變引數值的時機是在系統啟動的早期,並且每次系統啟動時都有應用而已。那麼如何完成這種意義上的永久改變?答案是在編譯核心的時候禁用相關功能,然後要後悔就只能重新編譯核心了(悲)。)
一種讓選項持續生效的方式是修改檔案 /etc/sysctl.conf,在這裡我用 vim 來編輯檔案,不過你可以使用任何你想使用的編輯器,以及請確保你擁有管理員許可權(用 sudo):
Sysctl Configuration
將下面這幾行(和之前使用的引數相同)加入到檔案中:
net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6=1
執行以下命令應用設定:
sudo sysctl -p
如果在重啟之後 IPv6 仍然被啟用了,而你還想繼續這種方法的話,那麼你必須(使用 root 許可權)建立檔案 /etc/rc.local 並加入以下內容:
#!/bin/bash # /etc/rc.local /etc/sysctl.d /etc/init.d/procps restart exit 0
接著使用 chmod 命令 來更改檔案許可權,使其可執行:
sudo chmod 755 /etc/rc.local
這會讓系統(在啟動的時候)從之前編輯過的 sysctl 配置檔案中讀取核心引數。
另外一種方法是配置 GRUB,它會在系統啟動時向核心傳遞引數。這樣做需要編輯檔案 /etc/default/grub(請確保擁有管理員許可權)。
GRUB Configuration
現在需要修改檔案中分別以 GRUB_CMDLINE_LINUX_DEFAULT 和 GRUB_CMDLINE_LINUX 開頭的兩行來在啟動時禁用 IPv6:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1" GRUB_CMDLINE_LINUX="ipv6.disable=1"
(LCTT 譯註:這裡是指在上述兩行內增加引數 ipv6.disable=1,不同的系統中這兩行的預設值可能有所不同。)
儲存檔案,然後執行命令:
sudo update-grub
(LCTT 譯註:該命令用以更新 GRUB 的配置檔案,在沒有 update-grub 命令的系統中需要使用 sudo grub-mkconfig -o /boot/grub/grub.cfg )
設定會在重啟後生效。
要想重新啟用 IPv6,你需要撤銷之前的所有修改。不過只是想臨時啟用 IPv6 的話,可以執行以下命令:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0 sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
否則想要持續啟用的話,看看是否修改過 /etc/sysctl.conf,可以刪除掉之前增加的部分,也可以將它們改為以下值(兩種方法等效):
net.ipv6.conf.all.disable_ipv6=0 net.ipv6.conf.default.disable_ipv6=0 net.ipv6.conf.lo.disable_ipv6=0
然後應用設定(可選):
sudo sysctl -p
(LCTT 譯註:這裡可選的意思可能是如果之前臨時啟用了 IPv6 就沒必要再重新載入配置檔案了)
這樣應該可以再次看到 IPv6 地址了:
IPv6 Reenabled in Ubuntu
另外,你也可以刪除之前建立的檔案 /etc/rc.local(可選):
sudo rm /etc/rc.local
如果修改了檔案 /etc/default/grub,回去刪掉你所增加的引數:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""
然後更新 GRUB 配置檔案:
sudo update-grub
在這篇文章中,我介紹了在 Linux 上禁用 IPv6 的方法,並簡述了什麼是 IPv6 以及可能想要禁用掉它的原因。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2728336/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 怎樣在 Ubuntu Linux 上安裝 MySQLUbuntuLinuxMySql
- 轉【翻譯】怎樣在Ubuntu 12.04上配置Apache SSL證書UbuntuApache
- CentOS7.6怎麼禁用IPv6協議CentOS協議
- 恆訊科技分析:在Ubuntu怎麼配置ipv6地址?Ubuntu
- 怎樣在 Kubernetes 上執行 PostgreSQLSQL
- 怎樣在Ubuntu 13.04,12.10,12.04安裝Qmmp 0.7.2Ubuntu
- windows10如何禁用onedrive_windows10怎樣禁用onedriveWindows
- 【Ubuntu】在Ubuntu上安裝微信Ubuntu
- 怎樣解決在 Ubuntu 中提示沒有找到 ifconfig 命令Ubuntu
- 在virtualbox上安裝ubuntuUbuntu
- 在Ubuntu上安裝MariaDBUbuntu
- win10如何禁用win_windows10系統怎樣禁用win鍵Win10Windows
- 實戰:Linux 系統如何禁用 IPV6Linux
- 紋理是怎樣顯示在模型上的模型
- 怎樣在 Mac 上使用 App Store 更新軟體MacAPP
- 在 Ubuntu 上安裝 Budgie 桌面Ubuntu
- 在Ubuntu 18.04上安裝TensorflowUbuntu
- win10禁用ipv6怎麼設定 win10電腦關閉ipv6協議設定方法Win10協議
- 怎樣在sqlite3上執行SQL語句SQLite
- 怎樣在windows上定時執行python指令碼WindowsPython指令碼
- ubuntu 關閉防火牆命令 ubuntu怎樣關閉防火牆Ubuntu防火牆
- kUbuntu(KDE版Ubuntu)中禁用滑鼠中鍵貼上功能(未解決)Ubuntu
- win10怎樣禁用驅動簽名_如何禁用win10驅動簽名Win10
- 在Ubuntu上開啟SSH服務Ubuntu
- 在Ubuntu上安裝OpenShift並使用Ubuntu
- 在Ubuntu上使用Jetty部署War包UbuntuJetty
- 教程:在Ubuntu 18.04.1上安裝ElasticsearchUbuntuElasticsearch
- Mac使用技巧:怎樣在Mac電腦上更改密碼Mac密碼
- Ubuntu搭建ipv6 dhcp 伺服器Ubuntu伺服器
- Typecho在Ubuntu 22.04上的安裝部署Ubuntu
- 在ubuntu14.04上配置SNMPv3Ubuntu
- 教你在Ubuntu上安裝Linux核心6.1UbuntuLinux
- 在 Ubuntu 上使用原始碼安裝 OpenRestyUbuntu原始碼REST
- 在Ubuntu上安裝Hadoop單機版UbuntuHadoop
- 在Ubuntu上建立並測試GRE tunnelUbuntu
- 在Ubuntu 18.04.1上安裝Hadoop叢集UbuntuHadoop
- 怎樣在 10k 個 H100 GPU 上訓練模型?GPU模型
- 怎樣在磁碟上查詢MySQL表的大小?這裡有答案MySql