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

linuxipv6禁用

發布時間:2022-06-04 15:17:29

A. 如何在linux下禁用IPv6

IPv6被認為是IPv4——互聯網上的傳統32位地址空間——的替代產品,它用來解決現有IPv4地址空間即將耗盡的問題。然而,由於已經有大量主
機、設備用IPv4連接到了互聯網上,所以想在一夜之間將它們全部切換到IPv6幾乎是不可能的。許多IPv4到IPv6的轉換機制(例如:雙協議棧、網
絡隧道、代理)
已經被提出來用來促進IPv6能被採用,並且很多應用也正在進行重寫,如我們所提倡的,來增加對IPv6的支持。有一件事情可以確定,就是在可預見的未來
里IPv4和IPv6勢必將共存。

理想情況下,向IPv6過渡的進程不應該被最終的用戶所看見,但是IPv4/IPv6混合環境有時會讓你碰到各種源於IPv4和IPv6之間不經意間
的相互碰撞的問題。舉個例子,你會碰到應用程序超時的問題,比如apt-get或ssh嘗試通過IPv6連接失敗、DNS伺服器意外清空了IPv6的
AAAA記錄、或者你支持IPv6的設備不兼容你的互聯網服務提供商遺留下的IPv4網路,等等等等。

當然這不意味著你應該盲目地在你的Linux機器上禁用IPv6。鑒於IPv6許諾的種種好處,作為社會的一份子我們最終還是要充分擁抱它的,但是作為給最終用戶進行故障排除過程的一部分,如果IPv6確實是罪魁禍首,那你可以嘗試去關閉它。

這里有一些讓你在Linux中部分(例如:對於某個特定的網路介面)或全部禁用IPv6的小技巧。這些小貼士應該適用於所有主流的Linux發行版包
括Ubuntu、Debian、Linux Mint、CentOS、Fedora、RHEL以及Arch Linux。

查看IPv6在Linux中是否被啟用

所有現代Linux發行版默認都自動啟用IPv6。為了能看到IPv6在你的Linux中是否被激活,可以使用ifconfig或ip命令。如果你在輸入這些命令之後看到「inet6」字樣的輸出,那就意味著你的Linux系統啟用了IPv6。

$ ifconfig

$ ip addr

臨時禁用IPv6

如果你想要在你的Linux系統上臨時關閉IPv6,你可以用 /proc 文件系統。「臨時」的意思是我們所做的禁用IPv6的更改在系統重啟後將不被保存。IPv6會在你的Linux機器重啟後再次被啟用。

要將一個特定的網路介面禁用IPv6,使用以下命令:

$ sudo sh -c 『echo 1 》 /proc/sys/net/ipv6/conf/《interface-name》/disable_ipv6』

舉個例子,將eth0介面禁用IPv6:

$ sudo sh -c 『echo 1 》 /proc/sys/net/ipv6/conf/eth0/disable_ipv6』

重新啟用eth0介面的IPv6:

$ sudo sh -c 『echo 0 》 /proc/sys/net/ipv6/conf/eth0/disable_ipv6』

如果你想要將整個系統所有介麵包括回環介面禁用IPv6,使用以下命令:

$ sudo sh -c 『echo 1 》 /proc/sys/net/ipv6/conf/all/disable_ipv6』

永久禁用IPv6

以上方法是不能永久禁用IPv6的,你一旦重啟系統IPv6還是會被啟用。如果你想要永久關閉它,有幾個方法你可以試試。

方法一

第一種方法是通過 /etc/sysctl.conf 文件對 /proc 進行永久修改。

換句話說,就是用文本編輯器打開 /etc/sysctl.conf 然後添加以下內容:

# 禁用整個系統所有介面的IPv6

net.ipv6.conf.all.disable_ipv6 = 1

# 禁用某一個指定介面的IPv6(例如:eth0, lo)

net.ipv6.conf.lo.disable_ipv6 = 1

net.ipv6.conf.eth0.disable_ipv6 = 1

在 /etc/sysctl.conf 使這些更改生效,運行以下命令:

$ sudo sysctl -p /etc/sysctl.conf

或者直接重啟。

方法二

另一個永久禁用IPv6的方法是在開機的時候傳遞一個必要的內核參數。

用文本編輯器打開 /etc/default/grub 並給GRUBCMDLINELINUX變數添加「ipv6.disable=1」。

$ sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX=「xxxxx ipv6.disable=1」

上面的「xxxxx」代表任何已有的內核參數,在它後面添加「ipv6.disable=1」。

最後,不要忘記用以下方法保存對GRUB/GRUB2的修改:

Debian、Ubuntu或Linux Mint系統:

$ sudo update-grub

Fedora、CentOS/RHEL系統:

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

現在只要你重啟你的Linux系統,IPv6就會完全被禁用。

禁用IPv6之後的其它可選步驟

這里有一些在你禁用IPv6後需要考慮的可選步驟,這是因為當你在內核里禁用IPv6後,其它程序也許仍然會嘗試使用IPv6。在大多數情況下,應用程序的這種行為不太會影響到什麼,但是出於效率或安全方面的原因,你可以為他們禁用IPv6。

/etc/hosts

根據你的設置, /etc/hosts 會包含一條或多條IPv6的hosts和它們的地址。用文本編輯器打開 /etc/hosts 並注釋掉包含IPv6 hosts的腳本行。

$ sudo vi /etc/hosts

# comment these IPv6 hosts# ::1 ip6-localhost ip6-loopback# fe00::0
ip6-localnet# ff00::0 ip6-mcastprefix# ff02::1 ip6-allnodes# ff02::2
ip6-allrouters

Network Manager

如果你在用NetworkManager來管理你的網路設置,你可以在NetworkManager里禁用IPv6。在NetworkManager
打開wired connection,點擊「IPv6 Settings」選項並在「Method」一欄選擇「Ignore」,保存退出。

SSH服務

默認情況下,OpenSSH服務(sshd)會去嘗試捆綁IPv4和IPv6的地址。

要強制sshd只捆綁IPv4地址,用文本編輯器打開 /etc/ssh/sshd_config 並添加以下行。inet只適用於IPv4,而inet6是適用於IPv6的。

$ sudo vi /etc/ssh/sshd_config

AddressFamily inet

然後重啟sshd服務。

上面就是Linux禁用IPv6的方法介紹了,你可選擇臨時禁用IPv6或永久禁用IPv6,臨時禁用在系統重啟後IPv6還會被啟用,而永久禁用IPv6則不會出現這個問題。

B. 如何禁用ipv6

IPv6被認為是IPv4——互聯網上的傳統32位地址空間——的替代產品,它用來解決現有IPv4地址空間即將耗盡的問題。然而,由於已經有大量主機、設備用IPv4連接到了互聯網上,所以想在一夜之間將它們全部切換到IPv6幾乎是不可能的。許多IPv4到IPv6的轉換機制(例如:雙協議棧、網路隧道、代理)已經被提出來用來促進IPv6能被採用,並且很多應用也正在進行重寫,如我們所提倡的,來增加對IPv6的支持。有一件事情可以確定,就是在可預見的未來里IPv4和IPv6勢必將共存。理想情況下,向IPv6過渡的進程不應該被最終的用戶所看見,但是IPv4/IPv6混合環境有時會讓你碰到各種源於IPv4和IPv6之間不經意間的相互碰撞的問題。舉個例子,你會碰到應用程序超時的問題,比如apt-get或ssh嘗試通過IPv6連接失敗、DNS伺服器意外清空了IPv6的AAAA記錄、或者你支持IPv6的設備不兼容你的互聯網服務提供商遺留下的IPv4網路,等等等等。當然這不意味著你應該盲目地在你的Linux機器上禁用IPv6。鑒於IPv6許諾的種種好處,作為社會的一份子我們最終還是要充分擁抱它的,但是作為給最終用戶進行故障排除過程的一部分,如果IPv6確實是罪魁禍首,那你可以嘗試去關閉它。這里有一些讓你在Linux中部分(例如:對於某個特定的網路介面)或全部禁用IPv6的小技巧。這些小貼士應該適用於所有主流的Linux發行版包括Ubuntu、Debian、LinuxMint、CentOS、Fedora、RHEL以及ArchLinux。查看IPv6在Linux中是否被啟用所有現代Linux發行版默認都自動啟用IPv6。為了能看到IPv6在你的Linux中是否被激活,可以使用ifconfig或ip命令。如果你在輸入這些命令之後看到「inet6」字樣的輸出,那就意味著你的Linux系統啟用了IPv6。$ifconfig$ipaddr臨時禁用IPv6如果你想要在你的Linux系統上臨時關閉IPv6,你可以用/proc文件系統。「臨時」的意思是我們所做的禁用IPv6的更改在系統重啟後將不被保存。IPv6會在你的Linux機器重啟後再次被啟用。要將一個特定的網路介面禁用IPv6,使用以下命令:$sudosh-c『echo1》/proc/sys/net/ipv6/conf/《interface-name》/disable_ipv6』舉個例子,將eth0介面禁用IPv6:$sudosh-c『echo1》/proc/sys/net/ipv6/conf/eth0/disable_ipv6』重新啟用eth0介面的IPv6:$sudosh-c『echo0》/proc/sys/net/ipv6/conf/eth0/disable_ipv6』如果你想要將整個系統所有介麵包括回環介面禁用IPv6,使用以下命令:$sudosh-c『echo1》/proc/sys/net/ipv6/conf/all/disable_ipv6』永久禁用IPv6以上方法是不能永久禁用IPv6的,你一旦重啟系統IPv6還是會被啟用。如果你想要永久關閉它,有幾個方法你可以試試。方法一第一種方法是通過/etc/sysctl.conf文件對/proc進行永久修改。換句話說,就是用文本編輯器打開/etc/sysctl.conf然後添加以下內容:#禁用整個系統所有介面的IPv6net.ipv6.conf.all.disable_ipv6=1#禁用某一個指定介面的IPv6(例如:eth0,lo)net.ipv6.conf.lo.disable_ipv6=1net.ipv6.conf.eth0.disable_ipv6=1在/etc/sysctl.conf使這些更改生效,運行以下命令:$sudosysctl-p/etc/sysctl.conf或者直接重啟。方法二另一個永久禁用IPv6的方法是在開機的時候傳遞一個必要的內核參數。用文本編輯器打開/etc/default/grub並給GRUBCMDLINELINUX變數添加「ipv6.disable=1」。$sudovi/etc/default/grubGRUB_CMDLINE_LINUX=「xxxxxipv6.disable=1」上面的「xxxxx」代表任何已有的內核參數,在它後面添加「ipv6.disable=1」。最後,不要忘記用以下方法保存對GRUB/GRUB2的修改:Debian、Ubuntu或LinuxMint系統:$sudoupdate-grubFedora、CentOS/RHEL系統:$sudogrub2-mkconfig-o/boot/grub2/grub.cfg現在只要你重啟你的Linux系統,IPv6就會完全被禁用。禁用IPv6之後的其它可選步驟這里有一些在你禁用IPv6後需要考慮的可選步驟,這是因為當你在內核里禁用IPv6後,其它程序也許仍然會嘗試使用IPv6。在大多數情況下,應用程序的這種行為不太會影響到什麼,但是出於效率或安全方面的原因,你可以為他們禁用IPv6。/etc/hosts根據你的設置,/etc/hosts會包含一條或多條IPv6的hosts和它們的地址。用文本編輯器打開/etc/hosts並注釋掉包含IPv6hosts的腳本行。$sudovi/etc/hosts#commenttheseIPv6hosts#::1ip6-localhostip6-loopback#fe00::0ip6-localnet#ff00::0ip6-mcastprefix#ff02::1ip6-allnodes#ff02::2ip6-allroutersNetworkManager如果你在用NetworkManager來管理你的網路設置,你可以在NetworkManager里禁用IPv6。在NetworkManager打開wiredconnection,點擊「IPv6Settings」選項並在「Method」一欄選擇「Ignore」,保存退出。SSH服務默認情況下,OpenSSH服務(sshd)會去嘗試捆綁IPv4和IPv6的地址。要強制sshd只捆綁IPv4地址,用文本編輯器打開/etc/ssh/sshd_config並添加以下行。inet只適用於IPv4,而inet6是適用於IPv6的。$sudovi/etc/ssh/sshd_configAddressFamilyinet然後重啟sshd服務。上面就是Linux禁用IPv6的方法介紹了,你可選擇臨時禁用IPv6或永久禁用IPv6,臨時禁用在系統重啟後IPv6還會被啟用,而永久禁用IPv6則不會出現這個問題。

C. 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中的兩條指令注釋掉就可以了。

D. 如何在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,這是最佳方法。

E. Linux中關閉ipv6,請仔細看問題,不要粘貼

刪了 ipv6.ko 啊

F. 如何在Ubuntu,Linux Mint,Debian上禁用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:EthernetHWaddr08:00:27:5f:28:8b
inet addr:192.168.1.3Bcast:192.168.1.255Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500Metric: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應該就已經禁用了。

閱讀全文

與linuxipv6禁用相關的資料

熱點內容
程序員轉金融IT 瀏覽:834
黑馬程序員培訓效果如何 瀏覽:910
本地集成編譯 瀏覽:528
韓國電影哪個app可以看 瀏覽:703
玖月授權什麼app什麼梗 瀏覽:785
怎麼使用伺服器上的ip地址是什麼情況 瀏覽:750
手機密碼加密後怎麼解密 瀏覽:343
華為雲的伺服器的ip地址怎麼訪問不 瀏覽:367
webstormvue在線實時編譯生效 瀏覽:184
3225pdf 瀏覽:171
java中的常用類 瀏覽:395
安卓手機oppo反向色調怎麼開 瀏覽:138
羅志祥pdf 瀏覽:224
美國戰爭pdf 瀏覽:243
任務欄右擊如何顯示常用文件夾 瀏覽:100
海克斯康三次元編程 瀏覽:748
什麼app可以上門喂貓 瀏覽:889
老程序員抓彈幕 瀏覽:655
刷地鐵卡應該下個什麼app 瀏覽:154
安卓版谷歌瀏覽器為什麼用不了 瀏覽:505