{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2024-12-21 10:26:56","updateBy":"admin","updateTime":"2024-12-21 10:26:56","remark":null,"id":95,"articleTitle":"每天一个Linux命令（十九）ip","articleUrl":"linux_ip","articleThumbnail":"https://www.asumimoe.com/imgfiles/20250301/b95d839fa195428cb42fc7f104f50b0d.png","articleFlag":"0","draftStatus":"1","reprintStatement":"0","articleSummary":"ip 是 Linux 系统中用于管理网络接口、路由、隧道等网络配置的命令，支持查看和配置 IP 地址、路由表、ARP 缓存等信息。它是 ifconfig 和 route 等传统命令的现代替代工具，具有更强大的功能和更统一的语法。","articleContent":"`ip` 是 Linux 系统中用于**管理网络接口、路由、隧道等网络配置**的命令，支持查看和配置 IP 地址、路由表、ARP 缓存等信息。它是 `ifconfig` 和 `route` 等传统命令的现代替代工具，具有更强大的功能和更统一的语法。\n\n---\n\n## 语法\n\n```bash\nip [选项] 对象 {命令|帮助}\n```\n\n---\n\n## 常用对象\n\n| 对象       | 说明                |\n| ---------- | ------------------- |\n| `link`     | 网络接口（如 eth0） |\n| `address`  | IP 地址             |\n| `route`    | 路由表              |\n| `neigh`    | ARP 缓存（邻居表）  |\n| `tunnel`   | 隧道配置            |\n| `rule`     | 路由策略数据库      |\n| `maddress` | 多播地址            |\n| `monitor`  | 监控网络事件        |\n\n---\n\n## 常用命令\n\n| 命令    | 说明         |\n| ------- | ------------ |\n| `show`  | 显示对象信息 |\n| `add`   | 添加配置     |\n| `del`   | 删除配置     |\n| `set`   | 设置配置     |\n| `flush` | 清空配置     |\n\n---\n\n## 使用示例\n\n### 1. 显示所有网络接口\n\n```bash\nip link show\n```\n\n输出示例：\n\n```bash\n1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\n    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n```\n\n---\n\n### 2. 显示所有 IP 地址\n\n```bash\nip address show\n```\n\n输出示例：\n\n```bash\n1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1/8 scope host lo\n       valid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0\n       valid_lft 86388sec preferred_lft 86388sec\n```\n\n---\n\n### 3. 显示路由表\n\n```bash\nip route show\n```\n\n输出示例：\n\n```bash\ndefault via 192.168.1.1 dev eth0 proto static metric 100\n192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100\n```\n\n---\n\n### 4. 显示 ARP 缓存\n\n```bash\nip neigh show\n```\n\n输出示例：\n\n```bash\n192.168.1.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE\n192.168.1.200 dev eth0 lladdr 00:0c:29:78:56:34 STALE\n```\n\n---\n\n### 5. 添加 IP 地址\n\n```bash\nip address add 192.168.1.200/24 dev eth0\n```\n\n---\n\n### 6. 删除 IP 地址\n\n```bash\nip address del 192.168.1.200/24 dev eth0\n```\n\n---\n\n### 7. 添加默认路由\n\n```bash\nip route add default via 192.168.1.1 dev eth0\n```\n\n---\n\n## 注意事项\n\n1. **权限要求**：修改网络配置需 root 权限\n2. **输出格式**：默认输出格式可能因系统而异\n3. **对象和命令**：`ip` 命令的语法为 `ip 对象 命令`，对象和命令可组合使用\n\n---\n\n## 进阶用法\n\n### 1. 显示特定网络接口的详细信息\n\n```bash\nip link show eth0\n```\n\n输出示例：\n\n```bash\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n```\n\n---\n\n### 2. 显示特定 IP 地址的详细信息\n\n```bash\nip address show 192.168.1.100\n```\n\n输出示例：\n\n```bash\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0\n       valid_lft 86388sec preferred_lft 86388sec\n```\n\n---\n\n### 3. 显示特定路由的详细信息\n\n```bash\nip route show 192.168.1.0/24\n```\n\n输出示例：\n\n```bash\n192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100\n```\n\n---\n\n### 4. 清空 ARP 缓存\n\n```bash\nip neigh flush dev eth0\n```\n\n---\n\n### 5. 添加静态 ARP 条目\n\n```bash\nip neigh add 192.168.1.200 lladdr 00:0c:29:78:56:34 dev eth0\n```\n\n---\n\n### 6. 删除静态 ARP 条目\n\n```bash\nip neigh del 192.168.1.200 dev eth0\n```\n\n---\n\n### 7. 监控网络事件\n\n```bash\nip monitor all\n```\n\n输出示例（实时显示网络事件）：\n\n```bash\n[LINK] 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n[ROUTE] default via 192.168.1.1 dev eth0 proto static metric 100\n```\n\n---\n\n## 更多示例\n\n### 1. 启用网络接口\n\n```bash\nip link set eth0 up\n```\n\n---\n\n### 2. 禁用网络接口\n\n```bash\nip link set eth0 down\n```\n\n---\n\n### 3. 修改网络接口的 MAC 地址\n\n```bash\nip link set eth0 address 00:0c:29:12:34:56\n```\n\n---\n\n### 4. 添加多播地址\n\n```bash\nip maddress add 224.0.0.1 dev eth0\n```\n\n---\n\n### 5. 删除多播地址\n\n```bash\nip maddress del 224.0.0.1 dev eth0\n```\n\n---\n\n### 6. 显示路由策略数据库\n\n```bash\nip rule show\n```\n\n输出示例：\n\n```bash\n0:      from all lookup local\n32766:  from all lookup main\n32767:  from all lookup default\n```\n\n---\n\n### 7. 添加路由策略\n\n```bash\nip rule add from 192.168.1.100 lookup 100\n```\n\n---\n\n### 8. 删除路由策略\n\n```bash\nip rule del from 192.168.1.100 lookup 100\n```\n\n---\n\n### 9. 显示隧道配置\n\n```bash\nip tunnel show\n```\n\n输出示例：\n\n```bash\ntunl0: ip/ip  remote any  local any  ttl inherit  nopmtudisc\ngre0: gre/ip  remote any  local any  ttl inherit  nopmtudisc\n```\n\n---\n\n### 10. 添加 IPIP 隧道\n\n```bash\nip tunnel add tun0 mode ipip remote 192.168.1.200 local 192.168.1.100 ttl 64\n```\n\n---\n\n### 11. 删除 IPIP 隧道\n\n```bash\nip tunnel del tun0\n```\n\n---\n\n### 12. 显示网络接口的统计信息\n\n```bash\nip -s link show eth0\n```\n\n输出示例：\n\n```bash\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n    RX: bytes  packets  errors  dropped overrun mcast\n    123456789  1234567  0       0       0       0\n    TX: bytes  packets  errors  dropped carrier collsns\n    987654321  9876543  0       0       0       0\n```\n\n---\n\n### 13. 显示网络接口的详细统计信息\n\n```bash\nip -s -s link show eth0\n```\n\n输出示例：\n\n```bash\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n    RX: bytes  packets  errors  dropped overrun mcast\n    123456789  1234567  0       0       0       0\n    RX errors: length   crc     frame   fifo    missed\n               0        0       0       0       0\n    TX: bytes  packets  errors  dropped carrier collsns\n    987654321  9876543  0       0       0       0\n    TX errors: aborted  fifo   window heartbeat transns\n               0        0       0       0       0\n```\n\n---\n\n### 14. 显示网络接口的队列信息\n\n```bash\nip -d link show eth0\n```\n\n输出示例：\n\n```bash\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n    RX: bytes  packets  errors  dropped overrun mcast\n    123456789  1234567  0       0       0       0\n    TX: bytes  packets  errors  dropped carrier collsns\n    987654321  9876543  0       0       0       0\n    altname enp0s3\n    altname ens3\n```\n\n---\n\n### 15. 显示网络接口的硬件信息\n\n```bash\nip -d -d link show eth0\n```\n\n输出示例：\n\n```bash\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000\n    link/ether 00:0c:29:12:34:56 brd ff:ff:ff:ff:ff:ff\n    RX: bytes  packets  errors  dropped overrun mcast\n    123456789  1234567  0       0       0       0\n    TX: bytes  packets  errors  dropped carrier collsns\n    987654321  9876543  0       0       0       0\n    altname enp0s3\n    altname ens3\n    vf 0 MAC 00:00:00:00:00:00, vlan 0, qos 0, spoof checking off, link-state auto, trust off, query_rss off\n```","categoryId":1,"viewCount":59,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[10],"tagNames":["Linux基础"]}}