Linux查询服务器 IP 地址的命令详解

2025-08-13 09:50

本文主要是介绍Linux查询服务器 IP 地址的命令详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧...

服务器管理和网络运维中,快速准确地获取服务器的 IP 地址是一项基本但至关重要的技能。无论是进行远程连接、配置网络服务还是排查故障,了解如何查询 IP 地址都是每位系统管理员必备的能力。

一、hostname 命令:简单高效的 IP 查询工具

hostname -I命令无疑是查询服务器 IP 地址最直接的方式之一。这个命令的设计初衷就是为了提供一个简单快捷的方法来获取服务器的网络配置信息。

Linux查询服务器 IP 地址的命令详解

命令详解

当您在终端执行hostname -I时,系统会返回服务器上所有非回环(loopback)网络接口配置的 IP 地址,这js些地址以空格分隔显示在一行中。例如:

203.0.xxx.China编程42 2001:db8:abcd:1234::5678

这个输出中,第一个地址(203.0.113.42)通常是 IPv4 地址,第二个地址(2001:db81234::5678)则是 IPv6 地址。这种显示方式特别适合脚本处理,因为它的输出格式非常规范。

实际应用技巧

获取主网卡 IP:在很多自动化脚本中,我们只需要服务器的首要 IP 地址。这时可以使用管道结合 awk 命令:

hostname -I | awk '{print $1}'

这条命令会返回列表中的第一个 IP 地址,通常是主网卡的 IP。

IPv4 与 IPv6 分离:如果需要单独获取 IPv4 或 IPv6 地址,可以结合 grep 命令进行筛选:

hostname -I | grep -oandroidE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b'  # IPv4
hostname -I | grep -oE 'China编程([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}'  # IPv6

统计 IP 数量:要了解服务器配置了多少个非回环 IP 地址,可以使用:

hostname -I | wc -w

注意事项

  • 在某些极简 linux 发行版中,hostname命令可能不支持-I参数,这时需要安装完整的主机名工具包。
  • 如果服务器没有任何网络接口配置(除了回环接口),命令可能返回空结果。
  • 在容器化环境中,这个命令返回的是容器内部的 IP 地址,而不是宿主机的 IP。

二、ip 命令:新一代网络配置全能工具

ip命令是 Linux 系统中新一代的网络配置工具,属于 iproute2 软件包的一部分,它正在逐步取代传统的ifconfig命令。

基本用法

查看所有网络接口的详细信息:

ip addr show

或者简写为:

ip a

三、方法补充

查看 Linux 服务器的 IP 地址的命令大体上有以下几种。

hostname -i

查看当前登录的服务器的ip地址:

hostname -i

如果你网上搜索,会有很多种命令,实际上在要求系统稳定、安全的项目或者公司中,很多命令都是不行的,原因自然是没有安装对应的命令。就拿最基本的命令

ll

在我们公司的数据库服务器上就是无效命令。原因是我们公司的数据库服务器用的是ibm的AIX系统,而ll命令其实就是ls -l的别名,因为大家用的多,一般情况下linux系统会默认给加入进来了。而AIX系统是IBM基于AT&T Unix SYSTEM V开发的一套类UNIX系统,运行在IBM专有的power系列芯片设计的小型机硬件系统之上。它没有把这个命令的别名给默认安装上,所以就找不到了。

结论:

hostname -i

补充说明:

如果说要查看系统的ip,还有一个命令,那就是:

hostname -I

这个命令和上一个命令是有一些相似的,在有些时候如果i是小写的,可能查不出主机的ip,只能显示127.0.0.1,而大写的I则可以显示ip。在python这里对这个命令做一个补充说明。

ifconfig

ifconfig

Linux查询服务器 IP 地址的命令详解

上面的 ens33 是我创建虚拟机时分配的名字,你们的不一定是ens33,有可能是 ens0、ens1等。上面是 ifconfig 命令显示的结果。

ip addr

ip addr

结果如下:

Linux查询服务器 IP 地址的命令详解

ip a | more

或者直接使用以下命令即可:

ip a
# 或者
ip a | more

Linux查询服务器 IP 地址的命令详解

小结

上面我们讲述了查看 linux 服务器 ip 地址的三种方法,不过,我们最常用的还是 ifconfig。

# 最常用,查看所有的 ip,找到 ens 开头的网卡,即可找到对应的 ip
ifconfig

# 主机的 ip
hostname -i

# 网卡的方式查看 ip,找到 ens 开头的网卡,即可找到对应的 ip
ip addr
# 或者
ip add

# ip a | more

到此这篇关于Linux查询服务器 IP 地址的命令详解的文章就介绍到这了,更多相关Linux查询服务器IP地址内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!

这篇关于Linux查询服务器 IP 地址的命令详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155714

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

JAVA线程的周期及调度机制详解

《JAVA线程的周期及调度机制详解》Java线程的生命周期包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,线程调度依赖操作系统,采用抢占... 目录Java线程的生命周期线程状态转换示例代码JAVA线程调度机制优先级设置示例注意事项JAVA线程

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

MyBatis中的两种参数传递类型详解(示例代码)

《MyBatis中的两种参数传递类型详解(示例代码)》文章介绍了MyBatis中传递多个参数的两种方式,使用Map和使用@Param注解或封装POJO,Map方式适用于动态、不固定的参数,但可读性和安... 目录✅ android方式一:使用Map<String, Object>✅ 方式二:使用@Param