CentOS 7 は既にサポートが終了しています。このページは新規構築を推奨するものではなく、過去環境の保守、移行前調査、設定の読み解きに使うためのレガシー Linux 手順です。新規構築では、現在サポートされている Linux ディストリビューションを利用してください。
CentOS 7 で IPv6 を無効化する手順です。現在の設計として IPv6 を避けることは推奨しませんが、古い既存環境では、アプリケーションや監視、名前解決の都合で IPv6 を明示的に無効化していることがあります。
IPv6 を無効化する場合は、単に設定値を入れるのではなく、何が IPv6 に対応していないのか、無効化によって名前解決や待ち受けがどう変わるのかを確認します。
現在の IPv6 状態を確認する
ip -6 address
ss -tulpen | grep -i tcp6
sysctl net.ipv6.conf.all.disable_ipv6sysctl で無効化する
cat > /etc/sysctl.d/99-disable-ipv6.conf <<'EOF'
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
EOF
sysctl --systemNetworkManager 側を確認する
CentOS 7 では NetworkManager を使っている環境もあります。接続プロファイル側で IPv6 が自動になっている場合は、意図に合わせて確認します。
nmcli connection show
nmcli connection show "System eth0" | grep ipv6再起動後に確認する
rebootip -6 address
sysctl net.ipv6.conf.all.disable_ipv6
ss -tulpen | grep -i tcp6無効化時の注意点
- IPv6 を無効化すると、IPv6 前提の通信確認や監視ができなくなる。
- localhost の名前解決で IPv6 が関係する場合がある。
- アプリケーションが IPv6 待ち受けを前提にしていないか確認する。
- 新規環境では無効化ではなく、IPv6 を含めた設計を検討する。
IPv6 無効化が使われていた理由
古い CentOS 7 環境では、IPv6 を使わないネットワークであっても、OS やアプリケーションが IPv6 の待ち受けを作ることがあります。そのため、当時の運用では「使わないものは無効化する」という考え方で IPv6 を止めていたケースがあります。ただし、現在の目線では IPv6 を無効化するより、IPv6 を含めた状態を正しく扱う方が自然です。
- 監視やファイアウォールの対象を IPv4 に限定していた。
- アプリケーションが IPv6 待ち受けを作ることを嫌った。
- 名前解決で IPv6 アドレスが返ると問題が起きる環境だった。
- 運用者が IPv6 を管理対象に含めていなかった。
無効化より前に確認したいこと
IPv6 を止める前に、実際に何が困っているのかを確認します。単に tcp6 の表示があるだけで問題とは限りません。IPv6 の待ち受け、名前解決、到達性、アプリケーションの対応状況を分けて見ます。
getent ahosts server.example.com
ss -tulpen | grep -i tcp6
ip -6 route
cat /etc/gai.conf移行時の扱い
移行先では、IPv6 を無効化する前提をそのまま持ち込まない方が良いです。IPv6 を使うか使わないかを明示し、使わない場合でも、名前解決や待ち受けの挙動を理解した上で制御します。
まとめ
CentOS 7 の IPv6 無効化は、古い既存環境ではよくある単純化の手段でした。ただし現在の設計では、無効化そのものを目的にせず、名前解決、待ち受け、経路、アプリケーションのどこで問題が出ているのかを分けて確認することが重要です。
関連する記事
- CentOS 7 サーバー管理ガイド
CentOS 7 系の記事をまとめたハブページです。
参考書籍
書籍
CentOS 7 の systemd、NetworkManager、firewalld などを確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。

