导航:首页 > 操作系统 > 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相关的资料

热点内容
程序员如何渡过35岁 浏览:587
e电光伏app是什么 浏览:138
联想服务器如何关闭端口 浏览:826
springboot怎么内置到云服务器 浏览:400
丘维声高等代数pdf答案 浏览:60
pop服务器地址网易代发 浏览:512
linuxc开发视频 浏览:302
软件如何挂服务器运行 浏览:941
如何安装ccs编译器 浏览:175
python处理wav 浏览:464
30ms解压速度正常吗 浏览:800
用一个单片机点亮48个灯 浏览:429
androidhttp异步请求 浏览:49
安卓答题系统源码 浏览:673
小米手环门卡加密了怎么办 浏览:919
pdf系统字体 浏览:974
小米双开文件夹找不到 浏览:802
java字符单引号 浏览:623
安卓蓝牙打印机源码 浏览:846
重庆学法减分在哪个app里面 浏览:696