「“localhost”の部分を“127.0.0.1″にすると何故か送れます!めでたい!」の話

ある日のある街で

Zabbixのアクションで障害通知のメールを送りつけようとしたが、下記のようなエラーが出てうまくいかない。
cannot connect to SMTP server [localhost]: *** Cannot connect to [[localhost]:25]: [111] Connection refused

設定内容
タイプ: メール
SMTPサーバ: localhost
SMTP helo: localhost

“localhost” の部分を “127.0.0.1” にすると何故か送れます!めでたい!

のような話がまた有ったのだが

めでたくねーよw
他のを設定する時も、いちいち迷ったり書き直したりすんの?
ということがまたあったので、ブログにも書いておく。

さて、この “localhost” だとメール送れないけど “127.0.0.1” なら送れるよ問題、原因はIPv6関連の場合がある。

問題の発生例
/etc/hostsがこんな(さくらのVPS(CentOS)のデフォルトのものを使用)

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

そしてちょっとぐぐってメールサーバーを設定し、mailコマンドでメールの送受信を確認済、とする。

これでなぜ駄目なのか?

  1. メール送りたいZabbixがIPv6(::1)の方を優先して見に行く
  2. メールサーバーはIPv4(127.0.0.1)の方しか見てない(デフォルト設定)
  3. 繋がらない\(^o^)/オワタ

なので、例えば・・・

  • メールサーバーにIPv6用の設定をする
  • IPv6を無効にする

などすると、”localhost” を設定しても正常に動作するようになる。


Leave a comment

Your comment

*