Loading... # ifconfig 与 ip addr 命令详解 📡🖧 在 Linux 系统中,**网络配置**和**管理**是系统管理员的重要任务。`ifconfig` 和 `ip addr` 是两个常用的命令工具,用于查看和管理网络接口。虽然 `ifconfig` 曾经是主要的网络配置工具,但随着时间的推移,`ip` 命令逐渐替代了 `ifconfig`,成为管理网络的首选。本文将详细介绍 `ifconfig` 与 `ip addr` 命令的使用方法与区别。 ## 一、ifconfig 命令详解 🚀 `ifconfig` 是用于配置 Linux 系统中网络接口的命令。可以查看和设置网络接口的 IP 地址、网关、子网掩码等。 ### 1.1 安装 ifconfig 工具 🛠️ 在一些现代 Linux 发行版中,`ifconfig` 默认没有安装,需要手动安装: ```bash sudo apt install net-tools ``` **解释**:`net-tools` 包含 `ifconfig` 命令,执行以上命令可以安装该工具。 ### 1.2 ifconfig 常见用法 #### 1.2.1 查看网络接口信息 ```bash ifconfig ``` **解释**:运行 `ifconfig` 会列出系统中所有活动的网络接口,显示每个接口的 IP 地址、广播地址、子网掩码、MTU(最大传输单元)等信息。例如: ``` eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255 ether 00:1a:2b:3c:4d:5e txqueuelen 1000 (Ethernet) ``` **解释**: - **eth0**:网络接口名称。 - **inet**:接口的 IP 地址。 - **netmask**:子网掩码,用于划分子网。 - **ether**:接口的 MAC 地址。 #### 1.2.2 启动和关闭网络接口 - **启动接口**: ```bash sudo ifconfig eth0 up ``` **解释**:启动网络接口 `eth0`。 - **关闭接口**: ```bash sudo ifconfig eth0 down ``` **解释**:关闭网络接口 `eth0`。 #### 1.2.3 设置 IP 地址 ```bash sudo ifconfig eth0 192.168.1.50 netmask 255.255.255.0 ``` **解释**:为网络接口 `eth0` 设置 IP 地址为 **192.168.1.50**,子网掩码为 **255.255.255.0**。 ## 二、ip addr 命令详解 📘 `ip` 命令是现代 Linux 系统中用于网络管理的替代工具,相比 `ifconfig` 更加灵活和强大。`ip` 命令是 `iproute2` 软件包的一部分。 ### 2.1 查看网络接口信息 ```bash ip addr show ``` **解释**:`ip addr show` 显示所有网络接口的信息,包括 IP 地址、网络掩码、状态等。输出示例: ``` 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:1a:2b:3c:4d:5e brd ff:ff:ff:ff:ff:ff inet 192.168.0.100/24 brd 192.168.0.255 scope global eth0 valid_lft forever preferred_lft forever ``` **解释**: - **eth0**:网络接口名称。 - **inet 192.168.0.100/24**:接口的 IPv4 地址及子网掩码,`/24` 表示子网掩码长度为 24 位(相当于 **255.255.255.0**)。 - **state UP**:表示网络接口处于启用状态。 ### 2.2 启动和关闭网络接口 - **启动接口**: ```bash sudo ip link set eth0 up ``` **解释**:使用 `ip` 命令启动接口 `eth0`。 - **关闭接口**: ```bash sudo ip link set eth0 down ``` **解释**:使用 `ip` 命令关闭接口 `eth0`。 ### 2.3 设置 IP 地址 ```bash sudo ip addr add 192.168.1.50/24 dev eth0 ``` **解释**:为网络接口 `eth0` 添加 IP 地址 **192.168.1.50**,子网掩码为 **/24**。 ## 三、ifconfig 与 ip addr 命令对比 ⚖️ | 对比项目 | **ifconfig** | **ip addr** | | -------------------- | -------------------------------------- | -------------------------------- | | **安装情况** | 需要安装 `net-tools`,部分系统不自带 | 大部分现代 Linux 系统默认自带 | | **功能丰富性** | 功能相对较少,支持基本网络管理 | 功能更加强大,支持丰富的网络管理 | | **灵活性** | 支持少量选项 | 支持更多的参数配置,灵活性更高 | | **使用趋势** | 逐渐被淘汰,兼容性逐渐下降 | 官方推荐使用,未来主流工具 | ### 使用情况对比 🗒️ `ifconfig` 曾经是网络配置的主要工具,但它已经多年未更新,逐渐被 `ip` 命令取代。`ip` 命令属于 `iproute2` 软件包,提供了更多的网络管理功能,如路由管理、网络接口管理、链路状态等。 ## 四、常用操作对比表 🛠️ | 操作 | **ifconfig** 命令示例 | **ip addr** 命令示例 | | ------------ | ----------------------------------- | --------------------------------------------- | | 查看网络接口 | `ifconfig` | `ip addr show` | | 启动网络接口 | `sudo ifconfig eth0 up` | `sudo ip link set eth0 up` | | 关闭网络接口 | `sudo ifconfig eth0 down` | `sudo ip link set eth0 down` | | 设置 IP 地址 | `sudo ifconfig eth0 192.168.1.50` | `sudo ip addr add 192.168.1.50/24 dev eth0` | ## 五、ip addr 命令的附加功能 🌐 **ip** 命令不仅可以管理 IP 地址,还可以用于管理其他网络资源,如**路由表**和**链路信息**。 ### 5.1 查看路由信息 ```bash ip route show ``` **解释**:列出系统的路由信息,用于查看数据包如何通过网络传输。 ### 5.2 添加默认网关 ```bash sudo ip route add default via 192.168.1.1 ``` **解释**:将默认网关设置为 **192.168.1.1**,用于未指定目标的网络流量。 ## 六、总结 📝 在现代 Linux 系统中,`ip addr` 作为 `ifconfig` 的替代工具,不仅功能更加丰富,而且灵活性和可扩展性更强,适合用于管理复杂的网络配置。尽管 `ifconfig` 仍然存在于部分系统中,但随着 `net-tools` 的逐渐淘汰,学习并使用 `ip addr` 成为管理 Linux 网络的最佳实践。 - **ifconfig**:经典但逐渐被弃用,适合简单的网络查看与配置。 - **ip addr**:现代、功能丰富,是未来 Linux 网络管理的主要工具。 理解这两个命令的异同,并逐渐向 `ip` 命令过渡,有助于更高效地管理网络接口和配置网络资源。希望本文能够帮助你更好地理解 `ifconfig` 和 `ip addr` 的使用与区别,提高在 Linux 系统中的网络管理水平。 最后修改:2024 年 11 月 09 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏