Come trovare l'indirizzo IP delle interfacce di rete su un server Linux da riga di comando: ifconfig e ip addr
Per anni su Linux abbiamo utilizzando da terminare il comando ifconfig (equivalente di ipconfig in Windows) per ottenere la lista delle interfacce disponibile sulla nostra macchina Linux, e l'IP assegnato ad ogni interfaccia.
Nell'esempio sottostante, abbiamo lanciato il comando ifconfig, e, come possiamo vedere, la nostra macchina dispone di 2 interfacce di rete em1 e em2, in aggiunta a quella di loopback sempre presente.
La scheda em1 è collegata alla WAN, quindi esce su internet, ed ha come IP publico: 77.71.231.143
La scheda em2 è collegata alla LAN, cioè alla rete locale, ed ha come IP: 192.168.1.12
# ifconfig
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 77.71.231.143 netmask 255.255.255.240 broadcast 77.71.231.149
inet6 fe80::1618:77ff:fe5a:b1ef prefixlen 64 scopeid 0x20<link>
ether 14:18:77:5a:b1:ef txqueuelen 1000 (Ethernet)
RX packets 58692763 bytes 13740951759 (12.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 25651262 bytes 5226946328 (4.8 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 18
em2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::1618:77ff:fe5a:b1f0 prefixlen 64 scopeid 0x20<link>
ether 14:18:77:5a:b1:f0 txqueuelen 1000 (Ethernet)
RX packets 21649749 bytes 4732029011 (4.4 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 23368408 bytes 14182662669 (13.2 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19
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 1 (Local Loopback)
RX packets 19201949 bytes 964035594 (919.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19201949 bytes 964035594 (919.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Se ti interessa conoscere l'IP di una specifica interfaccia, ad esempio la em1, è sufficiente far seguire al comando ifconfig il nomer dell'interfaccia
# ifconfig em1
Tuttavia il comando ifconfig è ormai deprecato e potrebbe non essere più disponibile.
Se, richiamandolo, ottenete un "command not found", dovete utilizzare un comando alternativo: "ip addr", o semplicemente "ip a"
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 14:18:77:5a:b1:ef brd ff:ff:ff:ff:ff:ff
inet 77.71.231.143/28 brd 77.81.238.239 scope global em1
valid_lft forever preferred_lft forever
inet6 fe80::1618:77ff:fe5a:b1ef/64 scope link
valid_lft forever preferred_lft forever
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 14:18:77:5a:b1:f0 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.12/24 brd 192.168.1.255 scope global em2
valid_lft forever preferred_lft forever
inet6 fe80::1618:77ff:fe5a:b1f0/64 scope link
valid_lft forever preferred_lft forever
Per la scheda em1, l'IP lo vediamo dove è indicato "inet 77.71.231.143/28": l'IP è indicato prima della slash. il 28 è subnet mask
Per la scheda em2, è indicato "inet 192.168.1.12/24": l'IP è indicato prima della slash. il 24 è subnet mask
Per visualizzare una specifica interfaccia, per esempio em1, puoi usare uno tra questi possibili comandi
# ip a show em1
# ip a list em1
# ip a show dev em1
Adesso sai come visualizzare l'indirizzo IP del tuo server linux.
Se ipconfig non fosse più installato sulla tua distribuzioni linux puoi comunque ancora utilizzarlo, installando il pacchetto net-tools tramite il gestore di pacchetti del tuo sistema, ad esempio YUM.
# yum install net-tools
Tuttavia, l'utilizzo del pacchetto net-tools è deprecato, quindi è preferibile usare il comando ip addr