如何获取linux的ip地址
- Linux
- 2025-07-30
- 4589
ifconfig或
 ip addr来获取IP地址,使用
 ifconfig会显示网络配置详情,而
 ip addr提供更详细的网络状态信息。
Linux系统的IP地址有多种方法,以下是几种常见且详细的方式:
使用ifconfig命令
 
ifconfig是一个传统的网络配置命令,虽然在一些新的Linux发行版中已经被标记为过时,但在许多系统上仍然可用。
步骤:
- 打开终端。
- 输入命令:ifconfig
- 按下回车键。
示例输出:
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:22:1d  
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe68:221d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25727 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14353 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15345678 (15.3 MB)  TX bytes:1234567 (1.2 MB)解释:
- inet addr:192.168.1.100是IPv4地址。
- inet6 addr: fe80::20c:29ff:fe68:221d/64是IPv6地址。
使用ip命令
 
ip命令是ifconfig的现代替代品,功能更强大且更灵活。
步骤:
- 打开终端。
- 输入命令:ip addr show或简写ip a
- 按下回车键。
示例输出:
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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:68:22:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 86400sec preferred_lft 86400sec
    inet6 fe80::20c:29ff:fe68:221d/64 scope link 
       valid_lft forever preferred_lft forever解释:
- inet 192.168.1.100/24是IPv4地址及其子网掩码。
- inet6 fe80::20c:29ff:fe68:221d/64是IPv6地址及其前缀长度。
使用hostname命令
 
hostname命令可以显示系统的主机名和IP地址。
步骤:
- 打开终端。
- 输入命令:hostname -I
- 按下回车键。
示例输出:
168.1.100解释:
- 该命令仅显示IPv4地址,不包括IPv6地址。
使用nmcli命令
 
nmcli是NetworkManager的命令行工具,用于管理网络连接。
步骤:
- 打开终端。
- 输入命令:nmcli device show
- 按下回车键。
示例输出:
DEVICE  TYPE      STATE      CONNECTION 
eth0    ethernet  connected  Wired connection 1 
lo      loopback  unmanaged  -           解释:

- eth0是网络接口名称。
- connected表示接口已连接。
- Wired connection 1是连接名称。
使用图形界面(GNOME为例)
在桌面环境中,可以通过图形界面查看IP地址。
步骤:
- 打开“设置”应用。
- 选择“网络”或“Wi-Fi”选项。
- 点击当前连接的网络。
- 查看“IP地址”信息。
解释:
- 图形界面提供了直观的方式来查看和管理网络设置。
使用curl或wget命令获取公网IP
 
有时需要获取Linux系统的公网IP地址,可以使用curl或wget命令。
使用curl命令:
- 打开终端。
- 输入命令:curl ifconfig.me
- 按下回车键。
示例输出:
168.1.100使用wget命令:
- 打开终端。
- 输入命令:wget -qOifconfig.me
- 按下回车键。
示例输出:
168.1.100解释:
- ifconfig.me是一个提供公网IP地址查询服务的网站。
- curl和- wget命令都可以用于获取该信息。
使用iptables查看NAT规则中的IP地址
 
在某些情况下,可能需要通过iptables查看NAT规则中的IP地址。
步骤:
- 打开终端。
- 输入命令:sudo iptables -t nat -L -n -v
- 按下回车键。
示例输出:

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  - 0.0.0.0/0            0.0.0.0/0            masquerade match-any 解释:
- MASQUERADE表示NAT地址转换规则。
- source和- destination字段显示了相关的IP地址信息。
使用脚本自动获取IP地址
可以编写一个简单的Shell脚本来自动获取并显示IP地址。
示例脚本:
#!/bin/bash
# 获取IPv4地址
ipv4=$(hostname -I | awk '{print $1}')
echo "IPv4 Address: $ipv4"
# 获取IPv6地址
ipv6=$(hostname -I | awk '{print $2}')
echo "IPv6 Address: $ipv6" 
保存并运行脚本:
- 将上述脚本保存为get_ip.sh。
- 赋予执行权限:chmod +x get_ip.sh
- 运行脚本:./get_ip.sh
示例输出:
IPv4 Address: 192.168.1.100
IPv6 Address: fe80::20c:29ff:fe68:221d解释:
- 脚本使用hostname -I命令获取所有IP地址,并通过awk提取IPv4和IPv6地址。
使用arp命令查看ARP表
 
arp命令可以显示ARP缓存表,其中包含本地网络中设备的IP地址和MAC地址映射。
步骤:
- 打开终端。
- 输入命令:arp -a
- 按下回车键。
示例输出:
? (192.168.1.1) at 00:16:3e:48:9c:2b [ether] on eth0
? (192.168.1.100) at 00:0c:29:68:22:1d [ether] on eth0解释:
- 表示动态条目。
- (192.168.1.1)是IP地址。
- at 00:16:3e:48:9c:2b是对应的MAC地址。
- [ether]表示接口类型为以太网。
- on eth0表示接口名称。
使用route命令查看路由表
 
route命令可以显示系统的路由表,其中包含默认网关的IP地址。
步骤:

- 打开终端。
- 输入命令:route -n
- 按下回车键。
示例输出:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1    0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0解释:
- Destination表示目标网络。
- Gateway表示下一跳网关。
- Genmask表示网络掩码。
- Flags表示路由标志。
- Metric表示路由优先级。
- Ref表示引用计数。
- Use表示使用次数。
- Iface表示接口名称。
归纳表格
| 方法 | 命令/步骤 | IPv4地址示例 | IPv6地址示例 | 
|---|---|---|---|
| ifconfig | ifconfig | 168.1.100 | fe80::20c:29ff:fe68:221d | 
| ip | ip addr show | 168.1.100 | fe80::20c:29ff:fe68:221d | 
| hostname | hostname -I | 168.1.100 | N/A | 
| nmcli | nmcli device show | N/A | N/A | 
| 图形界面 | 打开“设置” -> “网络” -> 查看当前连接 | 168.1.100 | N/A | 
| curl/wget | curl ifconfig.me或wget -qOifconfig.me | 168.1.100 | N/A | 
| iptables | sudo iptables -t nat -L -n -v | N/A | N/A | 
| 脚本 | get_ip.sh | 168.1.100 | fe80::20c:29ff:fe68:221d | 
| arp | arp -a | N/A | N/A | 
| route | route -n | N/A | N/A | 
相关问答FAQs
Q1: 如何在Linux中查看所有网络接口的IP地址?
A1: 可以使用ip addr show或简写ip a命令来查看所有网络接口的IP地址,该命令会列出所有接口的详细信息,包括IPv4和IPv6地址、子网掩码等。
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
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:68:22:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 86400sec preferred_lft 86400sec
    inet6 fe80::20c:29ff:fe68:221d/64 scope link 
       valid_lft forever preferred_lft forever通过这种方式,你可以查看系统中所有网络接口的IP地址信息。
Q2: 如果我想查看Linux系统的公网IP地址,应该怎么做?
A2: 要查看Linux系统的公网IP地址,可以使用curl或wget命令访问提供公网IP查询服务的网站,如ifconfig.me,以下是两种常用的方法:
使用curl命令:
curl ifconfig.me
这将返回你的公网IP地址,
168.1.100使用wget命令:
wget -qOifconfig.me
同样,这将输出你的公网IP地址,
192. 
  
			