显示 ssh/tcp: bind: Address already in use

consol 上会一直出现 ssh/tcp: bind: Address already in use 的讯息,而且在 log 文件中也会一直出现这个讯息,这是怎么一回事?

先来看看几个设定档,先看看 /etc/rc.conf /etc/default/rc.conf 这两个档,看看是否有:

sshd_enable="YES" (或者 sshd2_enable="YES" ,视你安装的 sshd 而定) 以及 inetd_enable="YES"

如果两行都有,不管是不是在同一档中或分置于两个档中,都代表着你把 sshd inetd 这两个 deamon 都打开了。 这个时候请你查看一下 /etc/inetd.conf 这个档,是否有下列两行:

ssh stream tcp nowait root /usr/local/sbin/sshd sshd -i -4 ssh stream tcp6 nowait root /usr/local/sbin/sshd sshd -i -6

有的话,请把这两个前面加上「#」字号,代表将这两行标注起来,不去启动它!不然的话,你的 FreeBSD 会启动两次 sshd

#ssh stream tcp nowait root /usr/local/sbin/sshd sshd -i -4 #ssh stream tcp6 nowait root /usr/local/sbin/sshd sshd -i -6

然后找出 inetd process id

ps ax | grep inetd

然后下:

kill -HUP 'inetd process id'

重新启动 inetd。或者更快的方法是只要下这样的指令:

kill -HUP `cat /var/run/inetd.pid`

但是请注意一下,这里的单引号是反斜的「`」,也就是键盘的左上角,和「~」这个符号在一起的那个反斜单引号,代表的是把 cat /var/run/inetd.pid 执行的结果直接当成 kill -HUP 的自变量。因为 FreeBSD 会把 inetd 目前的 process id 存在这个档中。

这里再提示一下两件快速从档案中查出你想要讯息的方法。第一种是常用的 grep 指令,如果你想从 /etc/inetd.conf 下找出有 ssh 这个字的地方,可以下:

grep ssh /etc/inetd.conf

这样就会只显示这两行有 ssh 的资料。

第二种方法则是善用 more 这个指令,当你下 more /etc/inetd.conf 时,在屏幕的最后一行会出现目前光标在档案的什么位置,这时你可以直接打 /ssh 这样的字样,more 就会把光标移到第一次出现的地方,然后,之后你只要键入斜线「/」,就会跳到下一个出现 ssh 的地方。这种在文章中找关键词的方法同时适用于 vi 上。

对了,最好顺便提一下,离开 more 的方法是按 q」键!:P

PS: 细心的兄弟也会发现。LINUX上面通常出现这种情况是比较多的。因为LINUX上面安装好后就会自己启动xinted服务。。然后rc.d里面又启动了 SSHD服务。xinetd里面的服务相信我也不用介绍了。。所以,就启动了两次。也会出现上面的情况!所以,一般还是把XINETD里面的SSHD服务 前面加个#号。启动时候不启动SSHD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值