又、子供にサーバの電源を落された。で、そこ時に気付いたのだが、/var/log/secureに
sshd[2001]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
とエラーが記録されている。過去のログを調べてみると、どうも3月末くらいから、実はリブートのたびに発生していたようだ。
ちょっと調べてみるとSea-Bird.orgさんのOpenSSL/ OpenSSH(SSH1) の設定に関するメモによると、
使用するボートが既に使用されていた場合
使用するポートが既に使用されていた場合、以下のエラーメッセージが表示されます。
error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
fatal: Cannot bind any address.
この対処として、使用済みのポートに対するプロセスを停止することにより解決しますが、該当のポートを誰が使用しているか判らないときは、下記のコマンドを実行することにより調べることができます。
# fuser -n tcp 22
22/tcp: 798
# ps -ef | grep 798
12:root 798 1 0 May21 ? 00:00:00 inetd
上記の場合、"inetd"ですので、inetd.conf を覗いて・・・。なんてことをして再起動すれば問題は解決です。
のくす牧場さんのOpenSSHによると
May 1 21:22:06 localhost sshd[2303]: Server listening on :: port 22.
May 1 21:22:06 localhost sshd[2303]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
というエラーがある時は、ipv6のポートをListenしようとしているのかも。
/etc/ssh/sshd_configに
ListenAddress 0.0.0.0
を加えてみよう。Fedora/Redhatだと、コメントアウトを解除する。
教えてgooにもこんなQAがあった。
Q*secureに以下のようなログが出力されてますが、
内容と原因が分かりません。
--------------------------------------------------
May 12 10:29:41 as30 sshd[2710]: Server listening on :: port 22.
May 12 10:29:41 as30 sshd[2710]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
--------------------------------------------------
気になりますので、よろしくお願いします。
A:こんばんは。
>Server listening on :: port 22.
>error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
上の2行をみると、IPv6用(::)を先につかんでいる(Bind)様に見えます。
というわけで、#2を正確に再回答すると、
もし、sshd_configファイルで
# ListenAddress 0.0.0.0 (IPv4用)
# ListenAddress :: (IPv6用)
と、両方コメントになっていたら、IPv4用だけを有効にしてみてください。
ListenAddress 0.0.0.0
# ListenAddress ::
というアドバイスです。
で、/etc/ssh/sshd_configを上記のとおり書き変えてみた。さてうまくいくかな?
------------さっそく追記-------------------
errorは無事消えたようだ。
Sea-Bird.org、のくす牧場さんどうもありがとうございました。
-----------080502追記----------------------
マイミクでもあり私のLinuxの師匠でもあるmatchyさんから「っつーかそもそも IPv6 使ってないなら、IPv6 自体を無効にしないと...」とご指摘を頂いて「どうやるの?」と答えてしまったものの、少しは自分で調べなくっちゃ、とログから見直してたら、どうも/etc/ssh/sshd_configを書き変えた副作用があったみたいで、元に戻した。詳細は後で書こう。
-----------080503追記----------------------
実はIPV6の部分をコメントアウトしたらdovecotが動かなくなってしまった。自分の環境がいったいどうなってるんだろう?という疑問を解いていかないといけないな~
後、ログを見直してたら(というか再起動画面を眺めてたら)新たな宿題を発見してしまった。これも後で書きます。
2 件のコメント:
っつーかそもそも IPv6 使ってないなら、IPv6 自体を無効にしないと...
どうやるの?
コメントを投稿