星期二, 3月 13, 2007

FreeBSD SSH 連線障礙排除

本來只是發現 NAT 內部的電腦連上主機的速度越來越慢,後來竟然連收發信都需要一等再等、一拖再拖,今晚的狀況更是離譜了,用 PUTTY 執行 ssh 怎麼都派不上用場,連 WINSCP 都無法進入,連續『噹噹噹』的給它噹了一整晚,苦惱。原本以為是外頭的封包又來轟炸才導致這現象,先前幾天有白目的來測試 FTP 意圖入侵,一直沒給她得逞,不過連到系統的速度倒是因此而產生的 lag 浪費了不少等候的時間,今晚的 log 說不是這現象造成的,不過一直連不上卻是不爭的事實,/var/log/messages 的紀錄裡這樣寫著:

...信也收不了...

Mar 13 00:19:39 redbsd qpopper[57028]: (null) at 192.168.1.168 (192.168.1.168): -ERR POP EOF or I/O Error
Mar 13 00:20:42 redbsd qpopper[57030]: (null) at 192.168.1.168 (192.168.1.168): -ERR POP EOF or I/O Error
Mar 13 00:21:43 redbsd qpopper[57047]: (null) at 192.168.1.168 (192.168.1.168): -ERR POP EOF or I/O Error

....接續... ssh 連不上...

Mar 12 23:04:25 redbsd sshd[56443]: fatal: Timeout before authentication for 192.168.1.168
Mar 12 23:07:50 redbsd sshd[56465]: fatal: Timeout before authentication for 192.168.1.168
Mar 12 23:09:38 redbsd sshd[56468]: fatal: Timeout before authentication for 192.168.1.168
Mar 12 23:12:53 redbsd sshd[56489]: fatal: Timeout before authentication for 192.168.1.168
Mar 12 23:15:15 redbsd sshd[56507]: fatal: Timeout before authentication for 192.168.1.168

....持續... endless...

為了讓連線暢通,只好重新啟動 sshd。首先需要 degug 一下,下 sshd -d 指令作工:

# sshd -d
debug1: sshd version OpenSSH_3.8.1p1 FreeBSD-20060123
debug1: read PEM private key done: type DSA
debug1: private host key: #0 type 2 DSA
debug1: Bind to port 22 on ::.
debug1: Bind to port 22 on 0.0.0.0.
Bind to port 22 on 0.0.0.0 failed: Address already in use.
Cannot bind any address.

看來 sshd 原來還是正常的工作著,因為 inetd 還是正常的跑著,所以 port 22 還是被佔用的狀態。不曉得是哪裡給它出了狀況,那重新啟動就會恢復正常的狀態了吧,先關了 sshd 再重新開啟它。

# killall sshd
# /usr/sbin/sshd

果然效果馬上看得見,不但 NAT 內的電腦馬上可以連進去主機,連收發的速度都恢復了以前的效率。後來查了一下 google 大神才知道有更方便的指令:

# /etc/rc.d/sshd restart

這樣也派得上用場的,ㄏㄏ。還好沒瞎忙一場,真怕就這麼不明不白的 sshd 給掛了,那以後得蹲小桌子前面才能查看主機的狀態,這才真的是苦惱。

沒有留言: