ウェブサイト検索

Linux で「nmcli」を使用して IP ネットワークを構成する方法


Linux 管理者は、nmtui、GNOME グラフィカル ユーザー インターフェイスを備えたネットワーク マネージャー、そしてもちろんなど、ネットワーク接続の設定に使用できるさまざまなツールを持っています。 >nmcli (ネットワーク マネージャー コマンド ライン ツール)。

私は、多くの管理者がそのシンプルさのために nmtui を使用しているのを観察してきました。ただし、nmcli を使用すると、時間が節約され、信頼性が高まり、スクリプトへの統合が可能になり、Linux サーバー ネットワークのトラブルシューティングを行うための主要なツールとなり、その機能を迅速に復元できます。

nmcli に関する助けを求めるコメントが多数あることに気づき、この記事を書くことにしました。もちろん、マニュアルページを常に注意深く読む必要があります (マニュアルページはあなたにとって最も重要なリソースです)。私の目的は、あなたの時間を節約し、役立つヒントを提供することです。

nmcli コマンド構文

nmcli の構文は次のとおりです。

nmcli [OPTIONS] OBJECT {COMMAND | help}

OBJECT は、一般、ネットワーキング、無線、接続、デバイス、エージェントのいずれかです。

Linux でネットワーク デバイスのステータスを確認する

まずはデバイスをチェックするのが良いでしょう。

nmcli dev status

DEVICE      TYPE      STATE         CONNECTION 
docker0     bridge    connected     docker0    
virbr0      bridge    connected     virbr0     
enp0s3      ethernet  connected     enp0s3     
virbr0-nic  ethernet  disconnected  --         
lo          loopback  unmanaged     --         

最初の列にあるように、ネットワーク デバイスのリストがあります。 enp0s3 という名前のネットワーク カードが 1 枚あります。お使いのマシンでは、別の名前が表示される場合があります。

名前は、ネットワーク カードのタイプ (オンボードか PCI カードなど) によって異なります。最後の列には、デバイスがネットワークに接続するために使用する構成ファイルが表示されます。

私たちのデバイスがそれ自体では何もできないことは簡単に理解できます。ネットワーク接続を実現する方法を指示する構成ファイルを作成する必要があります。これらのファイルは「接続プロファイル」とも呼ばれ、/etc/sysconfig/network-scripts ディレクトリにあります。

cd /etc/sysconfig/network-scripts/
ls
サンプル出力
ifcfg-enp0s3  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo      ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown        ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep   ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth    ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib     ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp   ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6   ifdown-tunnel    ifup-isdn     ifup-TeamPort

ここでわかるように、名前が 'ifcfg-' で始まるファイル (インターフェイス設定) は接続プロファイルです。新しい接続を作成するか、nmcli または nmtui を使用して既存の接続を変更すると、結果は接続プロファイルとしてここに保存されます。

私のマシンからそのうちの 2 つを示します。1 つは dhcp 構成で、もう 1 つは静的 IP です。

cat ifcfg-static1
cat ifcfg-Myoffice1

一部のプロパティには異なる値があり、他のプロパティは必要がなければ存在しないことを認識しています。

最も重要なものを簡単に見てみましょう。

  • TYPE – ここにはイーサネットタイプがあります。 WiFi、チーム、絆なども可能です。
  • DEVICE – このプロファイルに関連付けられたネットワーク デバイスの名前。
  • BOOTPROTO – 値が “dhcp ” の場合、接続プロファイルは DHCP サーバーから動的 IP を取得します。値が 「none 」 の場合、動的 IP は使用されず、静的 IP が割り当てられる可能性があります。
  • IPADDR – プロファイルに割り当てる静的 IP です。
  • PREFIX – サブネット マスク。値 24255.255.255.0 を意味します。サブネット マスクのバイナリ形式を書き留めると、サブネット マスクをよりよく理解できます。たとえば、1624、および 26 の値は、最初の 1624< を意味します。 または 26 ビットはそれぞれ 1 に設定され、残りは 0 に設定されます。これにより、ネットワーク アドレスと割り当て可能な IP アドレスの範囲が定義されます。
  • GATEWAY – ゲートウェイ IP。
  • DNS1DNS2 – 使用する 2 つの DNS サーバー。
  • ONBOOT – 値が 「yes 」 の場合、コンピュータは起動時にこのプロファイルを読み取り、デバイスに割り当てようとすることを意味します。

Linux でのネットワーク接続の確認

次に、接続を確認してみましょう。

nmcli con show

デバイスの最後の列は、どの接続が「UP」で実行中であり、どの接続がそうでないかを理解するのに役立ちます。上の画像では、Myoffice1enp0s8 という 2 つのアクティブな接続が表示されます。

ヒント: アクティブな接続のみを表示したい場合は、次のように入力します。

nmcli con show -a

ヒント: nmcli を使用する場合は、Tab を押すオートコンプリートを使用できますが、使用することをお勧めします。コマンドの最小限の形式。

したがって、次のコマンドは同等です。

nmcli connection show
nmcli con show
nmcli c s

LinuxでIPアドレスを確認する

デバイスの IP アドレスを確認すると、次のようになります。

ip a

稼働中の接続プロファイル Myoffice1 に dhcp 構成があるため、デバイス enp0s3 が dhcp サーバーから 192.168.1.6 IP を取得したことがわかります。

static1 という名前の接続プロファイルを “up” にすると、デバイスは静的 IP 192.168.1.40 を、接続プロファイル。

nmcli con down Myoffice1 ; nmcli con up static1
nmcli con show

IP アドレスをもう一度見てみましょう。

ip a

最初の接続プロファイルを作成できます。定義する必要がある最小限のプロパティは、typeifname、および con-name です。

  • type – 接続のタイプ。
  • ifname – 接続に割り当てられたデバイス名。
  • con-name – 接続名。

Linux での新しいイーサネット接続の作成

Myhome1 という名前で新しいイーサネット接続を作成し、デバイス enp0s3 に割り当ててみましょう。

nmcli con add type ethernet con-name Myhome1 ifname enp0s3

その構成を確認します。

cat ifcfg-Myhome1

ご覧のとおり、静的 IP アドレスを与えていないため、BOOTPROTO=dhcp になっています。

ヒント: 「nmcli con mod」 コマンドを使用して接続を変更できます。ただし、dhcp 接続を変更して静的接続に変更する場合は、“ipv4.method ”“auto ” から “manual ” に変更することを忘れないでください。 。そうしないと、dhcp サーバーからの IP アドレスと静的 IP アドレスの 2 つの IP アドレスが必要になります。

static2 という名前の新しいイーサネット接続プロファイルを作成しましょう。このプロファイルは、静的 IP 192.168.1.50、サブネットを持つデバイス enp0s3 に割り当てられます。マスクは255.255.255.0=24、ゲートウェイは192.168.1.1です。

nmcli con add type ethernet con-name static2 ifname enp0s3 ip4 192.168.1.50/24 gw4 192.168.1.1

その構成を確認します。

cat ifcfg-static2

Linux で DNS サーバーを変更する

最後の接続プロファイルを変更し、2 つの DNS サーバーを追加しましょう。

nmcli con mod static2 ipv4.dns “8.8.8.8 8.8.4.4”

ヒント: ここで注意しなければならないことがあります。IP アドレスとゲートウェイのプロパティは、接続を追加するときと変更するときに異なる名前になります。接続を追加するときは “ip4 ”“gw4 ” を使用し、接続を変更するときは “ipv4 ”” を使用します。 gwv4 ”

Linux でイーサネット接続を開始する

次に、この接続プロファイルを表示しましょう。

nmcli con down static1 ; nmcli con up static2

ご覧のとおり、デバイス enp0s3 の IP アドレスは 192.168.1.50 になりました。

ip a

ヒント: 変更できるプロパティは多数あります。暗記していない場合は、「nmcli con show 」 と入力し、その後に接続名を入力すると役立ちます。

nmcli con show static2

小文字で書かれたこれらのプロパティはすべて変更できます。

例: 接続プロファイルを停止すると、NetworkManager は別の接続プロファイルを検索し、自動的に起動します。 (確認のための練習として残しておきます)。接続プロファイルを自動接続したくない場合は、次のようにします。

nmcli con mod static2 connection.autoconnect no

最後の演習は非常に役立ちます。接続プロファイルを作成しましたが、それを特定のユーザーが使用したいとします。ユーザーを分類するのは良いことです。

Linux でのユーザーへのイーサネット接続許可の設定

ユーザー stella のみがこのプロファイルを使用できるようにします。

nmcli con mod static2 connection.permissions stella

ヒント: 複数のユーザーに権限を与える場合は、間に空白を入れずに user:user1,user2 と入力する必要があります。

nmcli con mod static2 connection.permissions user:stella,john

別のユーザーとしてログインしている場合、この接続プロファイルを「起動」することはできません。

nmcli con show
nmcli con up static2
ls /etc/sysconfig/network-scripts

接続が存在することが確認された場合でも、 接続「static2」 が存在しないというエラー メッセージが表示されます。これは、現在のユーザーにはこの接続を開始する権限がないためです。

結論: ためらわずに nmcli を使用してください。簡単で助かります。