看新闻不看热闹 發表於 2023-6-17 00:00:00

解读Linux下ip命令展示的网络连接信息

<p>
        <span><strong>前言</strong></span></p>
<p>
        ip 命令可以告诉你很多网络连接配置和状态的信息,但是所有这些词和数字意味着什么? 让我们深入了解一下,看看所有显示的值都试图告诉你什么。</p>
<p>
        当您使用 ip a(或 ip addr)命令获取系统上所有网络接口的信息时,您将看到如下所示的内容:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_373112">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">$ ip a</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">link</code><code class="bash plain">/loopback</code> <code class="bash plain">00:00:00:00:00:00 brd 00:00:00:00:00:00</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">inet 127.0.0.1</code><code class="bash plain">/8</code> <code class="bash plain">scope host lo</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">valid_lft forever preferred_lft forever</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">inet6 ::1</code><code class="bash plain">/128</code> <code class="bash plain">scope host</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">valid_lft forever preferred_lft forever</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="bash plain">2: enp0s25: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP group default qlen 1000</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">link</code><code class="bash plain">/ether</code> <code class="bash plain">00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">inet 192.168.0.24</code><code class="bash plain">/24</code> <code class="bash plain">brd 192.168.0.255 scope global dynamic enp0s25</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">valid_lft 57295sec preferred_lft 57295sec</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">inet6 fe80::2c8e:1de0:a862:14fd</code><code class="bash plain">/64</code> <code class="bash plain">scope link</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">valid_lft forever preferred_lft forever</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这个系统上的两个接口 - 环回(lo)和网络(enp0s25)——显示了很多统计数据。 lo 接口显然是环回地址loolback。 我们可以在列表中看到环回 IPv4 地址(127.0.0.1)和环回 IPv6(::1)。 而普通的网络接口更有趣。</p>
<p>
        <span><strong>为什么是 enp0s25 而不是 eth0</strong></span></p>
<p>
        如果你想知道为什么它在这个系统上被称为 enp0s25,而不是可能更熟悉的 eth0,那我们可以稍微解释一下。</p>
<p>
        新的命名方案被称为“可预测的网络接口Predictable Network Interface”。 它已经在基于systemd 的 Linux 系统上使用了一段时间了。 接口名称取决于硬件的物理位置。 en 仅仅就是 “ethernet” 的意思,就像 “eth” 用于对应 eth0,一样。 p 是以太网卡的总线编号,s 是插槽编号。 所以 enp0s25 告诉我们很多我们正在使用的硬件的信息。</p>
<p>
        <code>&lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; </code>这个配置串告诉我们:</p>
<blockquote>
        <p>
                BROADCAST   该接口支持广播<br>
                MULTICAST   该接口支持多播<br>
                UP          网络接口已启用<br>
                LOWER_UP    网络电缆已插入,设备已连接至网络</p>
</blockquote>
<p>
        列出的其他值也告诉了我们很多关于接口的知识,但我们需要知道 brd 和 qlen 这些词代表什么意思。 所以,这里显示的是上面展示的 ip 信息的其余部分的翻译。</p>
<blockquote>
        <p>
                mtu 1500                                    最大传输单位(数据包大小)为1,500字节<br>
                qdisc pfifo_fast                            用于数据包排队<br>
                state UP                                    网络接口已启用<br>
                group default                               接口组<br>
                qlen 1000                                   传输队列长度<br>
                link/ether 00:1e:4f:c8:43:fc                接口的 MAC(硬件)地址<br>
                brd ff:ff:ff:ff:ff:ff                       广播地址<br>
                inet 192.168.0.24/24                        IPv4 地址<br>
                brd 192.168.0.255                           广播地址<br>
                scope global                                全局有效<br>
                dynamic enp0s25                             地址是动态分配的<br>
                valid_lft 80866sec                          IPv4 地址的有效使用期限<br>
                preferred_lft 80866sec                      IPv4 地址的首选生存期<br>
                inet6 fe80::2c8e:1de0:a862:14fd/64          IPv6 地址<br>
                scope link                                  仅在此设备上有效<br>
                valid_lft forever                           IPv6 地址的有效使用期限<br>
                preferred_lft forever                       IPv6 地址的首选生存期</p>
</blockquote>
<p>
        您可能已经注意到,ifconfig 命令提供的一些信息未包含在 ip a 命令的输出中 —— 例如传输数据包的统计信息。 如果您想查看发送和接收的数据包数量以及冲突数量的列表,可以使用以下 ip 命令:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_574310">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">$ ip -s link show enp0s25</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">2: enp0s25: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">link</code><code class="bash plain">/ether</code> <code class="bash plain">00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">RX: bytes packets errors dropped overrun mcast</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">224258568 418718 0 0 0 84376</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash spaces"> </code><code class="bash plain">TX: bytes packets errors dropped carrier collsns</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash spaces"> </code><code class="bash plain">6131373 78152 0 0 0 0</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        另一个 ip 命令提供有关系统路由表的信息。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_556927">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash plain">$ ip route show</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">default via 192.168.0.1 dev enp0s25 proto static metric 100</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash plain">169.254.0.0</code><code class="bash plain">/16</code> <code class="bash plain">dev enp0s25 scope link metric 1000</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash plain">192.168.0.0</code><code class="bash plain">/24</code> <code class="bash plain">dev enp0s25 proto kernel scope link src 192.168.0.24 metric 100</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        ip 命令是非常通用的。 您可以从 ip 命令及其来自Red Hat的选项获得有用的备忘单。</p>
<p>
        <span><strong>总结</strong></span></p>
<p>
        以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
        原文链接:https://linux.cn/article-9476-1.html</p>
頁: [1]
查看完整版本: 解读Linux下ip命令展示的网络连接信息