ifconfig
或 ip addr show
。在Linux系统中,查看服务器IP地址是一项常见且重要的操作,无论是为了网络配置、故障排查还是日常运维管理,了解如何准确获取服务器的IP信息都是必不可少的技能,本文将详细介绍几种常用的方法来查看Linux服务器的IP地址,并通过表格形式对比这些方法的特点和适用场景。
一、使用ifconfig命令
ifconfig
是一个传统的网络配置工具,可以显示或配置网络接口的信息,包括IP地址、子网掩码等。
示例命令:
ifconfig
输出示例:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::a00:27ff:fe95:de2d prefixlen 64 scopeid 0x20<link> ether 08:00:27:95:de:2d txqueuelen 1000 (Ethernet) RX packets 17 bytes 2590 (2.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 111245 errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在这个例子中,inet
后面的192.168.1.100
即为该网络接口的IPv4地址。
二、使用ip命令
ip
命令是一个更现代的网络管理工具,几乎可以替代ifconfig
命令,它可以显示详细的网络接口信息,包括IP地址。
示例命令:
ip addr show
输出示例:
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 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:95:de:2d brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0 valid_lft 86399sec preferred_lft 86399sec
在这个例子中,inet
后面的192.168.1.100
即为该网络接口的IPv4地址。
三、使用hostname命令
hostname
命令用于显示或设置系统的主机名,同时也可以显示当前网络配置的IP地址。
示例命令:
hostname -I
输出示例:
192、168.1.100 192.168.1.101
这个命令会直接显示服务器的所有IP地址,如果有多个IP地址,则会以空格分隔显示。
四、使用ping命令
ping
命令不仅可以测试网络连接,还可以通过发送ICMP ECHO_REQUEST数据包来获取目标主机的IP地址。
示例命令:
ping -c 1 google.com
输出示例:
PING google.com (142.250.74.14): 56 data bytes 64 bytes from 142.250.74.14: icmp_seq=0 ttl=54 time=24.3 ms
在这个例子中,google.com (142.250.74.14)
中的142.250.74.14
即为目标主机的IP地址。
五、使用nmcli命令
nmcli
是NetworkManager的命令行工具,可用于管理和配置网络连接。
示例命令:
nmcli device show
输出示例:
GENERAL.DEVICE: ens33 GENERAL.TYPE: ethernet GENERAL.HWADDR: 08:00:27:95:de:2d GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: Wired connection 1 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1 IP4.ADDRESS[1]: 192.168.1.100/24 IP4.GATEWAY: 192.168.1.1 IP6.ADDRESS[1]: fe80::a00:27ff:fe95:de2d/64 IP6.GATEWAY:
在这个例子中,IP4.ADDRESS[1]
后面的192.168.1.100
即为该网络接口的IPv4地址。
六、使用ss命令
ss
命令可以用于展示当前系统中的网络连接信息。
示例命令:
ss -tnl
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTABSH 0 0 192.168.1.100:22 192.168.1.101:54321
在这个例子中,Local Address
字段中的192.168.1.100
即为该网络接口的IP地址。
不同命令在查看Linux服务器IP地址方面各有优劣,具体如下表所示:
命令 | 优点 | 缺点 | 适用场景 |
ifconfig | 简单易用,广泛兼容 | 已逐渐被ip命令取代 | 适用于所有Linux发行版,尤其是老旧系统 |
ip | 功能强大,支持更多网络配置选项 | 需要一定的学习成本 | 适用于现代Linux系统,推荐使用 |
hostname | 快速简洁,直接显示IP地址 | 只显示IP地址,不显示其他网络信息 | 适用于快速查看服务器IP地址 |
ping | 可验证网络连接状态,同时获取目标主机IP地址 | 需要指定目标域名或IP地址 | 适用于测试网络连通性和获取外部服务器IP地址 |
nmcli | NetworkManager用户友好,支持图形界面配置 | 依赖于NetworkManager服务 | 适用于使用NetworkManager管理网络的系统 |
ss | 提供详细的网络连接信息 | 需要一定的网络知识 | 适用于高级用户和需要详细网络连接信息的场景 |
netstat | 显示网络统计信息和路由表,功能全面 | 输出信息较为复杂 | 适用于需要详细网络统计和路由信息的高级用户 |
route | 显示和操作IP路由表,适用于路由配置检查 | 需要一定的网络知识 | 适用于需要查看和修改路由表的场景 |
nmap | 强大的网络扫描工具,可发现网络中的存活主机 | 需要安装nmap工具,可能涉及安全和隐私问题 | 适用于网络安全评估和扫描网络中的存活主机 |
ifconfig | 传统且广泛使用的命令,适用于大多数Linux系统 | ifconfig 已被标记为过时,未来可能会从系统中移除 | 适用于需要兼容性的场景,但建议逐渐过渡到ip 命令 |
arp | 显示ARP缓存表,有助于解决网络通信问题 | 仅显示ARP缓存信息,不显示其他网络信息 | 适用于解决局域网内的通信问题和排查ARP相关问题 |
cat /etc/resolv.conf | 查看DNS服务器配置,有助于理解域名解析流程 | 仅显示DNS服务器信息,不显示其他网络信息 | 适用于需要了解DNS配置的场景 |
dig | 灵活的DNS查询工具,支持多种记录类型和选项 | 需要安装bind-utils包,且主要关注DNS查询 | 适用于DNS故障排查和验证域名解析过程 |
host | 简单的DNS查询工具,易于使用 | 功能相对有限,不支持复杂的DNS查询选项 | 适用于快速验证域名解析结果的场景 |
nslookup | 交互式DNS查询工具,支持递归和非递归查询 | 交互式界面可能不如命令行工具高效 | 适用于交互式DNS查询和故障排查 |
fping | 批量ping工具,可同时向多个主机发送ping请求 | 需要安装fping工具,且主要关注ping操作 | 适用于批量检查多个主机的网络连通性 |
curl | 强大的HTTP客户端工具,支持多种协议和选项 | 主要用于HTTP请求,不直接显示网络接口信息 | 适用于需要通过HTTP请求获取网络信息的场景 |
wget | 简单的HTTP下载工具,易于使用 | 主要用于文件下载,不直接显示网络接口信息 | 适用于需要下载文件的场景 |
grep | 强大的文本搜索工具,支持正则表达式匹配 | 主要用于文本搜索和过滤,不直接显示网络接口信息 | 适用于需要从大量文本中提取特定信息的场景 |
head | 查看文件开头部分的内容,常用于快速浏览日志文件 | 主要用于查看文件内容,不直接显示网络接口信息 | 适用于快速浏览日志文件或其他文本文件的前几行内容 |
tail | 查看文件末尾部分的内容,常用于实时监控日志文件 | 主要用于查看文件内容,不直接显示网络接口信息 | 适用于实时监控日志文件或其他文本文件的最后几行内容 |