LinuxでIPv6アドレスを確認・設定する方法|ip -6 addrとnmcliの設定手順


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips > LinuxでIPv6アドレスを確認・設定する方法|ip -6 addrとnmcliの設定手順
「サーバーにIPv6アドレスが割り当てられているか確認したい」
「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依存の設定がないか確認すること


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

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 ループバックアドレス(自分自身への通信)
fe80:: で始まるアドレス:リンクローカルアドレスです。IPv6が有効なインターフェースに自動で割り当てられます。同じネットワーク内のホスト間でのみ通信可能です
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

リンクローカルアドレス(fe80::)に ping する場合は、%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_configAddressFamily inet6ListenAddress :: が設定されている場合、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

sysctl よりも nmcli の方がインターフェースごとに制御できるため、RHEL 7以降では nmcli を推奨します。

トラブルシュート

「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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。