在Linux系统中,查询服务器地址是日常运维和网络管理中的常见需求,服务器地址可能包含本地IP地址(IPv4/IPv6)、公网IP地址、MAC地址、主机名、域名解析信息等,掌握多种查询方法可以帮助运维人员快速定位问题、配置服务或排查网络故障,以下从不同维度详细介绍Linux系统中查询服务器地址的常用命令及具体操作。
查询本地IP地址(IPv4/IPv6)
本地IP地址是服务器在局域网或内网中的标识,分为IPv4和IPv6两种类型,可通过以下命令查询:
使用ip addr
命令(推荐)
ip addr
是iproute2
工具包中的命令,功能强大且现代Linux系统默认安装,可查看所有网络接口的IP地址、子网掩码、MAC地址等信息。
ip addr show
执行后输出类似以下内容(以eth0接口为例):
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::21a:2bff:fe3c:4d5e/64 scope link
valid_lft forever preferred_lft forever
- IPv4地址:
inet
字段后168.1.100/24
,其中168.1.100
是IP地址,/24
表示子网掩码(255.255.255.0)。 - IPv6地址:
inet6
字段后的地址,如fe80::21a:2bff:fe3c:4d5e/64
。
若需查看特定接口(如eth0),可加接口名:ip addr show eth0
。
使用ifconfig
命令(需安装net-tools)
ifconfig
是传统网络配置工具,部分系统(如CentOS 7之前)默认安装,新版本可能需手动安装(yum install net-tools
或apt install net-tools
)。
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::21a:2bff:fe3c:4d5e prefixlen 64 scopeid 0x20<link>
ether 00:1a:2b:3c:4d:5e txqueuelen 1000 (Ethernet)
RX packets 12345 bytes 1234567 (1.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 23456 bytes 2345678 (2.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet
后为IPv4地址,netmask
为子网掩码,ether
为MAC地址。
使用hostname -I
命令(仅IPv4)
该命令可快速显示所有接口的IPv4地址,空格分隔:
hostname -I
输出示例:168.1.100 10.0.0.1
(多网卡服务器会显示多个IP)。
查询公网IP地址
公网IP是服务器在互联网中的唯一标识,需通过访问外部服务或第三方接口查询,常用方法如下:
使用curl
调用第三方接口
curl
是常用的网络工具,可通过访问第三方API获取公网IP:
curl ifconfig.me # 或 curl ipinfo.io/ip
输出示例:45.67.89
(直接显示公网IPv4地址)。
若需查询IPv6公网地址,可使用:
curl ipv6.icanhazip.com
使用wget
查询
与curl
类似,wget
也可通过第三方接口获取公网IP:
wget -qO- ifconfig.me
查询MAC地址
MAC地址是网卡的物理地址,由48位十六进制数组成,可通过以下命令查询:
使用ip addr
命令
在ip addr show
的输出中,link/ether
字段后的值即为MAC地址(如前文示例中的00:1a:2b:3c:4d:5e
)。
使用ip link
命令
ip link show
输出示例:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
link/ether
后为MAC地址。
查询主机名与域名解析信息
主机名是服务器在局域网中的名称,域名解析则是将域名映射到IP地址的过程,查询方法如下:
查询主机名
hostname # 显示短主机名 hostname -f # 显示完整域名(FQDN,如server.example.com) hostname -A # 显示所有主机名别名
主机名配置文件位于/etc/hostname
,可通过cat /etc/hostname
查看。
域名解析查询
(1)使用nslookup
命令
nslookup
可查询域名对应的IP或IP对应的域名(反向解析),需安装bind-utils
(CentOS/RHEL)或dnsutils
(Ubuntu/Debian)。
- 查询域名IP:
nslookup example.com
输出示例:
Name: example.com Address: 93.184.216.34 Name: example.com Address: 2606:2800:220:1:248:1893:25c8:1946
- 反向查询IP对应的域名:
nslookup 93.184.216.34
(2)使用dig
命令(更详细)
dig
提供更详细的DNS解析信息,包括权威服务器、TTL值等:
dig example.com
输出示例(部分):
; <<>> DiG 9.11.3-1ubuntu1.17-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 604800 IN A 93.184.216.34
查询网络接口与路由信息
查看网络接口状态
ip link show # 显示所有接口状态(UP/DOWN)
输出示例:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff
state UP
表示接口已启用,DOWN
表示禁用。
查看路由表(默认网关等)
ip route show
输出示例:
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100
default via 192.168.1.1 dev eth0
表示默认网关为168.1.1
,通过eth0接口访问。
Linux服务器地址查询命令速查表
命令 | 功能描述 | 常用选项/示例 |
---|---|---|
ip addr show |
查看所有接口IP及MAC地址 | ip addr show eth0 (指定接口) |
ifconfig |
查看网络接口信息(需安装net-tools) | ifconfig eth0 |
hostname -I |
快速显示所有IPv4地址 | 无 |
curl ifconfig.me |
获取公网IPv4地址 | curl ipv6.icanhazip.com (IPv6) |
ip link show |
查看网络接口状态及MAC地址 | 无 |
nslookup example.com |
查询域名对应的IP或反向解析 | nslookup 93.184.216.34 (反向查询) |
dig example.com |
详细DNS解析信息 | dig +short example.com (仅返回IP) |
ip route show |
查看路由表(默认网关等) | 无 |
相关问答FAQs
Q1: 如何区分本机的公网IP和私网IP?
A: 私网IP是局域网内部使用的地址,无法直接访问互联网,范围包括:
- 0.0.0/8(10.0.0.0-10.255.255.255)
- 16.0.0/12(172.16.0.0-172.31.255.255)
- 168.0.0/16(192.168.0.0-192.168.255.255)
公网IP是互联网服务提供商(ISP)分配的,可直接访问互联网,可通过curl ifconfig.me
等第三方接口查询,登录路由器管理界面(通常为192.168.1.1或192.168.0.1)也可查看WAN口公网IP。
Q2: 为什么使用nslookup
查询域名时返回多个IP地址?
A: DNS负载均衡(Load Balancing)是常见原因,为了提高服务可用性和性能,同一个域名可能对应多个服务器IP地址,DNS服务器会根据轮询(Round Robin)、地理位置或负载情况返回不同的IP给客户端,访问大型网站时,不同地区用户可能解析到不同的CDN节点IP,从而实现就近访问,故障转移(Failover)场景下,主服务器IP和备用服务器IP也可能同时绑定同一域名。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37667.html