LinuxのIPアドレス設定は、使用中のネットワーク管理方式に合わせて行います。この記事では一時的なipコマンドと、NetworkManager・Netplan・systemd-networkdなどによる永続設定を区別して説明します。
変更前に管理方式・インターフェース・復旧手段を確認
まず ip -br address と ip route で現在のインターフェース名・アドレス・経路を記録します。NetworkManagerを使う環境では nmcli connection show で接続プロファイルも確認します。以下のeth0、my-connection、IP・ゲートウェイ・DNSは例です。実機の名前と管理者が指定した値へ置き換えてください。
固定IPはDHCP配布範囲や既存機器と重複しないよう管理します。ルーター側のDHCP予約が適する場合もあります。設定をバックアップし、SSH接続中ならコンソールなど別の復旧経路を確保してください。接続の再有効化やサービス再起動で通信が切れることがあります。同じインターフェースを複数の管理ツールで重複管理しないでください。
コマンドラインを使用したIPアドレスの手動設定
Linuxシステムでは、コマンドラインツールを使用してIPアドレスを手動で設定することが一般的です。この方法は、特にサーバーなどのGUIがない環境で便利です。最も一般的に使用されるコマンドはipとifconfigです。
`ifconfig`コマンド
かつて広く使われていたifconfigコマンドは、現在では多くのディストリビューションで非推奨とされていますが、依然として利用可能です。
# IPアドレスを設定する
sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 upこのコマンドは、インターフェースeth0にIPアドレス192.168.1.10を割り当て、サブネットマスクを255.255.255.0に設定しています。
`ip`コマンド
現在推奨されているのはipコマンドを使用した方法です。より直感的で強力なipコマンドは、IPアドレスの設定、ルートの追加、インターフェースの管理など、幅広いネットワーク関連タスクを実行することができます。
# IPアドレスを設定する
sudo ip addr add 192.168.1.10/24 dev eth0
# インターフェースをアクティブにする
sudo ip link set eth0 upここでは、eth0インターフェースに対して192.168.1.10/24(IPアドレス/サブネットマスク)を設定し、インターフェースをアクティブにしています。
ip addr addは現在のインターフェースへアドレスを追加する一時設定で、既存アドレスの置換や永続保存ではありません。再起動や管理サービスによる再設定で失われることがあります。ゲートウェイ・DNSも別途必要です。次に、ネットワークマネージャーを利用した方法や、さまざまな設定ファイルを編集することでIPアドレスを設定する方法についても解説していきます。
ネットワークマネージャーを利用したグラフィカルな設定方法
Linuxデスクトップ環境には、ネットワーク設定を簡単に行えるグラフィカルツールが含まれていることが多いです。特に、NetworkManagerは多くのLinuxディストリビューションで標準的に使用されているネットワーク管理ツールで、GUI(グラフィカルユーザーインターフェース)を介して、IPアドレスの設定やネットワーク接続の管理を行うことができます。
NetworkManagerのGUIを使用する
NetworkManagerのGUIは、デスクトップ環境のシステムトレイまたはネットワークマネージャーのアイコンからアクセスすることができます。以下は、NetworkManager GUIを使用してIPアドレスを設定する一般的な手順です。
- システムトレイのネットワークアイコンをクリックし、「ネットワーク設定」を選択します。
- 使用したいネットワーク接続を選択し、「設定」または「プロパティ」をクリックします。
- 「IPv4設定」タブまたは「IPv6設定」タブに移動します。
- 「手動」を選択し、IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバーなどの情報を入力します。
- 設定を保存し、変更を適用します。
利点と注意点
NetworkManagerのGUIを使用する利点は、コマンドラインを使わずに直感的にネットワーク設定が行えることです。これにより、特にGUI環境を好むユーザーや、コマンドラインに不慣れなユーザーにとってアクセスしやすくなります。
ただし、全ての設定やネットワークのトラブルシューティングをGUIから行うことはできない場合があるため、コマンドラインでの操作にも一定の理解が必要です。また、サーバーなどGUIが利用できない環境では、コマンドラインによる設定方法を学ぶ必要があります。
NetworkManagerは、Linuxシステムにおけるネットワーク管理を大幅に簡素化し、柔軟なネットワーク設定を可能にします。次のセクションでは、設定ファイルを直接編集して静的IPを設定する方法について詳しく解説します。
/etc/network/interfacesファイルを編集しての静的IP設定
Linuxで静的IPアドレスを設定する伝統的な方法の一つに、/etc/network/interfacesファイルを直接編集する方法があります。この方法は、主にDebian系のLinuxディストリビューションで用いられます。このファイルには、システム起動時に適用されるネットワークインターフェースの設定が含まれています。
静的IPの設定方法
静的IPアドレスを設定するには、まずテキストエディタを使用して/etc/network/interfacesファイルを開きます。以下は、eth0インターフェースに静的IPアドレスを設定する例です。
# /etc/network/interfacesファイルを開く
sudo nano /etc/network/interfacesファイル内に以下のようなセクションを追加または編集します。
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4ここでは、eth0インターフェースに対して以下の設定を行っています。
address: システムに割り当てる静的IPアドレスnetmask: ネットワークのサブネットマスクgateway: デフォルトゲートウェイのIPアドレスdns-nameservers: DNSサーバーのIPアドレス(ここではGoogleの公開DNSを使用)
設定が完了したら、ファイルを保存し、ネットワークインターフェースを再起動します。
# ネットワークインターフェースを再起動する
sudo /etc/init.d/networking restart利点と注意点
この方法の利点は、ネットワーク設定がファイル一つに集約されているため、設定のバックアップや復元が容易であることです。また、GUIやネットワークマネージャーを必要としないため、サーバーなどのヘッドレス(非GUI)環境でも利用できます。
注意点としては、誤った設定を行うとネットワーク接続が失われる可能性があるため、設定変更前には必ず既存の設定をバックアップしておくことが重要です。また、一部の最新のディストリビューションでは、このファイルの代わりにnetplanやNetworkManagerなどの他のツールが使用されることがありますので、ご使用のディストリビューションのドキュメントを参照してください。
nmcliコマンドを使用したネットワーク設定
nmcliは、Linuxのネットワークマネージャー(NetworkManager)をコマンドラインから操作するための強力なツールです。GUIがないサーバーやリモートシステムの管理に特に便利で、ネットワークの設定、監視、トラブルシューティングを行うことができます。
静的IPアドレスの設定
nmcliを使用して、ネットワークインターフェースに静的IPアドレスを設定する例を以下に示します。
- まず、使用可能なネットワーク接続をリストアップします。
nmcli con show - 次に、特定の接続に静的IPアドレスを設定します。以下のコマンドでは、「my-connection」に名前が付けられた接続に対して設定を行っています。
nmcli con mod my-connection ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8,8.8.4.4" ipv4.method manual - 最後に、変更を適用してネットワーク接続を再起動します。
nmcli con up "my-connection"
このコマンドでは、my-connectionという名前の接続に対して、IPアドレス192.168.1.100、サブネットマスク255.255.255.0(/24として表記)、デフォルトゲートウェイ192.168.1.1、そしてDNSサーバー8.8.8.8と8.8.4.4を設定しています。ipv4.methodをmanualに設定することで、静的IPアドレス設定を行っています。
利点と注意点
nmcliを使用する利点は、コマンドラインから迅速にネットワーク設定を行えることです。これにより、スクリプト化や自動化が容易になり、大規模なシステムや多数のデバイスを管理する際に特に役立ちます。
注意点としては、コマンドの構文やオプションを正確に理解していないと、意図しない設定を適用してしまう可能性があることです。また、nmcliコマンドはNetworkManagerがインストールされ管理しているネットワークインターフェースでのみ使用可能です。一部のサーバー向けLinuxディストリビューションでは、NetworkManagerが標準でインストールされていない場合があるため、その点も考慮する必要があります。
ネットワーク設定ファイルの理解と編集
Linuxシステムのネットワーク設定は、さまざまな設定ファイルによって制御されます。これらのファイルを理解し、適切に編集することで、システムのネットワーク接続性を細かく調整することが可能です。主要なネットワーク設定ファイルには、/etc/network/interfaces(Debian系ディストリビューション)、/etc/sysconfig/network-scripts/ifcfg-*(Red Hat系ディストリビューション)、そして/etc/netplan/*.yaml(最近のUbuntuバージョンで導入)があります。
/etc/network/interfaces
DebianおよびUbuntuの古いバージョンでは、/etc/network/interfacesファイルがネットワークインターフェースの設定に用いられます。このファイルを編集することで、インターフェースごとに静的IPアドレスやDHCPを使用するかどうかなど、ネットワーク設定をカスタマイズできます。
/etc/sysconfig/network-scripts/ifcfg-*
旧バージョンやifcfg形式を使用するRed Hat系環境では、/etc/sysconfig/network-scripts/ディレクトリ内のifcfg-に始まるファイルが各ネットワークインターフェースの設定を管理します。現在の環境ではNetworkManagerの接続プロファイルなど別形式の場合もあるため、ディストリビューション名だけでこのファイルを作成しないでください。旧形式では例えばifcfg-eth0はeth0インターフェースに関する設定を含みます。
/etc/netplan/*.yaml
Ubuntu 17.10以降では、netplanが導入され、ネットワーク設定は/etc/netplan/ディレクトリ内のYAML形式のファイルで行います。netplanは読みやすく、編集が簡単な形式で、複数のバックエンド(NetworkManagerやsystemd-networkdなど)をサポートしています。
# 例: /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]利点と注意点
ファイルを保存するだけでは通常、稼働中の設定へ反映されません。利用中の管理方式に合う反映操作が必要です。Netplanの例はnetworkdが対象で、既存のrendererを理由なく変更しないでください。Netplan環境では構文を確認し、復旧経路を確保したうえで sudo netplan try により試行できます。期限内に承認しなければ戻す仕組みですが、実際に元へ戻ったかも確認してください。また、バージョン管理システムを使用してこれらのファイルを管理することで、設定の変更履歴を追跡しやすくなります。
注意点としては、設定ファイルのフォーマットや構文を正確に理解していないと、ネットワーク接続に問題が発生する可能性があることです。また、特定の設定は特定のLinuxディストリビューションやバージョンでのみ利用可能なため、使用しているシステムのドキュメントを確認することが重要です。
systemd-networkdを用いたIPアドレス設定
systemd-networkdは、systemdシステムとサービスマネージャーの一部として機能する、ネットワーク設定と管理のためのデーモンです。このツールは主にサーバー環境や組み込みシステムでの使用を目的としており、ネットワークインターフェースの自動設定、静的IPアドレスの割り当て、DHCPやIPv6オートコンフィギュレーションなど、多様なネットワーク設定機能を提供します。
静的IPアドレスの設定
systemd-networkdを使用して静的IPアドレスを設定するには、/etc/systemd/network/ディレクトリ内にネットワーク設定ファイルを作成または編集します。以下は、eth0インターフェースに静的IPアドレスを割り当てる例です。
/etc/systemd/network/ディレクトリに10-static-eth0.networkという名前のファイルを作成します。sudo nano /etc/systemd/network/10-static-eth0.network- 以下の内容をファイルに追加します。
[Match] Name=eth0 [Network] Address=192.168.1.100/24 Gateway=192.168.1.1 DNS=8.8.8.8 DNS=8.8.4.4 systemd-networkdサービスを再起動して、変更を適用します。sudo systemctl restart systemd-networkd
この設定では、eth0インターフェースに対してIPアドレス192.168.1.100/24、デフォルトゲートウェイ192.168.1.1、DNSサーバーとして8.8.8.8と8.8.4.4を指定しています。
利点と注意点
systemd-networkdを使用する利点は、システム全体で一貫した設定と管理をsystemdの枠組み内で行えることです。これにより、ネットワーク設定の自動化や一元管理が容易になります。
注意点としては、systemd-networkdを使用するためには、システムにsystemdがインストールされている必要があります。また、systemd-networkdの設定ファイルの構文には特定のフォーマットが必要であるため、事前にドキュメントを確認しておくことが重要です。一部のLinuxディストリビューションではNetworkManagerがデフォルトのネットワーク管理ツールとして使用されているため、systemd-networkdに切り替える前に、既存のネットワーク管理システムとの競合を避けるための措置が必要になる場合があります。
DHCPと静的IPの違いと設定方法
ネットワーク内のデバイスにIPアドレスを割り当てる方法として、主に2つの方式があります:DHCP(Dynamic Host Configuration Protocol)による動的割り当てと、静的IPアドレスの手動割り当てです。適切な方法を選択することは、ネットワークのパフォーマンス、管理のしやすさ、セキュリティなどに影響を与えます。
DHCPによる動的IP割り当て
DHCPは、ネットワーク上のデバイスが自動的にIPアドレスを取得できるようにするプロトコルです。この方式では、DHCPサーバーがネットワーク内のデバイスに対して一時的なIPアドレスを割り当てます。デバイスがネットワークに接続するたびにIPアドレスが変更される可能性がありますが、管理者はIPアドレスの管理にかかる手間を省くことができます。
- 設定方法: 多くの場合、デバイスはデフォルトでDHCPを使用するように設定されています。LinuxシステムでDHCPを明示的に使用するように設定するには、ネットワーク設定ファイルやNetworkManager、
systemd-networkdの設定でDHCPを指定します。
静的IPアドレスの手動割り当て
静的IPアドレスは、ネットワーク内のデバイスに固定のIPアドレスを手動で割り当てる方法です。サーバー、プリンター、または特定の管理デバイスなど、常に同じIPアドレスを持つことが望ましいデバイスに適しています。
- 設定方法: 静的IPを設定するには、ネットワークインターフェースの設定ファイル(
/etc/network/interfaces、/etc/sysconfig/network-scripts/ifcfg-*)、またはnmcli、netplanなどのツールを使用して、IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバーの情報を手動で指定します。
利点と注意点
- DHCPの利点: ネットワークの設定と管理が簡単になります。デバイスをネットワークに追加または移動するたびにIPアドレスを手動で設定する必要がありません。
- 静的IPの利点: ネットワークリソースへの一貫したアクセスが可能です。特定のネットワークサービスの設定が容易になります。ただし固定IPにするだけでセキュリティが向上するわけではありません。
- 注意点: DHCPを使用する場合、IPアドレスの衝突を避けるために適切にDHCPサーバーを設定する必要があります。静的IPを使用する場合は、ネットワーク内でIPアドレスの重複がないように注意深く管理する必要があります。
IPアドレスのトラブルシューティング
LinuxシステムでIPアドレスの問題が発生した場合、効果的なトラブルシューティングが必要になります。IPアドレスに関連する一般的な問題には、ネットワークへの接続不良、IPアドレスの競合、設定ミスがあります。以下に、基本的なトラブルシューティング手順を示します。
接続の確認
- コマンドラインでのネットワークインターフェースの確認:
ip addr showこのコマンドは、システム上の全ネットワークインターフェースと割り当てられたIPアドレスを表示します。 - ピングテスト:
ping -c 4 google.com
名前解決とICMP応答の一部を確認します。ICMPが遮断される環境もあるため、応答がないだけで回線障害とは断定できません。IP・経路・DNSと目的のサービスへの接続を分けて確認します。
IPアドレス競合の解決
同じネットワーク上で2台のデバイスが同じIPアドレスを持つ場合、IPアドレス競合が発生します。これを解決するには、競合しているデバイスの一方または両方に新しいIPアドレスを割り当てます。
設定ミスの修正
静的IPアドレスを設定する際のタイプミスや不正な設定値は、接続問題の一般的な原因です。設定ファイルを再確認し、必要に応じて修正します。
まとめ
LinuxシステムでのIPアドレス設定には多様な方法が存在します。それぞれに利点と適用シナリオがあり、状況に応じて最適な方法を選択することが重要です。コマンドラインツール、ネットワークマネージャーGUI、設定ファイルの編集、systemd-networkdなど、さまざまなツールと方法を理解し、適切に利用することで、効率的で安定したネットワーク環境を構築できます。IPアドレスのトラブルシューティングは、しばしば試行錯誤を伴いますが、基本的な手順とコマンドをマスターすることで、多くの一般的な問題を迅速に解決できます。



コメント