よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

CentOS7 postfixが起動していなかった件

なんか気がついたらpostfixが止まっているサーバがありました。

目次

なぜか起動に失敗していたpostfix

該当サーバにログインしてみると、確かにpostfixは止まっていた。
いつから止まっていたのか分からないが、とりあえずsystemctlで起動してみたが、起動せずにエラーを吐く。

-- Unit postfix.service has begun starting up.
aliasesdb[13595]: /usr/sbin/postconf: fatal: parameter inet_interfaces: no local interface found for ::1
aliasesdb[13595]: newaliases: fatal: parameter inet_interfaces: no local interface found for ::1
postfix/sendmail[13597]: fatal: parameter inet_interfaces: no local interface found for ::1
postfix[13602]: fatal: parameter inet_interfaces: no local interface found for ::1
systemd[1]: postfix.service: control process exited, code=exited status=1
systemd[1]: Failed to start Postfix Mail Transport Agent.

なんだかとっても見覚えがあるエラーが…数ヶ月前の記憶が蘇る。

www.unknownengineer.net どうやらこのサーバはipv6を停止したままだったようだ。

解決策

以下2つの方法で解消しました。

①ipv6を有効にする。
# sysctl -w net.ipv6.conf.all.disable_ipv6=0
# sysctl -w net.ipv6.conf.default.disable_ipv6=0

ip aでipv6が有効になっていればオッケー。
…ではありませんでした。これだと再起動するとリセットされて再びipv6がオフってました。
恒久的に変更する場合は、sysctl.confに以下を追記して下さい。

# vim /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6=0
net.ipv6.conf.default.disable_ipv6=0

即時反映させたければ、sysctl -pを実行して下さい。

②vi /etc/hostsの編集

::1の行をコメントアウトです。

# vi /etc/hosts

#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

もう一度systemctl で起動したら問題なく起動しました。