[排错] 解决 Linux 普通用户执行 ping 命令时报错 “ping: socket: Address family not supported by protocol” 或者 “Error: ping: socket: Operation not permitted”

报错命令

# ping ......

报错代码

ping: socket: Address family not supported by protocol

或者:

Error: ping: socket: Operation not permitted

解决方法一:修改 net.ipv4.ping_group_range 参数

1.1 确认文件功能没有参数

# getcap /usr/bin/ping

(补充:确认没有输出结果)

1.2 修改 net.ipv4.ping_group_range 参数

# sysctl net.ipv4.ping_group_range="0 2147483647"

解决方法二:设置文件功能参数

2.1 设置文件功能参数

# setcap cap_net_raw+eip /usr/bin/ping

2.2 确认文件功能参数已经设置

# getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+eip

[内容] Linux 软件指定版本的升级或降级 (CentOS Linux 7 版) (以系统版本作为指定维度)

内容一:将软件降级到某个版本

# yum --disablerepo='*' --enablerepo='C7.6*' update openssh

(补充:这里以将 openssh 软件升级到 CentOS Linux 7.6 系统版本里的最新版本为例为例)

或者:

# yum --disablerepo='*' --enablerepo='C7.6*' upgrade openssh

(补充:这里以将 openssh 软件升级到 CentOS Linux 7.6 系统版本里的最新版本为例为例)

内容二:将软件降级到某个版本

# yum --disablerepo='*' --enablerepo='C7.6*' downgrade openssh

(补充:这里以将 openssh 软件降级到 CentOS Linux 7.6 系统版本里的最新版本为例为例)

[步骤] Linux 系统指定版本的升级 (CentOS Linux 7 版)

步骤一:安装其他版本软件源

1.1 安装 centos-release

# yum install centos-release

1.2 查看当前所有软件源

# yum repolist all

或者:

# cat /etc/yum.repos.d/CentOS-Vault.repo

步骤二:清除 yum 缓存

2.1 除 yum 缓存

# yum clean all

2.2 删除 yum 缓存目录

# rm -rf /var/cache/yum

步骤三:将系统或软件升级到指定版本

3.1 方案一:将整个系统升级到指定版本

# yum --disablerepo='*' --enablerepo='C7.6*' update

(补充:这里以将整个系统升级到 CentOS Linux 7.6 版本为例)

(注意:系统中其他所有软件都会升级到 CentOS Linux 7.6 系统版本中的最新版本)

或者:

# yum --disablerepo='*' --enablerepo='C7.6*' upgrade

(补充:这里以将整个系统升级到 CentOS Linux 7.6 版本为例)

(注意:系统中其他所有软件都会升级到 CentOS Linux 7.6 系统版本中的最新版本)

3.2 方案二:只将系统内核或某个软件升级到指定版本

# yum --disablerepo='*' --enablerepo='C7.6*' update kernel

(补充:这里以只将系统内核 kernel 升级到 CentOS Linux 7.6 系统版本里的最新版本为例)

或者:

# yum --disablerepo='*' --enablerepo='C7.6*' upgrade kernel

(补充:这里以只将系统内核 kernel 升级到 CentOS Linux 7.6 系统版本里的最新版本为例)