为了账号安全,请及时绑定邮箱和手机立即绑定

解决ping: Operation not permitted问题

标签:
Linux 云计算

问题现象
访问网站慢。执行ping结果如下图:
图片描述

ping 127.0.0.1;ping: sendmsg: Operation not permitted

系统负核 1 以下,网络线路通畅,资料库无死锁进程;

系统日志出现大量:kernel: printk: xxxx messages suppressed.资讯。

dmesg 指令后发现大量以下资讯:

TCP: drop open request from 202.153.162.100/62751

printk: 78 messages suppressed.

问题原因

问题可能出在TCP/IP连结上,根据日志资讯查找资料介绍如下:

IP_conntrack表示连接跟踪数据库(conntrack database),代表NAT机器跟踪连接的数目,连接跟踪表能容纳多少记录是被一个变量控制的,它可由内核中的ip-sysctl函数设置。每一个跟踪连接表会占用350字节的内核存储空间,时间一长就会把默认的空间填满。

解决方案

  1. 加大 ip_conntrack_max 值:

查出原本的 ip_conntrack_max 值,指令: cat /proc/sys/net/ipv4/ip_conntrack_max

写入理想的数值 (每一个 ip_conntrack buffer 会占用 292 Bytes)

指令: echo "数值" > /proc/sys/net/ipv4/ip_conntrack_max

例如: echo "163840" >/proc/sys/net/ipv4/ip_conntrack_max

这个效果是暂时的, 如果要每次开机都使用新的数值, 需将上述指令写入 /etc/rc.d/rc.local

或是在 /etc/sysctl.conf 加入: net.ipv4.ip_conntrack_max = 数值

或使用指令: sysctl -w net.ipv4.ip_conntrack_max=数值

  1. 降低 ip_conntrack timeout 时间

重设:ip_conntrack_tcp_timeout_established (原值: 432000, 单位: 秒)

指令:echo "数值" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

例如:echo "180" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

  1. 开启 tcp_syncookies

重设:tcp_syncookies (默认值 0)

例如:echo '1'> /proc/sys/net/ipv4/tcp_syncookies

4、经过以上设置后,系统日志出现一条:

kernel: possible SYN flooding on port 80. Sending cookies.

后不再出现:kernel: printk: xxx messages suppressed. 的提示。访问网站明显感觉速度提升。

点击查看更多内容
7人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
2万
获赞与收藏
3370

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消