GNU/Linux >> Linux の 問題 >  >> Linux

ipのifconfigを削除する必要がある理由

長い間、ifconfig コマンドは、ネットワークインターフェイスを構成するためのデフォルトの方法でした。 Linuxユーザーには十分に役立ちましたが、ネットワークは複雑であり、それを構成するコマンドは堅牢でなければなりません。 ip commandは、最新のシステムの新しいデフォルトのネットワークコマンドです。この記事では、その使用方法を説明します。

ip コマンドは、OSIネットワークスタックの2つのレイヤー(レイヤー2(データリンクレイヤー)とレイヤー3(ネットワークまたはIPレイヤー))で機能的に編成されています。古いnet-toolsのすべての作業を実行します パッケージ。

ipのインストール

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

ip コマンドはiproute2utilに含まれています パッケージ。おそらく、Linuxディストリビューションにはすでに含まれています。そうでない場合は、ディストリビューションのソフトウェアリポジトリからインストールできます。

ipconfigとipの使用法の比較

ip およびipconfic コマンドを使用してネットワークインターフェイスを構成できますが、動作が異なります。一般的なタスクの実行方法を古いもの(ipconfig)と比較します )および新しい(ip )コマンド。

ネットワークインターフェースとIPアドレスを表示

ホストのIPアドレスを確認したり、ネットワークインターフェース情報を表示したりする場合は、古いifconfig 引数のないコマンドは、適切な要約を提供します:

$ ifconfig 
                                                                                                
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500                                                                 
       ether bc:ee:7b:5e:7d:d8  txqueuelen 1000  (Ethernet)                                                       
       RX packets 0  bytes 0 (0.0 B)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 0  bytes 0 (0.0 B)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0
       inet6 ::1  prefixlen 128  scopeid 0x10<host>
       loop  txqueuelen 1000  (Local Loopback)
       RX packets 41  bytes 5551 (5.4 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 41  bytes 5551 (5.4 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 10.1.1.6  netmask 255.255.255.224  broadcast 10.1.1.31
       inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212  prefixlen 64  scopeid 0x0<global>
       inet6 fe80::8eb3:4bc0:7cbb:59e8  prefixlen 64  scopeid 0x20<link>
       ether 08:71:90:81:1e:b5  txqueuelen 1000  (Ethernet)
       RX packets 569459  bytes 779147444 (743.0 MiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 302882  bytes 38131213 (36.3 MiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

新しいip コマンドは同様の結果を提供しますが、コマンドはip address showです 、または単にip a 略して:

$ ip a 

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host  
      valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
   link/ether bc:ee:7b:5e:7d:d8 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
   link/ether 08:71:90:81:1e:b5 brd ff:ff:ff:ff:ff:ff
   inet 10.1.1.6/27 brd 10.1.1.31 scope global dynamic wlan0
      valid_lft 83490sec preferred_lft 83490sec
   inet6 fdb4:f58e:49f:4900:d46d:146b:b16:7212/64 scope global noprefixroute dynamic  
      valid_lft 6909sec preferred_lft 3309sec
   inet6 fe80::8eb3:4bc0:7cbb:59e8/64 scope link  
      valid_lft forever preferred_lft forever
IPアドレスを追加

ifconfigを使用してインターフェースにIPアドレスを追加するには 、コマンドは次のとおりです:

$ ifconfig eth0 add 192.9.203.21

コマンドはipと同様です :

$ ip address add 192.9.203.21 dev eth0

ipのサブコマンド 短縮できるため、このコマンドも同様に有効です:

$ ip addr add 192.9.203.21 dev eth0

さらに短くすることができます:

$ ip a add 192.9.203.21 dev eth0
IPアドレスを削除する

IPアドレスを追加するのとは逆に、IPアドレスを削除することです。

ifconfigを使用 、構文は次のとおりです。

$ ifconfig eth0 del 192.9.203.21

ip コマンド構文は次のとおりです:

$ ip a del 192.9.203.21 dev eth0
マルチキャストを有効または無効にする

ifconfigを使用したインターフェースでのマルチキャストの有効化(または無効化) multicastで発生します 引数:

# ifconfig eth0 multicast

ipを使用 、setを使用します デバイスのサブコマンド(dev )およびブール値またはトグルmulticast オプション:

# ip link set dev eth0 multicast on
ネットワークを有効または無効にする

すべてのシステム管理者は、問題を修正するための古い「オフにしてから再度オンにする」トリックに精通しています。ネットワークインターフェースに関しては、それはネットワークをアップまたはダウンさせることを意味します。

ifconfig コマンドはupでこれを行います またはdown キーワード:

# ifconfig eth0 up

または、専用のコマンドを使用することもできます:

# ifup eth0

ip コマンドはsetを使用します インターフェイスをupに設定するサブコマンド またはdown 状態:

# ip link set eth0 up

アドレス解決プロトコル(ARP)を有効または無効にします

ifconfigを使用 、ARPを有効にするには、次のように宣言します。

# ifconfig eth0 arp

ipを使用 、設定 arp onとしてのプロパティ またはoff

# ip link set dev eth0 arp on

ipとipconfigの長所と短所

ip コマンドは、ifconfigよりも用途が広く、技術的に効率的です。 Netlinkを使用しているため ioctlではなくソケット システムコール。

ip コマンドは、ifconfigよりも冗長で複雑に見える場合があります 、しかしそれはそれがより用途が広い理由の1つです。使い始めると、その内部ロジックの感触がわかります(たとえば、setを使用します)。 一見恣意的な宣言や設定の組み合わせではなく)

最終的に、ifconfig 古くなっており(たとえば、ネットワーク名前空間が完全にサポートされていない)、ip 最新のネットワーク用に設計されています。それを試して、それを学び、それを使用してください。よろしくお願いします!


Linux
  1. パスワードハッシュとその必要性

  2. 知っておく必要のあるtcpdumpの6つのオプション

  3. ファイルシステムのルート用に予約されたスペース–なぜですか?

  1. Scp用のシェルが必要ですか?

  2. `builtin`ビルトインが必要ですか?

  3. C ライブラリの man ページを書く必要はありますか?

  1. 制御が必要なためにLinuxに切り替えた理由

  2. シェルドットファイルでできること

  3. スクリプト ファイルの先頭に #!/bin/bash を配置する必要があるのはなぜですか?