導航:首頁 > 操作系統 > linux禁用ipv6

linux禁用ipv6

發布時間:2024-09-04 07:56:06

⑴ 如何在linux發行版下禁用IPv6

第一種方法:禁用IPv6
編輯文件/etc/sysctl.conf:
$ sudo gedit /etc/sysctl.conf

然後在該文件的末尾處填寫下列幾行:
# IPv6 disabled net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1

保存文件,關閉文件。
使用下列命令重啟sysctl
$ sudo sysctl -p

再次查看ifconfig的輸出結果,現在應該沒有ipv6地址了。
$ ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:5f:28:8b inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1346 errors:0 dropped:0 overruns:0 frame:0 TX packets:965 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1501691 (1.5 MB) TX bytes:104883 (104.8 KB)

要是這一招不管用,那麼試試重啟系統,再次查看ifconfig。
第二種方法:禁用IPv6,使用GRUB方法
還可以編輯grub配置文件,以此禁用IPv6。
$ sudo gedit /etc/default/grub

找到含有GRUB_CMDLINE_LINUX的這一行,編輯該行,如下所示。
GRUB_CMDLINE_LINUX="ipv6.disable=1"

同樣還可以添加到名為GRUB_CMDLINE_LINUX_DEFAULT的變數的值,任何一種方法都管用。保存文件,關閉文件,重新生成grub配置。
$ sudo update-grub2

重啟。現在,IPv6應該已被禁用了。
第三種方法:不禁用IPv6,設置IPv4的優先順序高於IPv6
找到getaddrinfo(3)配置文件,也就是/etc/gai.conf,並去掉相應行的注釋,讓IPv4的優先順序高於IPv6。
$ sudo gedit /etc/gai.conf

找到這一行,去掉其注釋:
#precedence ::ffff:0:0/96 100

那樣一來,它看起來就像這樣:
precedence ::ffff:0:0/96 100

保存並退出文件。重啟後一切都搞定了,因為現在優先處理的是IPv4。如果你要啟用IPv6,但是在執行DNS查詢之類的操作時優先處理IPv4,這是最佳方法。

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

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

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

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

$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:1c:c0:f8:79:ee
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21c:c0ff:fef8:79ee/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:110880 errors:0 dropped:0 overruns:0 frame:0
TX packets:111960 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:62289395 (62.2 MB) TX bytes:25169458 (25.1 MB)
Interrupt:20 Memory:e3200000-e3220000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:45258 errors:0 dropped:0 overruns:0 frame:0
TX packets:45258 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4900560 (4.9 MB) TX bytes:4900560 (4.9 MB)
看一下行「inet6 addr」。

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

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

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

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

$ sysctl net.ipv6.conf.all.disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 0

$ sysctl net.ipv6.conf.default.disable_ipv6
net.ipv6.conf.default.disable_ipv6 = 0

$ sysctl net.ipv6.conf.lo.disable_ipv6
net.ipv6.conf.lo.disable_ipv6 = 0
同樣可以在proc文件中檢查

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0
注意這里的變數是控制IPv6的「禁用」。所以設置1就會禁用IPv6。

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

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

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

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

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

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

禁用 IPv6 - 方案1
編輯文件 - /etc/sysctl.conf

$ sudo gedit /etc/sysctl.conf
在文件的最後加入下面的行。

# IPv6 disabled
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
保存並關閉

重啟sysctl

$ sudo sysctl -p
再次檢查ifconfig的輸出,這里應該沒有IPv6地址了。

$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:5f:28:8b
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
TX packets:965 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1501691 (1.5 MB) TX bytes:104883 (104.8 KB)
如果不行,嘗試重啟系統並再次檢查ifconfig

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

$ sudo gedit /etc/default/grub
查找包含"GRUBCMDLINELINUX"的行,並如下編輯:

GRUB_CMDLINE_LINUX="ipv6.disable=1"
同樣可以加入名為"GRUBCMDLINELINUX_DEFAULT"的變數,這同樣有用。保存並關閉文件,重新生成grub配置。

$ sudo update-grub2
重啟,現在IPv6應該就已經禁用了。

⑶ linux下怎麼關閉ipv6

在Linux下確認IPv6是否已經被啟用,可以從三個方面確定。
1.使用ifconfig查看自己的IP地址是否含有IPv6地址。
eth0 Link encap:Ethernet HWaddr 00:13:D4:05:B2:ED
inet addr:119.119.xxx.xx Bcast:119.119.115.255 Mask:255.255.255.0
inet6 addr: fe80::213:d4ff:fe05:b2ed/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1054562 errors:0 dropped:0 overruns:0 frame:0
TX packets:538136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:346189738 (330.1 MiB) TX bytes:246935731 (235.4 MiB)
Interrupt:209 Base address:0xd800

2.查看服務監聽的IP中是否有IPv6格式的地址。(netstat -tuln)
tcp 0 0 0.0.0.0:8100 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:843 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 :::8080 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*

3.使用lsmod查看ipv6的模塊是否被載入。
[root@linux ~]# lsmod |grep ip
ipt_MASQUERADE 7617 3
iptable_nat 11077 1
ip_nat 21101 2 ipt_MASQUERADE,iptable_nat
ip_conntrack_netbios_ns 6977 0
ipt_REJECT 9665 3
ip_conntrack 53281 5 ipt_MASQUERADE,iptable_nat,ip_nat,ip_conntrack_netbios_ns,xt_state
nfnetlink 10713 2 ip_nat,ip_conntrack
iptable_filter 7105 1
ip_tables 17029 2 iptable_nat,iptable_filter
ip6t_REJECT 9409 1
ip6table_filter 6849 1
ip6_tables 18053 1 ip6table_filter
x_tables 17349 8 ipt_MASQUERADE,iptable_nat,ipt_REJECT,xt_state,ip_tables,ip6t_REJECT,xt_tcpudp,ip6_tables
ipv6 270433 18 ip6t_REJECT,cnic

如果出現以上粗體顯示的部分,代表您的機器上IPV6已經開啟。
關閉IPV6方法:
使用vi編輯器,打開/etc/modprobe.conf,在文檔中加入如下的兩條:
alias net-pf-10 off
alias ipv6 off

保存退出,並且重新啟動系統。
重啟之後可以使用上面的三種方法去驗證IPv6支持是否已經被關閉。
開啟IPV6方法:
IPv6是默認支持的,所以當你要重新開起IPv6支持時,將/etc/modprobe.conf中的兩條指令注釋掉就可以了。

⑷ linux 有必要關閉ipv6嗎 好多人說關閉ipv6,DNS解析會變快。但是實際情況有些軟體會比啟用ipv6的慢。

ipv6可以關閉,可以說現在我們一般是用不到ipv6的,關閉的話可以減少系統資源的浪費,這跟DNS的解析快慢好像沒有關系 ,DNS解析的快慢是跟DNS伺服器本身有關,還有網速的快慢

閱讀全文

與linux禁用ipv6相關的資料

熱點內容
台灣伺服器域名是什麼雲空間 瀏覽:901
單片機程序電子版 瀏覽:599
路由器加密模式只有wpa2 瀏覽:530
ug刪除加密 瀏覽:433
安卓手機如何下載最低版本的抖音 瀏覽:778
sprint演算法 瀏覽:444
數控編程學習資料 瀏覽:177
pdf語文 瀏覽:943
單片機小學比賽 瀏覽:95
條件預編譯多條件 瀏覽:394
物理學好可以當程序員嗎 瀏覽:435
jsp圖片網站源碼 瀏覽:845
美股開盤加密貨幣大跌 瀏覽:18
ubuntuphp伺服器 瀏覽:189
伺服器編輯器如何寫 瀏覽:384
我有一套源碼自帶採集 瀏覽:112
對稱加密演算法的特點 瀏覽:47
河池看房用什麼app 瀏覽:283
linuxnameserver 瀏覽:91
與數學相關的文件夾名稱 瀏覽:292