• 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 手册。

  • 相关阅读:
    swoole 安装方法 使用即时聊天
    git的介绍以及简单应用
    curl的应用
    linux下监听和同步代码配置
    mac skim 修改背景色
    php 编译安装的一个 configure 配置
    mac mysql error You must reset your password using ALTER USER statement before executing this statement.
    yii2 控制器里 action 大小写组合造成的路由问题
    warning : json_decode(): option JSON_BIGINT_AS_STRING not implemented in xxx
    redis 自启动脚本
  • 原文地址:https://www.cnblogs.com/swordxia/p/4746786.html
Copyright © 2020-2023  润新知