很奇葩,服务器出现了问题,真是头疼,搭建服务器还可以,但是一旦出现问题,就不知所云。
怎么办,使用万能的百度吧,一路百度一路百度,可想而知,这个效率啊 ,蜗牛一样的效率。
今天服务器被挖矿了,CPU占用较高,哦哦... wnTKYg 占用
另外说明一下 wnTKYg 这个问题,就是 因为:
这样的病毒是直接远程连接redis,一般redis都是root安装的,连接redis也就掌握了root权限,它可以往你的定时任务里写内容。
中这样的病毒大多都是因为redis没有设置密码,存在着很大的安全漏洞,所以大家要设置redis密码,并且更改redis的端口。安装时最好别用root安装。(后续会更新redis设置密码,和连接java)
因此以后安装好redis以后,需要把redis密码设置好,以防这样的攻击。
查找服务器异常,简要的一个思路:
top 看运行状态
ps -ef 看看进程
kill -9 杀死进程
开机是否自动运行木马 cat /etc/rc.d/rc.local
定时任务清查 crontab -e
last 显示所有登录过服务器的人
那么如何排查错误啊:
1、top 查看服务器的运行

看看什么程序占用较高,然后着重找这个文件
使用ctrl+c退出
然后使用 ps -ef | grep 进程名字 找到进程号
使用 kill -9 进程号 杀死进程
2、netstat 使用这个命令查看服务器对外的接口,正在运行的程序有哪些?
netstat -ntl
netstat -ntlp
netstat -nto
3、查看开机运行的代码:
vim /etc/rc.d/rc.local

4、定时任务都在作甚么?
crontab -l 查看定时任务都有哪些执行的命令
crontab -e 这个是可以编辑定时任务这个文件,如果我们是排查错误,一定要把这里额外的任务删除。
5、开启防火墙 防护一些不必要的攻击,linux的防火墙这是一个很好的防护工具,请把一些不需要的端口关闭。
如何查看防火墙是否开关? service iptables status
chkconfig iptables on
iptables -L 查看现在防火墙都配置了什么。
6、看看开机启动是否已经添加
chkconfig --list
可以看到所有的服务列表
chkconfig --list iptables
上述命令只显示 iptables这项服务。
on 开启 off 关闭
chkconfig iptables on
chkconfig iptables off
chkconfig --add name:增加一项新的服务。但默认所有级别都关闭状态
chkconfig --add iptables
chkconfig [--level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止smb服务,则命令如下:
chkconfig --level 2345 iptables on
表示 2,3,4,5 级别为启动
chkconfig --level 2345 iptables off
表示2,3,4,5 级别为关闭
chkconfig --del name:删除服务
chkconfig --del iptables
表示删除smb的服务,当然,肯定是关闭了
附加介绍一下Linux系统的运行级的概念:
Linux中有多种运行级,常见的就是多用户的2,3,4,5 ,很多人知道5是运行X-Windows的级别,而0就是关机了。
Linux 系统默认运行级别,命令方式通常是3,图形方式通常是5, /etc/inittab里的initdefault就知道了
0 为停机,机器关闭。(千万不要把initdefault设置为0 )
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
6 为重启,运行init 6机器就会重启。(千万不要把initdefault设置为6 )
df -m 查看磁盘的使用情况
netstat -ntlp
netstat -nt
ps -ef | grep mysql
tracert
tracert 主机:查看从你自己到目标逐机到底经过了那些路径。如:
tracert www.baidu.com 然后等待。。。就会看到你经过的一个个路由节
点,一般大一点的路由器,如电信的主干路由,除了ip以外,都有英文标示的。
pathping
pathping 主机:类似tracert,但可以显示一些tracert不能显示出来的信
息。可以自己试试。
开机都运行哪些文件呢,目录在什么位置:
如果我们有一个 比如说 mysqld 那么这个服务应该放在 /etc/init.d/ 这个目录,并赋予可以执行的权限
就可以使用 service mysqld restart 这样的命令完成
/etc/rc.local
/etc/init.d
/etc/rc.sysinit
/etc/inittab
/etc/profile
/etc/rc.local
这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。