Putty:Network error和sshd无法启动

这个问题,纠结了我三天。事情是这样的,上星期一个晚上,我发现主机内存使用为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  #这样错误信息[标准错误]就被丢到太平洋去了。

我的感言:

  1. 我之前是有查看日志的,可惜我没有看懂,根本不会联想到null上去。傻就傻在没有复制错误,然后进行搜索,关于这个的资料还是有一些的。我只是纠结在putty所显示的错误上,搜索的关键词也没对也没换过。
  2. Brust的客服技术其实也很一般,不要过度指望他们都能解决好服务器的问题,特别只是一些技术性的问题。
  3. 感谢Kevin125,他也花了不少时间帮我思考这个问题的解决办法。
  4. 经过了这个问题,我真正有了要学习Linux的想法。虽然现在也在学,但我想更系统更广泛更深入。

加入对话

4条评论

留下评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据