一、前言

在日常网络服务器的维护和使用过程中,ping命令是最为常用的一个检测命令,它所使用的是ICMP协议。但是为了保护主机,很多时候我们需要禁止ICMP协议,即禁止用户ping操作,在这种情况下,终端再使用ping命令检测,服务器是不会再做出任何响应。

Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:
A、内核参数
B、防火墙
需要这2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。

二、禁止Ping方法

方法1 通过sys配置禁止ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
方法2 通过iptables命令禁止ping
iptables -I INPUT -i ech0 -p icmp -s 0/0 -d 0/0 -j DROP

以上这些配置的话,重启一般就没掉了。如果需要开机启动,ubuntu提供以下的方式进行禁止ping操作,通过修改sysctl.conf
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
重新加载配置文件
sysctl -p
不过在今天,我发现重启之后,还是可以ping的,当前系统的版本是Ubuntu 18.04, 只能在启动后,在执行一下sysctl -p

三、允许ping方法

配置sys允许ping:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
通过iptables允许ping:
iptables -I INPUT -i ech0 -p icmp -s 0/0 -d 0/0 -j ACCEPT

参考资料

ubuntu禁止/允许ping
Ubuntu 16.04 服务器禁止ping操作

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐