Ubuntu系统查看IP地址方法详解

Ubuntu系统查看IP地址方法详解

在服务器、VPS或主机管理中,查看IP地址是基础操作之一。无论是日常运维还是故障排查,正确获取本机或网络的IP信息都至关重要。本文将详细介绍在Ubuntu系统中查看IP地址的多种方法,涵盖静态IP和动态IP场景,以及适用于不同需求的命令。

Ubuntu系统提供了多种查看IP地址的工具,最常用的包括`ifconfig`、`ip`和`hostname`命令。`ifconfig`是最传统的工具,但自Ubuntu 16.04起已逐渐被`ip`命令取代。`ip`命令功能更强大,支持链路层、网络层等多种视图,是现代Linux系统的标准配置。对于域名相关的操作,`hostname`命令可以显示系统主机名,有时也能间接提供网络信息。

首先介绍`ifconfig`命令。此命令显示网络接口的配置信息,包括IP地址、子网掩码、广播地址等。使用方法简单,只需在终端输入:

ifconfig

输出结果会显示所有网络接口(如eth0、wlan0)及其详细信息。找到需要的接口,其"inet addr"列对应的值就是IP地址。例如:

eth0   Link encap:Ethernet  HWaddr 00:1A:2B:3C:4D:5E  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0

这里`192.168.1.100`就是eth0接口的IP地址。注意`ifconfig`在较新版本的Ubuntu中可能需要安装`net-tools`包。

`ip`命令是更推荐的查看IP地址工具,功能更全面。基本用法是:

ip addr

输出结果结构化程度更高,显示所有网络接口的IP地址、网络掩码等信息。例如:

1: lo:   mtu 65536 qdisc noqueue  link/loopback 
    inet 127.0.0.1/8  scope host  lo
    2: eth0:   mtu 1500 qdisc pfifo_fast  link/ether 00:1a:2b:3c:4d:5e 
    inet 192.168.1.100/24  scope global eth0
    inet6 fe80::21a:2bff:fe3c:4d5e/64  scope link  eth0

要查看特定接口,可以指定接口名:

ip addr show eth0

若只想显示IP地址,可以用`ip -br addr`简化输出:

ip -br addr

输出类似:

lo    UP    LOOPBACK      127.0.0.1/8 
eth0   UP    BROADCAST     192.168.1.100/24

对于动态IP获取,如果系统使用DHCP自动分配,可以在`ip addr`输出中查看`dynamic`标记。确认IP是否为动态分配后,通常需要配置静态IP。使用`netplan`或`network-manager`是现代Ubuntu推荐的方式。

使用`netplan`配置静态IP的步骤:

  1. 编辑配置文件:通常位于`/etc/netplan/`目录,文件名如`01-netcfg.yaml`
  2. 修改接口配置,添加静态IP段:
network:
  version: 2
  renderer: network-manager
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.1.101/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

保存后运行:

netplan apply

验证配置是否生效:

ip addr show eth0

对于主机名和域名相关操作,`hostname`命令显示当前系统名称:

hostname

若需要查看DNS解析情况,使用`nslookup`或`dig`:

nslookup example.com

显示:

Server:         8.8.8.8
Address:        8.8.8.8#53
Name:   example.com
Address: 93.184.216.34

在服务器环境中,IP地址管理还涉及防火墙规则。使用`ufw`(Uncomplicated Firewall)时,需要知道接口名称:

sudo ufw allow from 192.168.1.100 to any port 22

这里假设你的服务器IP是`192.168.1.100`。如果不确定接口名,可以用`ip route`查看默认网关对应的接口。

处理多个网络接口时,建议使用`ip`命令的`label`参数区分:

ip addr label eth0
ip addr label wlan0

这样在配置防火墙或路由规则时不会混淆。

如果需要查看IPv6地址,`ip -6 addr`或`ip -6 addr show eth0`可以显示。现代服务器通常双栈配置,务必确认IPv6状态。

对于域名解析,除了`nslookup`,`getent`命令也很实用:

getent aaaa example.com

显示IPv6解析记录。如果需要修改系统主机名,编辑`/etc/hostname`文件,然后运行:

sudo hostnamectl set-hostname new-name
sudo reboot

在VPS或云服务器场景下,IP地址可能来自不同供应商。使用`curl ifconfig.me`或`wget http://ifconfig.me`可以快速获取公网IP。对于内网环境,`arp`命令可以查看同一局域网的设备MAC地址和IP对应关系:

arp -a

对于域名相关操作,如果需要修改DNS记录,必须先确定服务器的DNS服务器地址。使用`resolvectl`可以查看:

resolvectl nameservers

修改时编辑`/etc/resolv.conf`文件或使用`netplan`配置。例如添加阿里云DNS:

nameservers:
  - 223.5.5.5
  - 223.6.6.6

当服务器IP变更时,需要同步更新所有相关配置。例如NTP服务器地址、防火墙规则等。使用脚本自动化检查IP变化是个好方法:

#!/bin/bash
OLD_IP=$(curl ifconfig.me)
NEW_IP=$(curl ifconfig.me)
if [ "$OLD_IP" != "$NEW_IP" ]; then
  echo "IP changed from $OLD_IP to $NEW_IP"
  # 执行更新操作
fi

在多网卡服务器上,`ip link`可以显示所有网络设备状态:

ip link

输出类似:

1: lo:   mtu 65536 qdisc noqueue  link/loopback
2: eth0:   mtu 1500 qdisc pfifo_fast  link/ether 00:1a:2b:3c:4d:5e
3: bond0:   mtu 1500 qdisc pfifo_fast  link/ether 00:1a:2b:3c:4d:5f
    bond0:1:   mtu 1500 qdisc noqueue  link/ether 00:1a:2b:3c:4d:5e  master bond0
    bond0:2:   mtu 1500 qdisc noqueue  link/ether 00:1a:2b:3c:4d:5f  master bond0

这里bond0是eth0和wlan0的聚合接口,需要分别管理。

最后,对于域名服务器配置,如果使用`systemd-resolved`,可以查看DNS缓存:

journalctl -u systemd-resolved -f

或者直接查看缓存:

cat /run/systemd/resolve/resolv.conf

Q: 如何确认我的Ubuntu服务器是静态IP还是动态IP?

A: 可以通过以下步骤确认:

  1. 使用`ip addr`命令查看IP地址配置
  2. 重启网络服务:`sudo systemctl restart networking`
  3. 过几分钟再次运行`ip addr`
  4. 如果IP地址改变,则是动态IP;如果保持不变,则是静态IP

Q: 如果我修改了静态IP配置后无法上网,应该怎么排查?

A: 首先确认网关和DNS配置正确。其次检查子网掩码和网关是否冲突。可以尝试临时回退到DHCP模式测试网络连通性:

sudo netplan apply
# 然后使用ping命令测试
ping 8.8.8.8

如果回退后正常,说明静态配置有问题。检查配置文件语法(`netplan validate`)和接口状态(`ip link show eth0`)。

Q: 如何在Ubuntu服务器上设置备用IP地址?

A: 在`netplan`配置中添加`secondary`地址段。例如:

network:
  version: 2
  renderer: network-manager
  eth0:
    dhcp4: no
    addresses:
      - 192.168.1.101/24
      - 192.168.2.101/24
    gateway4: 192.168.1.1
    nameservers:
      addresses:
        - 8.8.8.8

保存后使用`netplan apply`应用。注意某些网络服务可能需要重启才能识别备用IP。

THE END