ネットワーク管理者は、おそらく会社のインフラストラクチャのさまざまなサブネット上でさまざまなLinuxマシンを管理しているでしょう。
ネットワークトポロジが変更されると、IPアドレスを変更する必要がある場合があります 一部のマシンにはすでに実装されています。
また、DHCPから静的IPアドレスに切り替えた場合は、一部のコンピューターのIPアドレスも変更する必要があります。
幸いなことに、LinuxにはIPアドレスを変更する方法が複数あります。 、動的にするか静的にするか。
1台のマシンに複数のIPアドレスを設定する方法と、仮想ネットワークアダプターにIPアドレスを割り当てる方法を説明します。
前提条件
IPアドレスを変更する前に、必ず現在のIPアドレスを確認してください。
現在のIPアドレスを見つけるには 、アドレスの「a」オプションを指定して「ip」コマンドを使用できます。
$ ip a
スクリーンショットからわかるように、私のホストには2つのネットワークアダプターが装備されています:
- ループバックアドレス (またはローカルホスト)これは、自分のコンピューターのネットワーク接続をテストするために使用されます。
- 「enp0s3」インターフェース :メインネットワークアダプタとして機能するネットワークカードには、複数のIPアドレス(IPv4およびIPv6)が関連付けられており、その後にIPアドレスが割り当てられています。
現在の状況では、「192.168.178.31/24」で「192.168.178.1/24」ゲートウェイを介してコンピュータにアクセスできます。
ifconfigを使用してIPアドレスを変更する
最新のディストリビューションでは、「ifconfig」コマンドは完全に非推奨になっています。 「ip」コマンドを使用することをお勧めします。
ただし、「ifconfig」を使用してIPアドレスを変更できるはずです。
$ which ifconfig
/usr/sbin/ifconfig
LinuxでIPアドレスを変更するには、「ifconfig」コマンドに続けて、ネットワークインターフェイスの名前と、コンピューターで変更する新しいIPアドレスを使用します。
サブネットマスクを割り当てるには、「netmask」句の後にサブネットマスクを追加するか、CIDR表記を直接使用します。
$ ifconfig <interface_name> <ip_address> netmask <netmask_address>
注 :IPアドレスを変更するには、コンピューターの管理者である必要があります(Debian /Ubuntuのsudoグループの一部またはCentOS/RedHatのホイール)
たとえば、前のセクションで使用したIPアドレスを指定して、IPアドレスを(192.168.178.32/24に)変更する場合は、次のコマンドを実行します
$ ifconfig enp0s3 192.168.178.32/24
$ ifconfig enp0s3 192.168.178.32 netmask 255.255.255.0
IPアドレスが正しく変更されたことを確認するには、「ifconfig」コマンドに続けてネットワークアダプタの名前を実行します。
$ ifconfig <interface_name>
DHCPから静的へ
IPアドレスを手動で変更すると、LinuxはDHCPサーバーの使用から静的IPアドレスに変更することを自動的に認識します。
この情報は「ifconfig」コマンドで具体化されます。最初のスクリーンショットでは、私のIPアドレスに「 dynamic 」が割り当てられていることがわかります。 」パラメータはDHCPとも呼ばれます。
IPアドレスを手動で割り当てた後は、これはもう当てはまりません。
「ifconfig」を使用してIP設定を変更しても、変更が永続的になるわけではないことに注意してください。現在のセッションでのみ変更されます。
ifupdownを使用してIPアドレスを永続的に変更する
Linuxでは、ネットワークユーティリティを使用してIPアドレスを変更しても、再起動時にIP構成が保存されるわけではありません。
DebianとUbuntuのネットワークファイル
LinuxでIPアドレスを変更するには、「/ etc / network / interfaces」にネットワーク構成を追加するか、このファイルがまだ存在しない場合は作成する必要があります。
# Content of /etc/network/interfaces
iface eth0 inet static
address <ip_address>
netmask <network_mask>
gateway <gateway_ip>
たとえば、IPを「192.168.178.32」に変更し、サブネットマスクを「255.255.255.0」、デフォルトゲートウェイを「192.168.178.1」にするとします。
これらの変更を反映するようにIPアドレスを変更するには、インターフェイスファイルのコンテンツを編集し、次のコンテンツを追加します
$ vim /etc/network/interfaces
# Content of /etc/network/interfaces
iface eth0 inet static
address 192.168.178.32
netmask 255.255.255.0
gateway 192.168.178.1
変更を適用するには、ネットワークサービスを再起動する必要があります(ifupdownによって管理されます)
# For systemd hosts
$ sudo systemctl restart networking.service
# For pre-systemd hosts
sudo /etc/init.d/networking restart
ネットワークサービスを再起動した後、「ifconfig」または「ip」コマンドを実行すると、新しいIPが表示されるはずです。
$ ifconfig
$ ip address
CentOSおよびRedHat上のネットワークファイル
LinuxでIPアドレスを変更するには、「/ etc / sysconfig/network-scripts」ディレクトリにネットワーク構成を追加する必要があります。
「/etc/ sysconfig / network-scripts」で、変更するネットワークインターフェースを特定し、編集を開始します。
$ ls -l /etc/sysconfig/network-scripts
$ nano <file>
CentOSまたはRHELでIPを静的に設定するには、「 BOOTPROTO」を変更します。 」パラメータを「dhcp」から「static」に変更し、ネットマスクやデフォルトゲートウェイなどのネットワーク情報を追加します。
CentOS8やRHEL8などの最近のディストリビューションでは、変更を有効にするためにnmcliユーティリティを使用する必要があります。
ただし、ネットワークサービスをまだ使用している場合(CentOS7やRHEL7などのディストリビューションの場合)、変更を適用するためにネットワークサービスを再起動できます。
$ nmcli device reapply <interface_name> (on CentOS 8)
$ systemctl restart network.service (on CentOS 7/RHEL 7)
素晴らしい!
LinuxでIPアドレスを正常に変更しました。
必ず「ip」コマンドを再度実行して、変更が適用されたことを確認してください。
$ ip a
$ ifconfig
NetworkManagerを使用してIPアドレスを変更する
systemdを搭載した最新のディストリビューションでは、NetworkManagerに何度も出くわしたことがあるかもしれません。
ネットワークマネージャー 複数のユーティリティツールを公開するオールインワンツールです 接続を変更するには、デバイス または接続設定 (ワイヤレスでも)ホスト上で。
これらのユーティリティの1つは「nmcli」と呼ばれ、これをIPアドレスを変更するために使用します。
IPアドレスを変更するには、「デバイス」セクションで「nmcli」を使用し、ネットワークカードの「ipv4.address」を「変更」することを指定します。
$ nmcli device modify <interface_name> ipv4.address <ip_address>
「nmclidevicemodify」コマンドを使用すると、NetworkManagerは/etc / NetworkManager/system-connectionsフォルダに新しい接続ファイルを自動的に作成します。
変更を有効にするには、現在の接続設定にパラメータを「再適用」する必要があります。
$ nmcli device reapply <interface_name>
おめでとうございます。ネットワークマネージャを使用してIPを正常に変更しました!
ただし、nmcliツールを使用して設定を変更しても、複数回の再起動しても変更が永続的になることはありません。
NetworkManagerを使用してIPアドレスを永続的に変更する
変更を永続化するには、/ etc / NetworkManager/system-connectionsにある接続ファイルを編集する必要があります。
IPアドレスを変更するには、Network Manager設定ファイルを編集し、変更する行を特定して、それに応じてIPアドレスを設定します。
ファイルを保存し、「デバイスの再適用」オプションを指定して「nmcli」コマンドを使用して、デバイス構成を再適用してください。
$ nmcli device reapply
変更が有効になったので、「ifconfig」または「ip」コマンドを実行してIPアドレスを確認できます。
グラフィカルインターフェイスを使用してIPアドレスを変更する
場合によっては、グラフィカルウィンドウをナビゲートしてIPv4アドレスを変更したい場合があります。
最新のディストリビューションでは、ネットワークパラメータは、画面の右上隅にある「ネットワーク」アイコン(nm-appletと呼ばれます)で管理できます。
ネットワーク設定で、変更する接続の横にある「歯車」をクリックします。
次に、接続設定のIPv4セクションで、IP方式を手動に設定し、静的IPアドレスを割り当てることができます。
IPアドレスを変更するには、[適用]をクリックし、nmcliを使用してネットワークサービスを再起動します。
$ nmcli networking off
$ nmcli networking on
それでおしまい! LinuxでIPアドレスを変更したばかりです。
Linuxでのネットワーキングの管理方法
2020年1月の時点で、最近のディストリビューションでは、ディストリビューションがネットワーキングを構成するために使用するいくつかのツールを扱うことができます。
ほとんどの場合、NetworkManagerとifupdownがネットワークを管理しています。
$ sudo systemctl status NetworkManager
$ sudo systemctl status networking
一部のディストリビューションでは、「ifupdown」がまったくインストールされておらず、インターフェースはNetworkManagerによってのみ管理されている場合があります。
ただし、2つのサービスがコンピューターに存在する場合は、NetworkManagerがそれらの設定に干渉することなく、/ etc / network/interfacesファイルでインターフェースを宣言できます。
Network Managerでinterfacesファイルで宣言されたインターフェースを管理する場合は、NetworkManager.conf設定ファイルで「managed」パラメータをtrueに変更する必要があります。
結論
このチュートリアルでは、LinuxでIPアドレスを正常に変更する方法を学びました。NetworkManagerまたはifupdownユーティリティを使用します。
また、Linuxでネットワークを管理およびアーキテクチャ化する方法と、IPアドレスの競合を回避するためにネットワークを構成する方法についても学びました。
Linuxシステム管理に興味がある場合は、Webサイトに専用のセクションがありますので、ぜひチェックしてください!