歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 如何在Ubuntu,Linux Mint,Debian上禁用IPv6

如何在Ubuntu,Linux Mint,Debian上禁用IPv6

日期:2017/2/28 14:30:05   编辑:Linux教程

【編者注】都說IPv4地址枯竭了,要推廣IPv6,但是遲遲不見動靜,既然如此,在它完全就緒前,就不要讓它來打擾我們的系統好了。

IPv6

IPv6是尋址方案IPv4的下一個版本,被用來給域名分配數字地址。

IPv6比IPv4支持更多的地址。然而,它還沒有被廣泛支持,還在被接受的過程中。

Ubuntu開啟IPV6 http://www.linuxidc.com/Linux/2013-03/80479.htm

思科CCIE認證知識點之IPV6地址 http://www.linuxidc.com/Linux/2013-01/78078.htm

WireShark下抓取IPV6數據包使用教程 http://www.linuxidc.com/Linux/2013-01/77518.htm

Ubuntu 12.04 校園網下使用IPV6源 免流量更新 http://www.linuxidc.com/Linux/2012-07/66240.htm

Linux搭建IPV6 ftp服務器 http://www.linuxidc.com/Linux/2012-07/65150.htm

CentOS IPV6設置 http://www.linuxidc.com/Linux/2012-06/63644.htm

CentOS純IPV6環境下設置更新源 http://www.linuxidc.com/Linux/2012-06/63643.htm

CentOS 6 IPV6 關閉方法 http://www.linuxidc.com/Linux/2012-06/63642.htm

你的系統支持IPv6麼?

為了支持IPv6,需要很多事情。首先你需要系統/操作系統支持IPv6。Ubuntu,Linux Mint,和大多是現代發行版都支持它。如果你看一下ifconfig指令的輸出,你就會看見你的網絡接口被分配了IPv6地址。

  1. $ ifconfig
  2. eth0 Link encap:EthernetHWaddr00:1c:c0:f8:79:ee
  3. inet addr:192.168.1.2Bcast:192.168.1.255Mask:255.255.255.0
  4. inet6 addr: fe80::21c:c0ff:fef8:79ee/64Scope:Link
  5. UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
  6. RX packets:110880 errors:0 dropped:0 overruns:0 frame:0
  7. TX packets:111960 errors:0 dropped:0 overruns:0 carrier:0
  8. collisions:0 txqueuelen:1000
  9. RX bytes:62289395(62.2 MB) TX bytes:25169458(25.1 MB)
  10. Interrupt:20Memory:e3200000-e3220000
  11. lo Link encap:LocalLoopback
  12. inet addr:127.0.0.1Mask:255.0.0.0
  13. inet6 addr:::1/128Scope:Host
  14. UP LOOPBACK RUNNING MTU:65536Metric:1
  15. RX packets:45258 errors:0 dropped:0 overruns:0 frame:0
  16. TX packets:45258 errors:0 dropped:0 overruns:0 carrier:0
  17. collisions:0 txqueuelen:0
  18. RX bytes:4900560(4.9 MB) TX bytes:4900560(4.9 MB)

看一下行“inet6 addr”。

接下來你需要一個支持ipv6的路由器/調制解調器。此外,你的ISP也必須支持IPv6。

除了檢查網絡設備的每一部分,最好查出你是否可以通過IPv6訪問網站。

有很多網站可以檢測你的網絡連接是否支持IPv6. 這裡就是個例子:http://testmyipv6.com/

下面是在內核中啟用IPv6的參數:

  1. $ sysctl net.ipv6.conf.all.disable_ipv6
  2. net.ipv6.conf.all.disable_ipv6 =0
  3. $ sysctl net.ipv6.conf.default.disable_ipv6
  4. net.ipv6.conf.default.disable_ipv6 =0
  5. $ sysctl net.ipv6.conf.lo.disable_ipv6
  6. net.ipv6.conf.lo.disable_ipv6 =0

同樣可以在proc文件中檢查

  1. $ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
  2. 0

注意這裡的變量是控制IPv6的“禁用”。所以設置1就會禁用IPv6。

如果它不支持就禁用IPv6

如果你的網絡設備中不支持IPv6,那最好就全部禁用它們。為什麼?因為這會引起域名查詢延遲,在網絡連接中不必要地嘗試連接到IPv6地址導致延遲等等問題。

我也遇到過像這樣的問題,apt-get命令偶爾會嘗試連接到IPv6地址失敗接著檢索IPv4地址。看一下下面的輸出。

  1. $ sudo apt-get update
  2. Ign http://archive.canonical.com trusty InRelease
  3. Ign http://archive.canonical.com raring InRelease
  4. Err http://archive.canonical.com trusty Release.gpg
  5. Cannot initiate the connection to archive.canonical.com:80(2001:67c:1360:8c01::1b).- connect (101:Networkis unreachable)[IP:2001:67c:1360:8c01::1b80]
  6. Err http://archive.canonical.com raring Release.gpg
  7. Cannot initiate the connection to archive.canonical.com:80(2001:67c:1360:8c01::1b).- connect (101:Networkis unreachable)[IP:2001:67c:1360:8c01::1b80]
  8. .....

像這樣的錯誤在最近的Ubuntu中更頻繁了,或許它比以前更頻繁地嘗試使用IPv6地址。

我在其他的應用上也注意到了相似的問題,如Hexchat,同樣Google Chrome也會有時會在查詢域名的時候花費更長的時間。

所以最好的方案是完全禁用IPv6來擺脫這些事情。這只需要一點點配置但可以幫助你解決很多你系統上的很多問題。用戶甚至反應這可以加速網絡。

禁用 IPv6 - 方案1

編輯文件 - /etc/sysctl.conf

  1. $ sudo gedit /etc/sysctl.conf

在文件的最後加入下面的行。

  1. # IPv6 disabled
  2. net.ipv6.conf.all.disable_ipv6 =1
  3. net.ipv6.conf.default.disable_ipv6 =1
  4. net.ipv6.conf.lo.disable_ipv6 =1

保存並關閉

重啟sysctl

  1. $ sudo sysctl -p

再次檢查ifconfig的輸出,這裡應該沒有IPv6地址了。

  1. $ ifconfig
  2. eth0 Link encap:EthernetHWaddr08:00:27:5f:28:8b
  3. inet addr:192.168.1.3Bcast:192.168.1.255Mask:255.255.255.0
  4. UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
  5. RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
  6. TX packets:965 errors:0 dropped:0 overruns:0 carrier:0
  7. collisions:0 txqueuelen:1000
  8. RX bytes:1501691(1.5 MB) TX bytes:104883(104.8 KB)

如果不行,嘗試重啟系統並再次檢查ifconfig

禁用 IPv6 - GRUB 方案

IPv6同樣可以通過編輯grub配置文件禁用。

  1. $ sudo gedit /etc/default/grub

查找包含"GRUBCMDLINELINUX"的行,並如下編輯:

  1. GRUB_CMDLINE_LINUX="ipv6.disable=1"

同樣可以加入名為"GRUBCMDLINELINUX_DEFAULT"的變量,這同樣有用。保存並關閉文件,重新生成grub配置。

  1. $ sudo update-grub2

重啟,現在IPv6應該就已經禁用了。

Copyright © Linux教程網 All Rights Reserved