• Linux下新的网络管理工具ip替代ifconfig零压力


    如果你使用 Linux 足够久,那么你自然知道一些工具的来与去。2009年 Debian 开发者邮件列表宣布放弃使用缺乏维护的 net-tools 工具包正是如此。到今天 net-tools 仍然被部分人们所使用。事实上,在 Ubuntu 14.10 中你依旧可以使用 ifconfig 命令来管理你的网络配置。

    然而在某些情况下(例如, Ubuntu Docker 容器), net-tools 工具包将不会被默认安装,这就意味着不能使用 ifconfig 。尽管如此,还是可以用软件仓库来安装 net-tools 。

    1. sudo apt-get install net-tools 

    由于 net-tools 不再维护,我们强烈建议以 ip 命令代替 ifconfig。更重要的是 ip 在代替 ifconfig 的基础上表现得更好。

    有趣的是 ip 不只是 ifconfig 的一个替代品,这两个命令在结构上有很多不同。即便如此,它们却都用于同一个目的。实际上 ip 命令可以完成下面所有事务。

    • 列出系统上配置了哪些网络接口
    • 查看网络接口的状态
    • 配置网络接口(包括本地环路和以太网)
    • 启用或禁用网络接口
    • 管理默认静态路由
    • IP 隧道配置
    • 配置 ARP 或 NDISC 缓存条目

    接下来就让我们按上面说的试着用 ip 代替 ifconfig 。 我将例举一些简单的例子说明怎么使用 ip 命令。要正确使用并理解这些命令需要 root 权限,你可以用 su 切换到 root 用户或着使用 sudo 。因为这些命令将会改变你机器的网络信息。小心谨慎使用

    注意:演示中用的地址仅作演示,具体到你的计算机时,会由你的网络以及硬件而不一样。

    接下来,开始吧!

    收集信息

    多数人学习使用 ifconfig 做的第一件事就是查看网络接口上分配的 IP 地址。直接终端输入 ifconfig 不带任何参数回车即可看到。那么使用 ip 来做到这点我们只需要这样。

    1. ip a 

    这条命令将会列出所有网络接口的相关信息。

    你说你只想看 IPv4 相关信息,那么可以这样。

    1. ip -4 a 

    你又说你想看特定的网络接口的相关信息,那么用如下命令查看无线网卡连接信息。

    1. ip a show wlan0 

    你甚至可以定位更具体的信息,欲查看 wlan0 上的 IPv4 信息,那么可以这样。

    1. ip -4 a show wlan0 

    还可以这样列出正在运行的网络接口。

    1. ip link ls up 

    修改配置网络接口

    接下来让我们来学习 ip 命令的核心功能——修改配置网络接口。假如你想为第一个以太网的网卡( eth0 )安排一个特定的地址。用 ifconfig 的话,看起来是这样的。

    1. ifconfig eth0 192.168.1.101 

    那么用 ip 命令却是这样的。

    1. ip a add 192.168.1.101/255.255.255.0 dev eth0 

    简短一点可以这样。

    1. ip a add 192.168.1.101/24 dev eth0 

    显然这样的话,你需要知道你要安排的地址的子网掩码。

    同样的方式,你可以这样删除一个网卡的地址。

    1. ip a del 192.168.1.101/24 dev eth0 

    如果你想简单的清除所有接口上的所有地址,只需要这样即可。

    1. ip -s -s a f to 192.168.1.0/24 

    ip 命令另一方面还能激活/禁用网络接口。

    禁用 eth0 

    1. ip link set dev eth0 down 

    激活 eth0 

    1. ip link set dev eth0 up 

    使用 ip 命令,我们还可以添加/删除默认的网关,就像这样。

    1. ip route add default via 192.168.1.254 

    如果你想获得网络接口的更多细节,你可以编辑传输队列,给速度慢的接口设置一个低值,给速度快的设置一个较高值。那么你需要像这样做。

    1. ip link set txqueuelen 10000 dev eth0 

    该命令设置了一个很长的传输队列。你应该设置一个最适合你硬件的值。

    还可以用 ip 命令为网络接口设置最大传输单元。

    1. ip link set mtu 9000 dev eth0 

    一旦你做了改变,便可以使用 ip a list eth0 来检验是否生效。

    管理路由表

    其实还可以使用 ip 命令来管理系统路由表。这是 ip 命令非常有用的一个功能。并且你应该小心使用

    查看所有路由表。

    1. ip r 

    输出结果将像下图所示。

    现在你想要路由的所有流量从 eth0 网卡的192.168.1.254网关通过,那么请这样做。

    1. ip route add 192.168.1.0/24 dev eth0 

    删除这个路由。

    1. ip route del 192.168.1.0/24 dev eth0 

    这篇文章仅仅对 ip 命令进行了一些介绍。不是要求你马上使用 ip 命令。你可以继续使用 ifconfig 。因为 ifconfig 的弃 用相当的慢,很多发行版里依旧默认安装了该命令。但是相信最终会逐步被 ip 命令完全取代。看过这篇介绍,到时候你便能很快的转换过去。如果你还想了解 更多 ip 命令的用法,请看 ip 命令的 man 手册。

  • 相关阅读:
    断开ssh链接在后台继续运行命令
    linux 隐藏显示终端光标
    shell脚本中echo显示内容带颜色
    Linux/Unix下pid文件作用浅析
    使用autotools自动生成Makefile并在此之上使用dh-make生成可发布的deb程序包(详解)
    Linux的tmpfs文件系统
    kernel编译
    Qt之读取配置文件
    android之TCP客户端框架
    android之模拟器更新底层
  • 原文地址:https://www.cnblogs.com/swordxia/p/4746786.html
Copyright © 2020-2023  润新知