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.
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/83959.html