如何在 Linux 命令行中查找 IP 地址

系统教程10个月前发布 Piliyouxia
3 0 0

如何在 Linux 命令行中查找 IP 地址

几年前,ifconfig 是 Linux 中最受欢迎的查询本机 IP 地址的方法。但是现如今 ifconfig 命令已经被启用了。在某些 Linux 发行版上已经不用了:

command

那么,除此以外还有什么别的方式来查询 IP 地址呢?今天我们就来了解一下这个问题。

在 Linux 命令行中查找 IP 地址

现在,可以使用 ip 命令来查询 IP 地址。ip 命令是通用的,可以用于网络相关的其他一些事情。

不过,要显示 IP 地址,可以使用 ip addrip a 或者 ip address,如下所示命令:

ip

输出如下:​

1: lo: 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: wlp58s0: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 9c:b6:d0:d0:fc:b5 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.20/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp58s0
valid_lft 5962sec preferred_lft 5962sec
inet6 fe80::bf14:21e3:4223:e5e4/64 scope link noprefixroute
valid_lft forever preferred_lft forever

在上面的输出中,你可以忽略第一个名为lo(loopback)的输出,除此以外,可以看到 IP 地址显示为192.168.1.20。它后面的24是子网掩码。

如何在 Linux 命令行中查找 IP 地址

如上所示,可以使用 ip 命令获取主机的 IP 地址。除此以外,还可以通过 bash 脚本获取 IP 地址。

获取 IP 地址的其他方法

除了使用 ip 命令以外,还有其他的几个方法来获取 IP 地址。

使用 hostname 命令查看IP地址

hostname 命令通常用于显示系统的主机名,也可以用于显示主机的IP地址:

hostname

上述命令会显示主机的 IP 地址:​

$ hostname -I192.168.0.106

使用 nmcli 工具显示 IP 地址

大多数 Linux 发行版都有一个 Network Manager 的工具,该工具有一个名为 nmcli 的命令行界面,可以使用此 nmcli 工具来查看网络配置。比如可以使用如下命令查看 IP 地址:

nmcli

那么,ifconfig 呢?

实际上,我们仍然可以使用 ifconfig 命令。如果系统中不存在这个命令,我们可以手动安装,它存在于网络工具包中。

在基于 Ubuntu 的 Linux 中,可以使用如下命令安装网络工具:

sudo

安装完成后,就可以使用 ifconfig 命令来查询 IP 地址了:

ifconfig

输出如下:​

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 14855 bytes 3027297 (3.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14855 bytes 3027297 (3.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp58s0: flags=4163 mtu 1500
inet 192.168.0.106 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::bf14:21e3:4223:e5e4 prefixlen 64 scopeid 0x20
ether 9c:b6:d0:d0:fc:b5 txqueuelen 1000 (Ethernet)
RX packets 88413 bytes 61851930 (61.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 56505 bytes 11409219 (11.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

不过,因为 ifconfig 命令已经被弃用,所以我们还是不鼓励使用网络工具,建议使用 ip 命令。

查询公网IP地址

上面我们介绍的都是查询本地内网IP地址的方法,也就是局域网的 IP 地址。

内网 IP 地址是局限在局域网中的地址,用于与局域网中的其他设备进行通信。局域网之外的其他设备无法通过这个 IP 地址找到你。我们所说的公网地址一般是指路由器的IP地址,路由器通过内网 IP 与你的设备通信。

那么,如何获取公网IP地址呢?这就需要借助于第三方工具了。

比如,可以使用 OpenDNS 的 host 命令来获取公网 IP 地址。

host myip.opendns.com resolver1.opendns.com

其输出如下:​

Using domain server:
Name: resolver1.opendns.com
Address: 208.67.222.222#53
Aliases:
myip.opendns.com has address 202.91.87.117
Host myip.opendns.com not found: 3(NXDOMAIN)
Host myip.opendns.com not found: 3(NXDOMAIN)

以上就是本次分享全部内容。

© 版权声明

相关文章