这个问题,纠结了我三天。事情是这样的,上星期一个晚上,我发现主机内存使用为100%,于是登陆 VPS 面板 reboot 了我的主机。然后,Putty 就出现了以下错误:
Network error: connection refused.
Sftp 登陆,显示同样的错误。
就这个错误提示我搜索了很多,群里问了很多人,都无法解决。做来做去都是这些步聚:
- 关闭防火墙 :
service iptables stop
- 查看sshd_config :
cat /etc/ssh/sshd_config
(其实我这东西我根本没改过)
- 查看监听端口是否有22,
netstat -tpnl
结果是没有的。
- 查看是否有sshd的进程:
top -c
结果也是没有的。
- 重启sshd :
service sshd start
显示是OK的
- 查看sshd的状态:
service sshd status
结果总是
openssh-deamon is stopped.
- 分别关闭各个进程,再启动sshd,以测试是否有冲突。
束手无策,只好找 Brust 的分销商购买技术支援,他很快地回答我这是系统问题,技术支援解决不了,让我到 Brust 的 Support form 里提交问题。我就去了。
在来回地问了我几个问题后,Brust 的技术客服回复了我这样的 Email :
看了这 Email 我表示心灰意冷,非常地郁闷,我觉得这么神奇的问题,就算我 reload 了系统,以后依然会发生。抱着最后一丝希望我找到了一个博客的博主,知道这个博客是因为我经常在这个博客找到我所搜索问题,而博主的资料里有QQ,旁边还写着“有偿提供技术服务”。
和该博主陈述完问题,他说20元,立刻成交。正常情况我都会要求远程的,但觉得这个问题的各种解决方法我都试过了,不抱什么希望,估计 reload 的可能性更大,于是直接给了帐密。
15分钟后,问题被解决,我付了款。
以下,是解决的办法(用对话显示):
杜小白 14:57:25
你是怎么解决问题的?
CENTOS主机 14:58:26
rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null
杜小白 14:58:35
一共就这三步?这个是什么问题呢?
CENTOS 主机 14:58:43
是的。/dev/null设备坏了,我重建了
杜小白May 14:58:57
null是干嘛的?
CENTOS 主机 14:59:01
空设备
杜小白May 14:59:12
作用是?启动?连接文件?
CENTOS 主机 14:59:27
无底洞,有进无出
echo “OK” >/dev/null
这样OK就打不出了
杜小白May 15:00:06
你是怎么查出来的?
CENTOS 主机 15:00:11
查看日志啊
cat /var/log/secure
于是乎,我也去查看日志了,看到问题的症状:
May 5 00:57:03 287839 sshd[1528]: fatal: daemon() failed: No such device
其后,我又发现 Brust 的 Centos 系统一直都存在这个问题,只要我 reboot 了,SSH 都会无法连接,都要修复 dev/null,这样的问题非常地奇怪,也不知算不算是一个 bug 。
于是乎,我就写了一个.sh,然后加入开机执行中去。以下为.sh 的内容:
输入命令
vim null.sh
然后I (INSERT)
#!/bin/bash
#Program:dev/null#
rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null
service sshd start
我也不知道这个脚本有没写错,纯靠个人理解写的,而且也没有再 reboot 过,也不知有没效,如果你发现有错的话,麻烦留言告诉我。
加入开机执行,
vi /etc/rc.local
I (INSERT)
后面加上一句
/root/null.sh
(这根据你文件所在地而写了)
至此,问题已解决。
关于dev/null是什么?
它是空设备,看作”黑洞”。它非常等价于一个只写文件,所有写入它的内容都会永远丢失.而尝试从它那儿读取内容则什么也读不到.然而/dev/null对命令行和脚本都非常的有用。
禁止标准输出
1 cat $filename >/dev/null
2 # 文件内容丢失,而不会输出到标准输出.
禁止标准错误
1 rm $badname 2>/dev/null #这样错误信息[标准错误]就被丢到太平洋去了。
我的感言:
- 我之前是有查看日志的,可惜我没有看懂,根本不会联想到null上去。傻就傻在没有复制错误,然后进行搜索,关于这个的资料还是有一些的。我只是纠结在putty所显示的错误上,搜索的关键词也没对也没换过。
- Brust的客服技术其实也很一般,不要过度指望他们都能解决好服务器的问题,特别只是一些技术性的问题。
- 感谢Kevin125,他也花了不少时间帮我思考这个问题的解决办法。
- 经过了这个问题,我真正有了要学习Linux的想法。虽然现在也在学,但我想更系统更广泛更深入。
好专业的话题。
@Feeng
用上VPS后,真正感觉自己专业了不少··· [兔13]
vps可以增强动手的能力。