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!