GNU/Linux >> Linux Esercitazione >  >> Linux

Perché è necessario eliminare ifconfig per ip

Per molto tempo, il ifconfig comando era il metodo predefinito per la configurazione di un'interfaccia di rete. Ha servito bene gli utenti Linux, ma il networking è complesso e i comandi per configurarlo devono essere robusti. Il ip command è il nuovo comando di rete predefinito per i sistemi moderni e in questo articolo ti mostrerò come usarlo.

Il ip comando è organizzato funzionalmente su due livelli dello stack di rete OSI:Livello 2 (livello di collegamento dati) e Livello 3 (livello di rete o IP). Fa tutto il lavoro nei vecchi net-tools pacchetto.

Installazione IP

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Il ip comando è incluso in iproute2util pacchetto. Probabilmente è già incluso nella tua distribuzione Linux. In caso contrario, puoi installarlo dal repository del software della tua distribuzione.

Confronto tra ipconfig e utilizzo ip

Il ip e ipconfic i comandi possono essere usati per configurare un'interfaccia di rete, ma fanno le cose in modo diverso. Confronterò come svolgere attività comuni con il vecchio (ipconfig ) e nuovo (ip ) comandi.

Visualizza interfaccia di rete e indirizzo IP

Se vuoi vedere l'indirizzo IP di un host o visualizzare le informazioni sull'interfaccia di rete, il vecchio ifconfig comando, senza argomenti, fornisce un buon riepilogo:

$ 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

Il nuovo ip comando fornisce risultati simili, ma il comando è ip address show o semplicemente ip a in breve:

$ 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

Aggiungi indirizzo IP

Per aggiungere un indirizzo IP a un'interfaccia con ifconfig , il comando è:

$ ifconfig eth0 add 192.9.203.21

Il comando è simile per ip :

$ ip address add 192.9.203.21 dev eth0

Sottocomandi in ip può essere abbreviato, quindi questo comando è ugualmente valido:

$ ip addr add 192.9.203.21 dev eth0

Puoi renderlo ancora più breve:

$ ip a add 192.9.203.21 dev eth0

Rimuovi un indirizzo IP

L'inverso dell'aggiunta di un indirizzo IP è rimuoverne uno.

Con ifconfig , la sintassi è:

$ ifconfig eth0 del 192.9.203.21

Il ip la sintassi del comando è:

$ ip a del 192.9.203.21 dev eth0

Abilita o disabilita il multicast

Abilitazione (o disabilitazione) multicast su un'interfaccia con ifconfig accade con il multicast argomento:

# ifconfig eth0 multicast

Con ip , usa il set sottocomando con il dispositivo (dev ) e un booleano o attiva/disattiva multicast opzione:

# ip link set dev eth0 multicast on

Abilita o disabilita una rete

Ogni amministratore di sistema ha familiarità con il vecchio trucco "spegnilo e poi riaccendilo" per risolvere un problema. In termini di interfacce di rete, ciò si traduce nel portare una rete su o giù.

Il ifconfig il comando lo fa con up o down parole chiave:

# ifconfig eth0 up

Oppure potresti usare un comando dedicato:

# ifup eth0

Il ip il comando usa il set sottocomando per impostare l'interfaccia su un up o down stato:

# ip link set eth0 up

Abilita o disabilita l'Address Resolution Protocol (ARP)

Con ifconfig , abiliti ARP dichiarandolo:

# ifconfig eth0 arp

Con ip , imposta il arp proprietà come on o off :

# ip link set dev eth0 arp on

Pro e contro di ip e ipconfig

Il ip comando è più versatile e tecnicamente più efficiente di ifconfig perché utilizza Netlink socket anziché ioctl chiamate di sistema.

Il ip il comando può apparire più dettagliato e più complesso di ifconfig , ma questo è uno dei motivi per cui è più versatile. Una volta che inizi a usarlo, avrai un'idea della sua logica interna (ad esempio, usando set invece di un mix apparentemente arbitrario di dichiarazioni o impostazioni).

Infine, ifconfig è obsoleto (ad esempio, manca il pieno supporto per gli spazi dei nomi di rete) e ip è progettato per la rete moderna. Provalo, imparalo, usalo. Sarai felice di averlo fatto!


Linux
  1. Perché il mio bisogno di controllo mi ha fatto passare a Linux

  2. Cosa può fare per te un file dot di shell

  3. Hashing delle password e perché ne abbiamo bisogno

  4. 6 opzioni per tcpdump che devi conoscere

  5. Spazio riservato per il root su un filesystem:perché?

3 terminali Linux che devi provare

24 desktop Linux che devi provare

Esercitazione sui comandi ifconfig di Linux per principianti (7 esempi)

11 motivi per cui dovresti passare a Linux

Hai bisogno di Java? Quindi puoi installarlo Java su Linux

Perché dobbiamo essere root nel terminale per l'arresto e il riavvio?