「IPv6を無効化したいけど、どの設定ファイルを変更すればいいのかわからない」
最近のLinuxディストリビューションでは、インストール時にIPv6が自動的に有効になっています。しかし、社内ネットワークやレンタルサーバーではIPv6を使わない環境も多く、確認や無効化の手順を知っておく必要があります。
この記事では、LinuxでIPv6アドレスを確認する方法から、IPv6の無効化・有効化、nmcliでの設定方法、トラブル対処まで解説します。
【この記事でわかること】
・ip -6 addr コマンドでIPv6アドレスを確認できる(ifconfigは非推奨)
・IPv6を恒久的に無効化するには sysctl.conf に net.ipv6.conf.all.disable_ipv6=1 を追記する
・RHEL 7以降は nmcli con modify で IPv6を制御するのが標準的な方法
・無効化前に/etc/hosts等でIPv6依存の設定がないか確認すること
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
IPv6アドレスを確認するコマンド
1. ip -6 addr でIPv6アドレスを確認する
現在のIPv6アドレスを確認するにはip -6 addr を使います。# IPv6アドレスのみを表示 ip -6 addr # 特定のインターフェースだけ表示(例: eth0) ip -6 addr show eth0
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 inet6 2001:db8::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe12:3456/64 scope link valid_lft forever preferred_lft forever
2. 出力の読み方(scope の意味)
IPv6アドレスにはscope があり、アドレスの用途を示しています。| scope | アドレスの例 | 意味 |
|---|---|---|
| global | 2001:db8::1 | インターネットと通信できるグローバルアドレス |
| link | fe80::xxxx | 同一ネットワーク内でのみ通信できるリンクローカルアドレス |
| host | ::1 | ループバックアドレス(自分自身への通信) |
・2001: や 2400: で始まるアドレス:グローバルユニキャストアドレスです。プロバイダやネットワーク管理者から割り当てられ、インターネットとの通信に使用します
・::1:IPv4の127.0.0.1に相当するループバックアドレスです
3. ifconfigで確認する方法(非推奨)
古い環境ではifconfig でもIPv6を確認できます。# ifconfigでIPv6を確認(非推奨) ifconfig eth0
ifconfig はRHEL 7以降で非推奨となっています。ip コマンドを使ってください。IPv6の疎通確認(ping6 / ping -6)
IPv6で通信できるか確認するにはping6 または ping -6 を使います。# IPv6で疎通確認(3回で停止) ping6 -c 3 ::1 # ping -6 でも同じ ping -6 -c 3 ::1 # リンクローカルアドレスへの疎通確認(インターフェース指定が必要) ping6 -c 3 fe80::a00:27ff:fe12:3456%eth0
%eth0 のようにインターフェース名の指定が必要です。これはリンクローカルアドレスが複数のインターフェースに存在する可能性があるためです。IPv6を無効化する方法
社内ネットワークなどIPv6を使わない環境では、セキュリティやトラブル防止のためにIPv6を無効化することがあります。1. 一時的に無効化する(再起動で元に戻る)
# 全インターフェースでIPv6を無効化 sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 # 確認 ip -6 addr
ip -6 addr の出力が空になれば、IPv6が無効化されています。2. 恒久的に無効化する(再起動後も維持)
/etc/sysctl.conf に設定を追記します。# /etc/sysctl.conf に追記 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
# 設定を反映 sysctl -p # 確認 cat /proc/sys/net/ipv6/conf/all/disable_ipv6 # 1 と表示されればIPv6は無効
【重要】IPv6無効化の注意点
IPv6を無効化すると、以下の影響が出る場合があります。・SSHが起動しない:
/etc/ssh/sshd_config で AddressFamily inet6 や ListenAddress :: が設定されている場合、sshdの起動に失敗します。AddressFamily inet に変更してください・Postfixが起動しない:
inet_protocols = all の設定があると、IPv6無効化後にPostfixがエラーになります。inet_protocols = ipv4 に変更してください・ループバック ::1 が使えなくなる:localhostの名前解決で
::1 を使うアプリケーションが影響を受ける場合があります。/etc/hosts の ::1 行をコメントアウトして対処しますIPv6を有効化する方法
無効化したIPv6を再度有効にする場合です。# 一時的に有効化 sysctl -w net.ipv6.conf.all.disable_ipv6=0 sysctl -w net.ipv6.conf.default.disable_ipv6=0 # 恒久的に有効化(/etc/sysctl.conf の該当行を削除またはコメントアウト) vi /etc/sysctl.conf # net.ipv6.conf.all.disable_ipv6 = 1 ← この行を削除またはコメントアウト # net.ipv6.conf.default.disable_ipv6 = 1 ← この行を削除またはコメントアウト # 設定を反映 sysctl -p
nmcliでIPv6を設定する(RHEL 7以降)
RHEL 7 / CentOS 7以降では、nmcli でIPv6の設定を管理できます。1. 現在のIPv6設定を確認する
# 接続プロファイルのIPv6設定を確認 nmcli connection show eth0 | grep ipv6
2. IPv6を自動取得にする
# IPv6を自動設定(SLAAC)にする nmcli connection modify eth0 ipv6.method auto # 設定を反映 nmcli connection up eth0
3. IPv6を無効にする(nmcli)
# IPv6を無効にする nmcli connection modify eth0 ipv6.method disabled # 設定を反映 nmcli connection up eth0
トラブルシュート
「connect: Network is unreachable」が出る場合
IPv6でping6 を実行して「Network is unreachable」が出る場合、以下を確認してください。・IPv6が有効か:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6 で 0 であることを確認・デフォルトゲートウェイがあるか:
ip -6 route で default ルートが表示されるか確認・リンクローカルの場合:
%eth0 のインターフェース指定を忘れていないか確認IPv6アドレスが「tentative」と表示される場合
ip -6 addr の出力で tentative と表示されているアドレスは、DAD(Duplicate Address Detection:重複アドレス検出)の処理中です。通常は数秒で解消されますが、解消されない場合はネットワーク上にアドレスの重複がないか確認してください。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| IPv6アドレスを確認する | ip -6 addr |
| 特定インターフェースのIPv6を確認 | ip -6 addr show eth0 |
| IPv6で疎通確認する | ping6 -c 3 対象アドレス |
| IPv6を一時的に無効化する | sysctl -w net.ipv6.conf.all.disable_ipv6=1 |
| IPv6を恒久的に無効化する | /etc/sysctl.conf に設定を追記 → sysctl -p |
| IPv6が無効か確認する | cat /proc/sys/net/ipv6/conf/all/disable_ipv6 |
| nmcliでIPv6を無効にする | nmcli connection modify eth0 ipv6.method disabled |
| nmcliでIPv6を自動取得にする | nmcli connection modify eth0 ipv6.method auto |
ネットワーク設定を体系的に学びたいと思いませんか?
IPv6の確認や無効化は、Linuxのネットワーク管理のほんの一部です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
