Linux 127.0.0.1无法ping通问题解决

来源:互联网 发布:数据库文件提取数据 编辑:程序博客网 时间:2024/06/09 14:27

现象:间歇性发生:mysql connect timeout


发生时ping 127.0.0.1 不通

内核参数优化


说明:本优化适合apache,nginx,squid多种等web应用,特殊的业务也可能需要略作调整。 
[root@c64 ~]# vi /etc/sysctl.conf 
#by sun in 20131001 
net.ipv4.tcp_fin_timeout = 2 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_keepalive_time =600 
net.ipv4.ip_local_port_range = 4000 65000 
net.ipv4.tcp_max_syn_backlog = 16384 
net.ipv4.tcp_max_tw_buckets = 36000 
net.ipv4.route.gc_timeout = 100 
net.ipv4.tcp_syn_retries = 1 
net.ipv4.tcp_synack_retries = 1 
net.core.somaxconn = 16384 
net.core.netdev_max_backlog = 16384 
net.ipv4.tcp_max_orphans = 16384 
#一下参数是对iptables防火墙的优化,防火墙不开会有提示,可以忽略不理。 
net.ipv4.ip_conntrack_max = 2500000 
net.ipv4.netfilter.ip_conntrack_max = 2500000 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120 
[root@localhost ~]# sysctl –p #使配置文件生效 

提示:由于CentOS6.X系统中的模块名不是ip_conntrack,而是nf_conntrack,所以在/etc/sysctl.conf优化时,需要把net.ipv4.netfilter.ip_conntrack_max 这种老的参数,改成net.netfilter.nf_conntrack_max这样才可以。 
即对防火墙的优化,在5.8上是 
net.ipv4.ip_conntrack_max = 25000000 
net.ipv4.netfilter.ip_conntrack_max = 25000000 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120 

在6.4上是 
net.nf_conntrack_max = 25000000 
net.netfilter.nf_conntrack_max = 25000000 
net.netfilter.nf_conntrack_tcp_timeout_established = 180 
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 

另外,在此优化过程中可能会有报错:


1、5.8版本上 
error: “net.ipv4.ip_conntrack_max”is an unknown key 
error: “net.ipv4.netfilter.ip_conntrack_max”is an unknown key 
error: “net.ipv4.netfilter.ip_conntrack_tcp_timeout_established”is an unknown key 
error: “net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait”is an unknown key 
error: “net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait”is an unknown key 
error: “net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait”is an unknown key 

这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack 
modprobe ip_conntrack 
echo “modprobe ip_conntrack”» /etc/rc.local 

2、6.4版本上 
error: “net.nf_conntrack_max”isan unknown key 
error: “net.netfilter.nf_conntrack_max”isan unknown key 
error: “net.netfilter.nf_conntrack_tcp_timeout_established”isan unknown key 
error: “net.netfilter.nf_conntrack_tcp_timeout_time_wait”isan unknown key 
error: “net.netfilter.nf_conntrack_tcp_timeout_close_wait”isan unknown key 
error: “net.netfilter.nf_conntrack_tcp_timeout_fin_wait”isan unknown key 

这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack 
modprobe nf_conntrack 
echo “modprobe nf_conntrack”» /etc/rc.local 

3、6.4版本上 
error: “net.bridge.bridge-nf-call-ip6tables”isan unknown key 
error: “net.bridge.bridge-nf-call-iptables”isan unknown key 
error: “net.bridge.bridge-nf-call-arptables”isan unknown key 

这个错误是由于自动处理可载入的模块bridge没有自动载入,解决办法是自动处理开载入的模块ip_conntrack 
modprobe bridge 
echo “modprobe bridge”» /etc/rc.local 


ip_conntrack表满导致的,iptables开启后会加载ip_conntrack模块,来跟踪包。默认情况下ip_conntrack_max大小为65536。 
问题解决方法: 
vi /etc/sysctl.conf 
#solve 127.0.0.1 unreatched 
net.nf_conntrack_max = 2500000 
net.netfilter.nf_conntrack_max = 2500000 
net.netfilter.nf_conntrack_tcp_timeout_established = 180 
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

阅读全文
1 0