Rocky Linux禁用Ipv6的设置

Published on: May 1, 2022 | Reading Time: 1 min | Last Modified: May 1, 2022

rocky-linux
ipv6

昨天update了一下服务器,想通过部署在上面的的frps内网穿透服务连接家里路由器的时候发现登录页面出错。随即查看frps是不是未运行,结果一切正常正常。于是查看frps监听的端口是否未在防火墙设置打开,结果也是打开的,没毛病呀。 于是查看端口占用:

netstat -ntlp

原来fprs只监听了IPv6地址,更新frps版本还是一样。GitHub上frp的项目Issues里也没有找到有用的回答。于是Google大法开启,Search"rocky disable ipv6",还真找到了解决方法。

有效的答案是针对CentOS 8禁用IPv6的设置方法,由于Rocky就是基于CentOS所以这个方法也对Rocky适用。

ip a | grep inet6 #检查服务器是否启用了IPv6

输出结果是肯定的,显示IPv6已开启

具体的禁用IPv6方法有两种

  • 使用sysctl命令禁用IPv6-此方法适用于临时禁用IPv6
  • 使用内核引导选项禁用IPv6-这是禁用IPv6的最佳方法

第一种方法-使用sysctl命令禁用IPv6

创建一个新的sysctl配置文件/etc/sysctl.d/70-ipv6.conf

vi /etc/sysctl.d/70-ipv6.conf

在配置文件中添加以下两行并保存

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

然后使用以下命令禁用IPv6

sysctl --load /etc/sysctl.d/70-ipv6.conf

验证IPv6是否已被禁用

ip a | grep inet6

窗口未返回任何IPv6有效的信息,说明IPv6已被禁用

但这时如果重启系统,服务器依然会使用IPv6。这是因为Rocky Linux和CentOS 8一样默认使用“Network Manager”网络管理器。

如果要完全禁用IPv6请使用以下命令

nmcli connection modify interface ipv6.method ignore

然后重启

sudo reboot

第二种方法-使用内核引导选项禁用IPv6

打开默认的GRUB配置文件/etc/default/grub

vi /etc/default/grub

在GRUB配置文件末尾加入下面一行并保存

GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX ipv6.disable=1"

然后更新GRUB CFG文件,输入以下命令查找GRUB文件

ls -lh /etc/grub*.cfg

你会看到两个GRUB CFG文件路径:/etc/grub2.cfg -> ../boot/grub2/grub.cfg

输入以下命令创建新的GRUB配置文件并将其保存到/etc/grub2.cfg

grub2-mkconfig -o /etc/grub2.cfg

然后输入以下命令来创建一个新的GRUB配置文件并将其保存到/boot/grub2/grub.cfg

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

重启服务器,再次验证IPv6是否禁用

ip a | grep inet6

终端未反馈任何内容表示IPv6已成功被禁用

最后来看一下frps的端口监听

netstat -ntlp

OK,现在frps就只监听IPv4端口了,成功!

注:使用sysctl禁用IPv6是暂时的,但内核引导选项是永久的,并且是最好的方法。