一个客户Centos Linux系统出现dz通信失败,
ssh登录到服务器后发现,服务器有双ip, 1.1.1.1 和 1.1.1.2
经询问得知原来1.1.1.1 废弃不用,更改为1.1.1.2,但是原来的系统管理员图省事,
只是增加了1.1.1.2的新ip,并未去掉老的ip,导致服务器对外ping和从服务器的主动动作都
被认为是从老的ip发出,估计外围交换机做了限制,导致失败
去掉旧ip,只保留新ip,问题解决
标签归档:linux
linux redhat centos 双网卡单网关或者双网关的配置
vim /etc/iproute2/rt_tables 增加
252 cnc
251 tel
在 /etc/rc.local 里面增加
ip route flush table tel
ip route add default via 网关1 dev eth1 src IP1 table tel
ip rule add from IP1 table tel
ip route flush table cnc
ip route add default via 网关2 dev eth0 src IP2 table cnc
ip rule add from IP2 table cnc
注意红色部分即可
写成shell脚本如下
#!/bin/bash
ip1=”1.1.1.2″
e1=”eth0″
gw1=”1.1.1.1″
ip2=”2.2.2.2″
e2=”eth1″
gw2=”2.2.2.1″
#################################################
### 上面的配置要改改
### 下面就不要动了
#################################################
rt=”/etc/iproute2/rt_tables”
echo “252 cnc ” >> $rt
echo “251 tel ” >> $rt
rclocal=”/etc/rc.local”
echo “ip route flush table tel” >> $rclocal
echo “ip route add default via $gw1 dev $e1 src $ip1 table tel” >> $rclocal
echo “ip rule add from $ip1 table tel” >> $rclocal
echo “ip route flush table cnc” >> $rclocal
echo “ip route add default via $gw2 dev $e2 src $ip2 table cnc” >> $rclocal
echo “ip rule add from $ip2 table cnc” >> $rclocal
点此下载
linux 设置多ip,采用范围方式
/etc/sysconfig/network-scripts/ifcfg-eth0-range0
IPADDR_START=起始IP(含ifcfg-eth0本身那个)
IPADDR_END=结束IP
CLONENUM_START=0
linux下邮件服务器配置的各个部件的关系
postfix 毫无疑问这个MTA (Mail Transfer Agent) 是用来做邮件传输的
maildrop 用来做本地的邮件投递投递工作,MDA (Mail delivery agent)
courier-authdaemon 用于认证 配置文件是 /etc/courier/authdaemonrc
courier-authlib 认证库支持
courier-authlib-mysql 支持mysql的认证库 配置文件 /etc/courier/authmysqlrc
saslauthd 用于 SMTP 认证,支持courier-authlib 配置文件 /etc/default/saslauthd
courier-pop courier-pop-ssl pop3 和 pop-ssl 的认证服务 配置文件 /etc/courier/pop3d
courier-imap courier-imap-ssl imap 和 imap-ssl 的 认证服务 配置文件 /etc/courier/imapd
需要启动的服务
/etc/init.d/postfix start
/etc/init.d/courier-authdaemon start
/etc/init.d/saslauthd start
/etc/init.d/courier-imap start
/etc/init.d/courier-pop start
测试方法
测试下Courier-Authlib是否能成功连接mysql
authtest -s login 邮件地址 或者 authtest -s login 邮件地址 密码
测试sasl 的smtp
testasaslauthd -s smtp -u xxxx -p xxxxx
ubuntu 下安装 postfix extmail 系统参考
http://www.mike.org.cn/articles/ubuntu-configure-postfix-mailserver/
linux ext3 删除文件恢复工具
http://www.cnitblog.com/201/archive/2011/06/10/74370.html
http://carlo17.home.xs4all.nl/howto/undelete_ext3.html
参考如上两篇文章
linux系统负载检查的思路
有时候客户会说服务器慢,综合来看就是负载变高了,一般情况下有几种可能
- 用户访问量确实增大
- 被攻击了
- 代码或者数据库更改造成索引丢失,或者代码未用到索引
- 硬件发热
首先通过 top 命令查看服务器中占用cpu比较重的进程,
如果发现是 mysql ,可以先在mysql > 命令行里面show full processlist; 查看是否有语句被lock,然后考虑
1)是否可以优化数据库索引
2) 是否可以找到相关php代码,
3)查找web服务器的日志,分析当前发生了什么,是否有恶意蜘蛛,或者采集,或者某些特征的访问,可以从web 配置里面屏蔽相应特征的访问,比如基于特定referer的访问,特定user-agent的访问
linux 查看某个端口的连接数
端口连接情况分析 netstat -n | grep ":80" | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 根据ip归类 netstat -n | grep ":80 " | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
centos 的vpn客户端配置 备忘
有颜色部分是需要根据情况修改的
1.安装包
yum -y install ppp
yum -y install pptp
2.配置文件
vi /etc/ppp/chap-secrets
——————————————
# Secrets for authentication using CHAP
# client server secret IP addresses
username myvpn “password” *
——————————————
vi /etc/ppp/peers/myvpn
——————————————
# written by pptpsetup
pty “pptp vpnserverip –nolaunchpppd”
lock
#noauth
nobsdcomp
nodeflate
name username
remotename myvpn
ipparam myvpn
require-mppe-128
refuse-pap
refuse-chap
refuse-eap
refuse-mschap
——————————————
3.复制命令
cp /usr/share/doc/ppp-2.4.4/scripts/pon /usr/sbin/
cp /usr/share/doc/ppp-2.4.4/scripts/poff /usr/sbin/
chmod +x /usr/sbin/pon /usr/sbin/poff
4.拨vpn
pon myvpn
5)ifconfig 看ppp0
pptp 如果 yum 安装不了,可以到 rpmfind.net 去查
http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=pptp&field[]=1&field[]=2
6.断开连接
poff myvpn
运维经验 Linux 自动屏蔽超标访问IP的 bash 脚本
############################################## #version="20100718" #author="phpsir" #author_email="phpsir@phpsir.com" #QQ 733905 ############################################## maxnum=100 runmin_max=120 #runmin_max is run iptables -F timeout banip_data_file="/root/banip_data.txt" ipopenfile="/root/openip.txt" ipfile="/tmp/80link.txt" nsfile="/tmp/netstat80.txt" myip=`/sbin/ifconfig eth0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .` if [ ! -f $ipopenfile ] then echo "init $ipopenfile" touch $ipopenfile fi if [ -f $banip_data_file ] then source $banip_data_file echo "last runtime=$runtime" else echo "init $banip_data_file" echo 'runtime='`date "+%s"` > $banip_data_file source $banip_data_file runmin_max=-1 fi echo "start shell" `date "+%Y-%m-%d %H:%M:%S"` runmin=$((`date "+%s"`-$runtime)) if [ $runmin -gt $runmin_max ] then echo $runmin "is bigger than " $runmin_max echo "clear ips" /sbin/iptables -F echo 'runtime='`date "+%s"` > $banip_data_file else echo $runmin "is lowwer than " $runmin_max fi netstat -an | grep "$myip:80" > $nsfile echo "Total Links = " `cat $nsfile | wc -l ` echo "Total Links ESTABLISHED = " `cat $nsfile | grep ESTABLISHED | wc -l ` echo "Total Links SYNC = " `cat $nsfile | grep SYN | wc -l ` cat $nsfile | sed "s/::ffff://g" | awk '{print $5}' | awk -F: '{print $1}' | sort|uniq -c|sort -rn | head -n 10 > $ipfile cat $ipfile | while read oneline do ip=`echo $oneline | cut -d " " -f 2` num=`echo $oneline | cut -d " " -f 1` str="$ip has linked $num " banme="yes" for allowip in `cat $ipopenfile` do echo $ip | grep $allowip > /dev/null if [ $? -eq 0 ] then banme="no" echo $allowip "banme = " $banme /sbin/iptables -D INPUT -p tcp -s $ip -d $myip --dport 80 -j REJECT > /dev/null 2>&1 continue fi done if [ $banme = "yes" ] then if [ $num -gt "$maxnum" ] then /sbin/iptables -L -n | grep "$ip" >/dev/null status=`echo $?` if [ $status -eq 1 ] then echo "deny $ip ,because $str " /sbin/iptables -A INPUT -p tcp -s $ip -d $myip --dport 80 -j REJECT echo "BAN " $ip " OK " #/sbin/iptables -L -n | grep "$ip" else echo > /dev/null #echo "$str alread reject" fi else echo > /dev/null #echo "$str $ip ok ,less $maxnum " fi fi done echo "stop shell" `date "+%Y-%m-%d %H:%M:%S"`