标签 网络 下的文章

ip 命令可以告诉你很多网络连接配置和状态的信息,但是所有这些词和数字意味着什么? 让我们深入了解一下,看看所有显示的值都试图告诉你什么。

当您使用 ip a(或 ip addr)命令获取系统上所有网络接口的信息时,您将看到如下所示的内容:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether 00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff
 inet 192.168.0.24/24 brd 192.168.0.255 scope global dynamic enp0s25
 valid_lft 57295sec preferred_lft 57295sec
 inet6 fe80::2c8e:1de0:a862:14fd/64 scope link
 valid_lft forever preferred_lft forever

这个系统上的两个接口 - 环回(lo)和网络(enp0s25)——显示了很多统计数据。 lo 接口显然是 环回地址 loolback 。 我们可以在列表中看到环回 IPv4 地址(127.0.0.1)和环回 IPv6(::1)。 而普通的网络接口更有趣。

为什么是 enp0s25 而不是 eth0

如果你想知道为什么它在这个系统上被称为 enp0s25,而不是可能更熟悉的 eth0,那我们可以稍微解释一下。

新的命名方案被称为“ 可预测的网络接口 Predictable Network Interface ”。 它已经在基于systemd 的 Linux 系统上使用了一段时间了。 接口名称取决于硬件的物理位置。 en 仅仅就是 “ethernet” 的意思,就像 “eth” 用于对应 eth0,一样。 p 是以太网卡的总线编号,s 是插槽编号。 所以 enp0s25 告诉我们很多我们正在使用的硬件的信息。

<BROADCAST,MULTICAST,UP,LOWER_UP> 这个配置串告诉我们:

BROADCAST   该接口支持广播
MULTICAST   该接口支持多播
UP          网络接口已启用
LOWER_UP    网络电缆已插入,设备已连接至网络

列出的其他值也告诉了我们很多关于接口的知识,但我们需要知道 brdqlen 这些词代表什么意思。 所以,这里显示的是上面展示的 ip 信息的其余部分的翻译。

mtu 1500                                    最大传输单位(数据包大小)为1,500字节
qdisc pfifo_fast                            用于数据包排队
state UP                                    网络接口已启用
group default                               接口组
qlen 1000                                   传输队列长度
link/ether 00:1e:4f:c8:43:fc                接口的 MAC(硬件)地址
brd ff:ff:ff:ff:ff:ff                       广播地址
inet 192.168.0.24/24                        IPv4 地址
brd 192.168.0.255                           广播地址
scope global                                全局有效
dynamic enp0s25                             地址是动态分配的
valid_lft 80866sec                          IPv4 地址的有效使用期限
preferred_lft 80866sec                      IPv4 地址的首选生存期
inet6 fe80::2c8e:1de0:a862:14fd/64          IPv6 地址
scope link                                  仅在此设备上有效
valid_lft forever                           IPv6 地址的有效使用期限
preferred_lft forever                       IPv6 地址的首选生存期

您可能已经注意到,ifconfig 命令提供的一些信息未包含在 ip a 命令的输出中 —— 例如传输数据包的统计信息。 如果您想查看发送和接收的数据包数量以及冲突数量的列表,可以使用以下 ip 命令:

$ ip -s link show enp0s25
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
 link/ether 00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff
 RX: bytes packets errors dropped overrun mcast
 224258568 418718 0 0 0 84376
 TX: bytes packets errors dropped carrier collsns
 6131373 78152 0 0 0 0

另一个 ip 命令提供有关系统路由表的信息。

$ ip route show
default via 192.168.0.1 dev enp0s25 proto static metric 100
169.254.0.0/16 dev enp0s25 scope link metric 1000
192.168.0.0/24 dev enp0s25 proto kernel scope link src 192.168.0.24 metric 100

ip 命令是非常通用的。 您可以从 ip 命令及其来自Red Hat的选项获得有用的备忘单。


via: https://www.networkworld.com/article/3262045/linux/checking-your-network-connections-on-linux.html

作者:Sandra Henry-Stocker 译者:Flowsnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

是不是总是想要 更快的 torrent 速度?不管现在的速度有多块,但总是无法对此满足。我们对 torrent 速度的痴迷使我们经常从包括 YouTube 视频在内的许多网站上寻找并应用各种所谓的技巧。但是相信我,从小到大我就没发现哪个技巧有用过。因此本文我们就就来看看,为什么尝试提高 torrent 速度是行不通的。

影响速度的因素

本地因素

从下图中可以看到 3 台电脑分别对应的 A、B、C 三个用户。A 和 B 本地相连,而 C 的位置则比较远,它与本地之间有 1、2、3 三个连接点。

若用户 A 和用户 B 之间要分享文件,他们之间直接分享就能达到最大速度了而无需使用 torrent。这个速度跟互联网什么的都没有关系。

  • 网线的性能
  • 网卡的性能
  • 路由器的性能

当谈到 torrent 的时候,人们都是在说一些很复杂的东西,但是却总是不得要点。

LAN wire,network cards,router

现在我们谈论的是本地文件分享,目前较新一点的网卡速率大约 1 Gigabit 左右。常见的路由器大约 300 Megabits 而网线大概能达到 100 Megabits。当然具体的配置可能不一样,我这里只是给一个一般性的例子。

由于你有一个 1 Gigabit 的网卡,你可能会觉得你的下载速度应该达到 125 Megabytes。但是路由器只允许传输 300 Megabits 也就是 30 Megabyte。

即使你把目标降到 30 Megabytes,然而你连接到路由器的电缆/网线的性能最多只有 100 megabits 也就是 10 MegaBytes。这是一个纯粹的瓶颈问题,由一个薄弱的环节影响到了其他强健部分,也就是说这个传输速率只能达到 10 Megabytes,即电缆的极限速度。现在想象有一个 torrent 即使能够用最大速度进行下载,那也会由于你的硬件不够强大而导致瓶颈。

外部因素

现在再来看一下这幅图。用户 C 在很遥远的某个地方。甚至可能在另一个国家。

how torrent works

假设这个用户创建了一个 torrent 而你想去下载它。第一个问题就是我们刚才讨论过的,你不可能跨越 10 Megabyte 这道坎。

第二,由于 C 与本地之间多个有连接点,其中一个点就有可能成为瓶颈所在,可能由于繁重的流量和相对薄弱的硬件导致了缓慢的速度。

做种者与吸血者

关于此已经有了太多的讨论,总的想法就是搜索更多的种子,但要注意上面的那些因素,有一个很好的种子提供者,但是跟我之间的连接不好的话那也是无济于事的。通常,这不可能发生,因为我们也不是唯一下载这个资源的人,一般都会有一些在本地的人已经下载好了这个文件并已经在做种了。

结论

我们尝试搞清楚哪些因素影响了 torrent 速度的好坏。不管我们如何用软件进行优化,大多数时候是这是由于物理瓶颈导致的。我从来不关心那些软件,使用默认配置对我来说就够了。

希望你会喜欢这篇文章,有什么想法敬请留言。


via: http://www.theitstuff.com/increase-torrent-speed-will-never-work

作者:Rishabh Kandari 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

通过 iftopnethogsvnstat 详细了解你的网络连接状态。

你可以通过这三个 Linux 命令了解当前网络的大量信息。iftop 通过进程号跟踪网络连接,nethogs 快速告知你哪些进程在占用你的带宽,而 vnstat 以一个良好的轻量级守护进程在后台运行,并实时记录你的网络使用情况。

iftop

令人称赞的 iftop 可以监听您指定的网络接口,并以 top 的样式呈现。

这是一个不错的小工具,可以用于找出网络拥塞,测速和维持网络流量总量。看到自己到底在用多少带宽往往是非常惊人的,尤其是对于我们这些仍然记得电话线路、调制解调器,“高速”到令人惊叫的 kb 和实时波特率的老人们。我们在很久之前就不再使用波特率,转而钟情于比特率。波特率用于衡量信号变化,尽管有时候与比特率相同,但大多数情况下并非如此。

如果你只有一个网络接口,直接运行 iftop 即可。不过 iftop 需要 root 权限:

$ sudo iftop

如果你有多个网络接口,那就指定你要监控的接口:

$ sudo iftop -i wlan0

就像 top 命令一样,你可以在命令运行时更改显示选项:

  • h 切换帮助界面。
  • n 是否解析域名。
  • s 切换源地址的显示,d 则切换目的地址的显示。
  • S 是否显示端口号。
  • N 是否解析端口;若关闭解析则显示端口号。
  • t 切换文本显示界面。默认的显示方式需要 ncurses。我个人认为图 1 的显示方式在组织性和可读性都更加良好。
  • p 暂停显示更新。
  • q 退出程序。

 title=

图 1:组织性和可读性良好的文本显示。

当你切换显示设置的时候,iftop 并不会中断监测流量。当然你也可以单独监测一台主机。而这需要该主机的 IP 地址和子网掩码。现在,我很好奇 Pandora(LCTT 译注:一家美国的电台公司)能给我贫瘠的带宽带来多大的负载。因此我首先使用 dig 命令找到他们的 IP 地址:

$ dig A pandora.com
[...]
;; ANSWER SECTION:
pandora.com.            267     IN      A       208.85.40.20
pandora.com.            267     IN      A       208.85.40.50

那子网掩码呢?ipcalc 会告诉我们:

$ ipcalc -b 208.85.40.20
Address:   208.85.40.20   
Netmask:   255.255.255.0 = 24
Wildcard:  0.0.0.255  
=>
Network:   208.85.40.0/24 

现在,将 IP 地址和子网掩码提供给 iftop

$ sudo iftop -F 208.85.40.20/24 -i wlan0

很棒的不是么?而我也很惊奇地发现,Pandora 在我的网络上,每小时大约使用 500kb。并且就像大多数流媒体服务一样,Pandora 的流量在迅速增长,并依靠缓存稳定下来。

你可以使用 -G 选项对 IPv6 地址执行相同的操作。查阅友好的 man 可以帮助你了解 iftop 的其他功能,包括使用个人配置文件自定义你的默认选项,以及使用自定义过滤(请参阅 PCAP-FILTER 来获取过滤指南)。

nethogs

当你想要快速了解是谁在吸取你的带宽的时候,nethogs 是个快速而简单的方法。你需要以 root 身份运行并指定要监听的接口。它会给你显示大量的应用程序及其进程号,所以如果你想的话,你可以借此杀死任一进程。

$ sudo nethogs wlan0

nethogs version 0.8.1

PID USER   PROGRAM              DEV    SENT   RECEIVED       
7690 carla /usr/lib/firefox     wlan0 12.494 556.580 KB/sec
5648 carla .../chromium-browser wlan0  0.052   0.038 KB/sec
TOTAL                                 12.546 556.618 KB/sec 

nethogs 并没有多少选项:在 kb/s、kb、b、mb之间循环,按接收和发送的数据包排序,调整刷新延迟。具体请看man nethogs,或者是运行 nethogs -h

vnstat

vnstat是最容易使用的网络数据收集工具。它十分轻量并且不需要 root 权限。它以守护进程在后台运行,因此可以实时地记录你的网络数据。单个 vnstat 命令就可以显示所累计的数据。

$ vnstat -i wlan0
Database updated: Tue Oct 17 08:36:38 2017

   wlan0 since 10/17/2017

          rx:  45.27 MiB      tx:  3.77 MiB      total:  49.04 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Oct '17     45.27 MiB |    3.77 MiB |   49.04 MiB |    0.28 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        85 MiB |       5 MiB |      90 MiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today     45.27 MiB |    3.77 MiB |   49.04 MiB |   12.96 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       125 MiB |       8 MiB |     133 MiB |

默认情况下它会显示所有的网络接口。使用 -i 选项来选择某个接口。也可以像这样合并多个接口的数据:

$ vnstat -i wlan0+eth0+eth1

你可以通过这几种方式过滤数据显示:

  • -h 按小时显示统计信息。
  • -d 按天显示统计信息.
  • -w-m 分别按周和月份来显示统计信息。
  • 使用 -l 选项查看实时更新。

以下这条命令将会删除 wlan1 的数据库并不再监视它:

$ vnstat -i wlan1 --delete

而下面这条命令将会为你的一个网络接口创建一个别名。这个例子使用了 Ubuntu 16.04 的一个有线接口名称:

$ vnstat -u -i enp0s25 --nick eth0

默认情况下,vnstat 会监视 eth0。你可以在 /etc/vnstat.conf 对它进行修改,或者在你的家目录下创建你自己的个人配置文件。请参阅 man vnstat 以获取完整的指南。

你也可以安装 vnstati 来创建简单的彩图(图 2):

$ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png

 title=

图 2:你可以使用vnstati来创建简单的彩图。

请参阅 man vnstati 以获取完整的选项。

欲了解 Linux 的更多信息,可以通过学习 Linux 基金会和 edX 的免费课程,“Linux 入门”


via: https://www.linux.com/learn/intro-to-linux/2017/10/3-simple-excellent-linux-network-monitors

作者:CARLA SCHRODER 译者:KeyLD 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

netstat 是一个告诉我们系统中所有 tcp/udp/unix socket 连接状态的命令行工具。它会列出所有已经连接或者等待连接状态的连接。 该工具在识别某个应用监听哪个端口时特别有用,我们也能用它来判断某个应用是否正常的在监听某个端口。

netstat 命令还能显示其它各种各样的网络相关信息,例如路由表, 网卡统计信息, 虚假连接以及多播成员等。

本文中,我们会通过几个例子来学习 netstat。

(推荐阅读: 通过示例学习使用 CURL 命令 )

1 - 检查所有的连接

使用 a 选项可以列出系统中的所有连接,

$ netstat -a

这会显示系统所有的 tcp、udp 以及 unix 连接。

2 - 检查所有的 tcp/udp/unix socket 连接

使用 t 选项只列出 tcp 连接,

$ netstat -at

类似的,使用 u 选项只列出 udp 连接,

$ netstat -au

使用 x 选项只列出 Unix socket 连接,

$ netstat -ax

3 - 同时列出进程 ID/进程名称

使用 p 选项可以在列出连接的同时也显示 PID 或者进程名称,而且它还能与其他选项连用,

$ netstat -ap

4 - 列出端口号而不是服务名

使用 n 选项可以加快输出,它不会执行任何反向查询(LCTT 译注:这里原文有误),而是直接输出数字。 由于无需查询,因此结果输出会快很多。

$ netstat -an

5 - 只输出监听端口

使用 l 选项只输出监听端口。它不能与 a 选项连用,因为 a 会输出所有端口,

$ netstat -l

6 - 输出网络状态

使用 s 选项输出每个协议的统计信息,包括接收/发送的包数量,

$ netstat -s

7 - 输出网卡状态

使用 I 选项只显示网卡的统计信息,

$ netstat -i

8 - 显示 多播组 multicast group 信息

使用 g 选项输出 IPV4 以及 IPV6 的多播组信息,

$ netstat -g

9 - 显示网络路由信息

使用 r 输出网络路由信息,

$ netstat -r

10 - 持续输出

使用 c 选项持续输出结果

$ netstat -c

11 - 过滤出某个端口

grep 连用来过滤出某个端口的连接,

$ netstat -anp | grep 3306

12 - 统计连接个数

通过与 wcgrep 命令连用,可以统计指定端口的连接数量

$ netstat -anp | grep 3306 | wc -l

这会输出 mysql 服务端口(即 3306)的连接数。

这就是我们简短的案例指南了,希望它带给你的信息量足够。 有任何疑问欢迎提出。


via: http://linuxtechlab.com/learn-use-netstat-with-examples/

作者:Shusain 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

没有路由和桥接,我们将会成为孤独的小岛,你将会在这个网络教程中学到更多知识。

上周,我们学习了本地网络硬件知识,本周,我们将学习网络互联技术和在移动网络中的一些很酷的黑客技术。

路由器

网络路由器就是计算机网络中的一切,因为路由器连接着网络,没有路由器,我们就会成为孤岛。图一展示了一个简单的有线本地网络和一个无线接入点,所有设备都接入到互联网上,本地局域网的计算机连接到一个连接着防火墙或者路由器的以太网交换机上,防火墙或者路由器连接到网络服务供应商(ISP)提供的电缆箱、调制调节器、卫星上行系统……好像一切都在计算中,就像是一个带着不停闪烁的的小灯的盒子。当你的网络数据包离开你的局域网,进入广阔的互联网,它们穿过一个又一个路由器直到到达自己的目的地。

 title=

图一:一个简单的有线局域网和一个无线接入点。

路由器可以是各种样式:一个只专注于路由的小巧特殊的小盒子,一个将会提供路由、防火墙、域名服务,以及 VPN 网关功能的大点的盒子,一台重新设计的台式电脑或者笔记本,一个树莓派计算机或者一个 Arduino,体积臃肿矮小的像 PC Engines 这样的单板计算机,除了苛刻的用途以外,普通的商品硬件都能良好的工作运行。高端的路由器使用特殊设计的硬件每秒能够传输最大量的数据包。它们有多路数据总线,多个中央处理器和极快的存储。(可以通过了解 Juniper 和思科的路由器来感受一下高端路由器书什么样子的,而且能看看里面是什么样的构造。)

接入你的局域网的无线接入点要么作为一个以太网网桥,要么作为一个路由器。桥接器扩展了这个网络,所以在这个桥接器上的任意一端口上的主机都连接在同一个网络中。一台路由器连接的是两个不同的网络。

网络拓扑

有多种设置你的局域网的方式,你可以把所有主机接入到一个单独的 平面网络 flat network ,也可以把它们划分为不同的子网。如果你的交换机支持 VLAN 的话,你也可以把它们分配到不同的 VLAN 中。

平面网络是最简单的网络,只需把每一台设备接入到同一个交换机上即可,如果一台交换上的端口不够使用,你可以将更多的交换机连接在一起。有些交换机有特殊的上行端口,有些是没有这种特殊限制的上行端口,你可以连接其中的任意端口,你可能需要使用交叉类型的以太网线,所以你要查阅你的交换机的说明文档来设置。

平面网络是最容易管理的,你不需要路由器也不需要计算子网,但它也有一些缺点。它们的伸缩性不好,所以当网络规模变得越来越大的时候就会被广播网络所阻塞。将你的局域网进行分段将会提升安全保障, 把局域网分成可管理的不同网段将有助于管理更大的网络。图二展示了一个分成两个子网的局域网络:内部的有线和无线主机,和一个托管公开服务的主机。包含面向公共的服务器的子网称作非军事区域 DMZ,(你有没有注意到那些都是主要在电脑上打字的男人们的术语?)因为它被阻挡了所有的内部网络的访问。

 title=

图二:一个分成两个子网的简单局域网。

即使像图二那样的小型网络也可以有不同的配置方法。你可以将防火墙和路由器放置在一台单独的设备上。你可以为你的非军事区域设置一个专用的网络连接,把它完全从你的内部网络隔离,这将引导我们进入下一个主题:一切基于软件。

软件思维

你可能已经注意到在这个简短的系列中我们所讨论的硬件,只有网络接口、交换机,和线缆是特殊用途的硬件。 其它的都是通用的商用硬件,而且都是软件来定义它的用途。Linux 是一个真实的网络操作系统,它支持大量的网络操作:网关、虚拟专用网关、以太网桥、网页、邮箱以及文件等等服务器、负载均衡、代理、服务质量、多种认证、中继、故障转移……你可以在运行着 Linux 系统的标准硬件上运行你的整个网络。你甚至可以使用 Linux 交换应用(LISA)和VDE2 协议来模拟以太网交换机。

有一些用于小型硬件的特殊发行版,如 DD-WRT、OpenWRT,以及树莓派发行版,也不要忘记 BSD 们和它们的特殊衍生用途如 pfSense 防火墙/路由器,和 FreeNAS 网络存储服务器。

你知道有些人坚持认为硬件防火墙和软件防火墙有区别?其实是没有区别的,就像说硬件计算机和软件计算机一样。

端口聚合和以太网绑定

聚合和绑定,也称链路聚合,是把两条以太网通道绑定在一起成为一条通道。一些交换机支持端口聚合,就是把两个交换机端口绑定在一起,成为一个是它们原来带宽之和的一条新的连接。对于一台承载很多业务的服务器来说这是一个增加通道带宽的有效的方式。

你也可以在以太网口进行同样的配置,而且绑定汇聚的驱动是内置在 Linux 内核中的,所以不需要任何其他的专门的硬件。

随心所欲选择你的移动宽带

我期望移动宽带能够迅速增长来替代 DSL 和有线网络。我居住在一个有 25 万人口的靠近一个城市的地方,但是在城市以外,要想接入互联网就要靠运气了,即使那里有很大的用户上网需求。我居住的小角落离城镇有 20 分钟的距离,但对于网络服务供应商来说他们几乎不会考虑到为这个地方提供网络。 我唯一的选择就是移动宽带;这里没有拨号网络、卫星网络(即使它很糟糕)或者是 DSL、电缆、光纤,但却没有阻止网络供应商把那些我在这个区域从没看到过的 Xfinity 和其它高速网络服务的传单塞进我的邮箱。

我试用了 AT&T、Version 和 T-Mobile。Version 的信号覆盖范围最广,但是 Version 和 AT&T 是最昂贵的。 我居住的地方在 T-Mobile 信号覆盖的边缘,但迄今为止他们给了最大的优惠,为了能够能够有效的使用,我必须购买一个 WeBoost 信号放大器和一台中兴的移动热点设备。当然你也可以使用一部手机作为热点,但是专用的热点设备有着最强的信号。如果你正在考虑购买一台信号放大器,最好的选择就是 WeBoost,因为他们的服务支持最棒,而且他们会尽最大努力去帮助你。在一个小小的 APP SignalCheck Pro 的协助下设置将会精准的增强你的网络信号,他们有一个功能较少的免费的版本,但你将一点都不会后悔去花两美元使用专业版。

那个小巧的中兴热点设备能够支持 15 台主机,而且还有拥有基本的防火墙功能。 但你如果你使用像 Linksys WRT54GL这样的设备,可以使用 Tomato、OpenWRT,或者 DD-WRT 来替代普通的固件,这样你就能完全控制你的防护墙规则、路由配置,以及任何其它你想要设置的服务。

(题图:Pixabay)


via: https://www.linux.com/learn/intro-to-linux/2017/10/linux-networking-hardware-beginners-think-software

作者:CARLA SCHRODER 译者:FelixYFZ 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux 系统提供了许多有用的命令来检查网络配置和连接。下面来看几个,包括 ifqueryifupifdownifconfig

Linux 上有许多可用于查看网络设置和连接的命令。在今天的文章中,我们将会通过一些非常方便的命令来看看它们是如何工作的。

ifquery 命令

一个非常有用的命令是 ifquery。这个命令应该会显示一个网络接口列表。但是,你可能只会看到类似这样的内容 - 仅显示回环接口:

$ ifquery --list
lo

如果是这种情况,那说明你的 /etc/network/interfaces 不包括除了回环接口之外的网络接口信息。在下面的例子中,假设你使用 DHCP 来分配地址,且如果你希望它更有用的话,你可以添加例子最后的两行。

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

ifup 和 ifdown 命令

可以使用相关的 ifupifdown 命令来打开网络连接并根据需要将其关闭,只要该文件具有所需的描述性数据即可。请记住,“if” 在这里意思是 接口 interface ,这与 ifconfig 命令中的一样,而不是 如果我只有一个大脑 if I only had a brain 中的 “if”。

ifconfig 命令

另外,ifconfig 命令完全不读取 /etc/network/interfaces,但是仍然提供了网络接口相当多的有用信息 —— 配置数据以及可以告诉你每个接口有多忙的数据包计数。ifconfig 命令也可用于关闭和重新启动网络接口(例如:ifconfig eth0 down)。

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:1e:4f:c8:43:fc
          inet addr:192.168.0.6  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::b44b:bdb6:2527:6ae9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:60474 errors:0 dropped:0 overruns:0 frame:0
          TX packets:33463 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:43922053 (43.9 MB)  TX bytes:4000460 (4.0 MB)
          Interrupt:21 Memory:fe9e0000-fea00000

输出中的 RX 和 TX 数据包计数很低。此外,没有报告错误或数据包冲突。或许可以用 uptime 命令确认此系统最近才重新启动。

上面显示的广播 (Bcast) 和网络掩码 (Mask) 地址表明系统运行在 C 类等效网络(默认)上,所以本地地址范围从 192.168.0.1192.168.0.254

netstat 命令

netstat 命令提供有关路由和网络连接的信息。netstat -rn 命令显示系统的路由表。192.168.0.1 是本地网关 (Flags=UG)。

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

上面输出中的 169.254.0.0 条目仅在你正在使用或计划使用本地链路通信时才有必要。如果不是这样的话,你可以在 /etc/network/if-up.d/avahi-autoipd 中注释掉相关的行:

$ tail -12 /etc/network/if-up.d/avahi-autoipd
#if [ -x /bin/ip ]; then
#       # route already present?
#       ip route show | grep -q '^169.254.0.0/16[[:space:]]' && exit 0
#
#       /bin/ip route add 169.254.0.0/16 dev $IFACE metric 1000 scope link
#elif [ -x /sbin/route ]; then
#       # route already present?
#       /sbin/route -n | egrep -q "^169.254.0.0[[:space:]]" && exit 0
#
#       /sbin/route add -net 169.254.0.0 netmask 255.255.0.0 dev $IFACE metric 1000
#fi

netstat -a 命令

netstat -a 命令将显示“所有”网络连接。为了将其限制为显示正在监听和已建立的连接(通常更有用),请改用 netstat -at 命令。

$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 localhost:ipp           *:*                     LISTEN
tcp        0      0 localhost:smtp          *:*                     LISTEN
tcp        0    256 192.168.0.6:ssh         192.168.0.32:53550      ESTABLISHED
tcp6       0      0 [::]:http               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN
tcp6       0      0 ip6-localhost:smtp      [::]:*                  LISTEN

host 命令

host 命令就像 nslookup 一样,用来查询远程系统的 IP 地址,但是还提供系统的邮箱处理地址。

$ host world.std.com
world.std.com has address 192.74.137.5
world.std.com mail is handled by 10 smtp.theworld.com.

nslookup 命令

nslookup 还提供系统中(本例中是本地系统)提供 DNS 查询服务的信息。

$ nslookup world.std.com
Server:         127.0.1.1
Address:        127.0.1.1#53

Non-authoritative answer:
Name:   world.std.com
Address: 192.74.137.5

dig 命令

dig 命令提供了很多有关连接到远程系统的信息 - 包括与我们通信的名称服务器以及查询需要多长时间进行响应,并经常用于故障排除。

$ dig world.std.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> world.std.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28679
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;world.std.com.                 IN      A

;; ANSWER SECTION:
world.std.com.          78146   IN      A       192.74.137.5

;; Query time: 37 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Mon Oct 09 13:26:46 EDT 2017
;; MSG SIZE  rcvd: 58

nmap 命令

nmap 经常用于探查远程系统,但是同样也用于报告本地系统提供的服务。在下面的输出中,我们可以看到登录可以使用 ssh、smtp 用于电子邮箱、web 站点也是启用的,并且 ipp 打印服务正在运行。

$ nmap localhost

Starting Nmap 7.01 ( https://nmap.org ) at 2017-10-09 15:01 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00016s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
80/tcp  open  http
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

Linux 系统提供了很多有用的命令用于查看网络配置和连接。如果你都探索完了,请记住 apropos network 或许会让你了解更多。


via: https://www.networkworld.com/article/3230519/linux/examining-network-connections-on-linux-systems.html

作者:Sandra Henry-Stocker 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出