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
– サブネット マスク。値 24 は 255.255.255.0 を意味します。サブネット マスクのバイナリ形式を書き留めると、サブネット マスクをよりよく理解できます。たとえば、16、24、および 26 の値は、最初の 16、24< を意味します。 または 26 ビットはそれぞれ 1 に設定され、残りは 0 に設定されます。これにより、ネットワーク アドレスと割り当て可能な IP アドレスの範囲が定義されます。GATEWAY
– ゲートウェイ IP。DNS1
、DNS2
– 使用する 2 つの DNS サーバー。ONBOOT
– 値が 「yes 」 の場合、コンピュータは起動時にこのプロファイルを読み取り、デバイスに割り当てようとすることを意味します。
Linux でのネットワーク接続の確認
次に、接続を確認してみましょう。
nmcli con show
デバイスの最後の列は、どの接続が「UP」で実行中であり、どの接続がそうでないかを理解するのに役立ちます。上の画像では、Myoffice1 と enp0s8 という 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
最初の接続プロファイルを作成できます。定義する必要がある最小限のプロパティは、type、ifname、および 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 を使用してください。簡単で助かります。