redhat8—网络知识

网络基础

/etc/services

/etc/services 文件是Linux系统中的一个文本文件,它包含了网络服务和端口号的映射关系,用于在网络通信中识别和管理不同的网络服务。以下是关于 /etc/services 文件的详细解释:

  1. 文件位置 :
    • /etc/services 文件通常位于Linux系统中的 /etc 目录下。
  2. 文件格式 :
    • /etc/services 文件的格式相对简单,每一行包含两个字段:服务名称和端口号(以及可选的协议)。这两个字段由制表符或空格分隔。
    • 示例行:servicename port/protocol
  3. 服务名称 :
    • 服务名称是网络服务的人类可读标识,通常是服务的常用名字。例如,HTTP服务的服务名称是 "http",SSH服务的服务名称是 "ssh"。
    • 这些服务名称被用于配置和识别网络应用程序和服务。
  4. 端口号 :
    • 端口号是一个16位整数,用于标识网络通信中的端口。端口号通常与服务一起使用,以确定应该将网络流量路由到哪个应用程序或服务。
    • 通常,端口号的范围从0到65535,其中0到1023的端口号被称为 "Well-Known Ports",用于常见的标准服务,如HTTP(80端口)和HTTPS(443端口)。
  5. 协议 :
    • /etc/services 文件中的每一行还可以包含可选的协议字段,用于指定服务所使用的协议。如果未指定协议,默认情况下通常是TCP或UDP。
    • 例如,如果某个服务在TCP和UDP上都运行,那么它可能在 /etc/services 中有两行,一行指定TCP协议,另一行指定UDP协议。
  6. 用途 :
    • /etc/services 文件用于各种网络工具和应用程序,以便它们可以查找网络服务的端口号。当您配置防火墙、网络服务或其他网络应用时,这个文件非常有用。
  7. 维护 :
    • /etc/services 文件通常由系统管理员或网络管理员手动维护。如果您需要添加或更改特定服务的端口号,您可以编辑此文件。

总之,/etc/services 文件用于映射网络服务的人类可读名称到其对应的端口号,以便网络应用程序能够正确识别和连接到这些服务。这对于网络配置和安全设置非常重要。

IPv4路由

例子:

IPv4地址和路由配置

在Linux系统中,IPv4地址和路由配置是非常重要的,因为它们决定了网络通信如何在系统上工作。以下是IPv4地址和路由配置的详细解释:

IPv4地址配置:

  1. 静态地址和动态地址

    • 在Linux系统上,可以使用静态(手动配置)或动态(DHCP等协议自动分配)方式来配置IPv4地址。
  2. 静态地址配置

    • 静态IPv4地址需要手动配置,通常在网络接口的配置文件中进行。主要文件是 /etc/network/interfaces(Debian/Ubuntu)或 /etc/sysconfig/network-scripts/ifcfg-<interface>(CentOS/RHEL)。

    • 配置示例(Debian/Ubuntu):

      plaintext 复制代码
      auto eth0
      iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      gateway 192.168.1.1
    • 这个示例配置了一个名为 eth0 的接口,设置了IPv4地址、子网掩码和默认网关。

  3. 动态地址配置

    • 动态IPv4地址通过DHCP协议从DHCP服务器自动获取。大多数Linux系统默认启用DHCP,但您可以在网络配置中禁用它。
    • DHCP客户端通常是 dhclient(Debian/Ubuntu)或 dhclient(CentOS/RHEL)。
  4. 查看IP地址

    • 使用 ifconfig(旧版本)或 ip addr(新版本)命令来查看当前网络接口的IP地址。

IPv4路由配置:

  1. 静态路由

    • 静态路由是手动配置的路由规则,用于指示数据包的下一跳。它们通常在 /etc/network/interfaces/etc/sysconfig/network-scripts/route-<interface> 文件中配置。

    • 配置示例(Debian/Ubuntu):

      plaintext 复制代码
      up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.1
    • 这个示例配置了一个静态路由,将数据包发送到10.0.0.0/8子网的网关192.168.1.1。

  2. 动态路由

    • 动态路由是由路由协议自动学习和更新的路由规则,如RIP、OSPF和BGP。通常,这些协议由路由器或网络设备来管理。
  3. 查看路由表

    • 使用 route(旧版本)或 ip route(新版本)命令来查看当前系统的路由表。
  4. 路由配置文件

    • 静态路由可以在系统引导时从文件中加载。在Debian/Ubuntu中,配置文件是 /etc/network/interfaces;在CentOS/RHEL中,配置文件是 /etc/sysconfig/network-scripts/route-<interface>
  5. 默认网关

    • 默认网关是一个特殊的路由,它用于将数据包发送到不在本地子网的目标。默认网关通常在接口配置中设置,如前面的IPv4地址配置示例。

总之,IPv4地址和路由配置对于Linux系统上的网络通信至关重要。您可以手动配置静态地址和路由,或使用DHCP来自动获取地址,同时也可以配置静态或动态路由来管理数据包的流向。正确的配置对于网络通信的正常运行至关重要。

[root@localhost rsyslog.d]# ip addr
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: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:56:15:f2 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.150.213/24 brd 192.168.150.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 192.168.150.134/24 brd 192.168.150.255 scope global secondary dynamic noprefixroute ens160
       valid_lft 1739sec preferred_lft 1739sec
    inet6 fe80::20c:29ff:fe56:15f2/64 scope link
       valid_lft forever preferred_lft forever

您提供了一个 ip addr 命令的输出,这个命令用于查看系统上的网络接口和其IPv4和IPv6地址配置。让我详细解释您提供的输出:

   1: lo
  • 这是名为 "lo" 的网络接口,它通常是本地回环接口(loopback)。
  • mtu 65536 - 最大传输单元(MTU)的大小,表示此接口可以传输的数据包的最大大小。
  • inet 127.0.0.1/8 - 这是IPv4地址配置,表示IP地址为 127.0.0.1,子网掩码为 /8
  • inet6 ::1/128 - 这是IPv6地址配置,表示IP地址为 ::1,子网掩码为 /128,在IPv6中,::1 是IPv6回环地址的等效物。
   2: ens160
  • 这是名为 "ens160" 的网络接口,通常是物理网络接口。
  • mtu 1500 - 最大传输单元(MTU)的大小。
  • link/ether 00:0c:29:56:15:f2 - 以太网物理地址(MAC地址)。
  • inet 192.168.150.213/24 - 这是第一个IPv4地址配置,表示IP地址为 192.168.150.213,子网掩码为 /24(也就是255.255.255.0)。
  • inet 192.168.150.134/24 - 这是第二个IPv4地址配置,表示IP地址为 192.168.150.134,子网掩码为 /24。这是一个动态分配的地址。
  • inet6 fe80::20c:29ff:fe56:15f2/64 - 这是IPv6地址配置,表示IPv6链路本地地址。

总之,ip addr 命令的输出显示了系统上的两个网络接口,一个是回环接口 lo,另一个是物理接口 ens160。每个接口都列出了其IPv4和IPv6地址配置,以及其他相关信息,如MTU和MAC地址。这些信息对于了解系统的网络配置非常重要。

2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:56:15:f2 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.150.213/24 brd 192.168.150.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet 192.168.150.134/24 brd 192.168.150.255 scope global secondary dynamic noprefixroute ens160
       valid_lft 1739sec preferred_lft 1739sec
    inet6 fe80::20c:29ff:fe56:15f2/64 scope link
       valid_lft forever preferred_lft forever

这是对您提供的关于 ens160 网络接口的详细解释:

  1. 2: ens160 - 这是网络接口的名称,通常是物理网络接口的命名。
  2. <BROADCAST,MULTICAST,UP,LOWER_UP> - 这是接口的状态和属性的说明:
    • BROADCAST 表示这个接口支持广播。
    • MULTICAST 表示这个接口支持多播。
    • UP 表示这个接口当前是启动状态。
    • LOWER_UP 表示链路层(L2)接口也是启动状态。
  3. mtu 1500 - 这是该接口的最大传输单元(MTU),它表示可以传输的数据包的最大大小。MTU 1500是以太网上的标准值。
  4. qdisc mq - 这表示网络队列调度器(qdisc)的配置。mq 通常用于多队列(MultiQueue)网络接口。
  5. state UP - 这表示网络接口的状态是 "UP",即接口处于激活状态,可以传输数据。
  6. group default qlen 1000 - 这表示接口所属的网络控制组(Cgroup),以及接口队列长度。
  7. link/ether 00:0c:29:56:15:f2 - 这是网络接口的以太网物理地址(MAC地址)。
  8. altname enp3s0 - 这是替代名称(alternative name),在某些情况下,系统可能使用 enp3s0 作为接口的替代名称。
  9. inet 192.168.150.213/24 - 这是接口的IPv4地址配置,包括IP地址 192.168.150.213、子网掩码 /24(也就是255.255.255.0)以及广播地址 192.168.150.255。这是主要的IPv4地址。
  10. inet 192.168.150.134/24 - 这是接口的第二个IPv4地址配置,包括IP地址 192.168.150.134、子网掩码 /24 和一些其他信息。这是一个动态分配的次要IPv4地址。
  11. inet6 fe80::20c:29ff:fe56:15f2/64 - 这是接口的IPv6地址配置,表示IPv6链路本地地址。

总之,这段输出提供了关于 ens160 网络接口的详细信息,包括接口状态、MAC地址、IPv4和IPv6地址配置等。这些信息对于了解网络接口的配置和状态非常重要。

IPv6路由

在Linux中,IPv6路由是网络通信的关键组成部分,它确定了IPv6数据包如何在不同网络之间传输。以下是有关IPv6路由的详细解释:

  1. IPv6路由表 :
    • 与IPv4一样,Linux系统维护一个IPv6路由表,用于存储路由信息。您可以使用 ip -6 routenetstat -rn -6 命令来查看IPv6路由表。
  2. 默认路由 :
    • 默认路由是指用于发送数据包到达未知目标的路由。默认路由通常由Internet服务提供商(ISP)提供,或者在本地网络中手动配置。
  3. 静态路由 :
    • 静态路由是手动配置的路由规则,用于指示数据包的下一跳。静态路由可以通过命令行工具或配置文件添加。
    • 例如,您可以使用 ip -6 route add 命令添加静态IPv6路由。
  4. 动态路由 :
    • 动态IPv6路由是由路由协议自动学习和更新的路由规则,如OSPFv3、RIPng、BGP等。通常,这些协议由网络设备或路由器来管理。
  5. 路由优先级 :
    • 在IPv6路由表中,每个路由条目都有一个与之关联的优先级。这些优先级确定了系统在多个匹配路由时应该选择哪一个。
  6. 本地链路路由 :
    • 本地链路路由用于在同一网络上的设备之间进行通信。这些路由是自动生成的,无需手动配置。
  7. 站点本地路由 :
    • 站点本地路由允许在特定站点(组织内的多个网络)内进行通信。它们通常在企业或组织网络中使用,可以通过静态或动态路由配置。
  8. 多播组路由 :
    • 多播组路由用于多播通信,允许数据包传输到多个目标设备。IPv6支持多播通信,并使用多播组地址进行路由。
  9. 路由表规则 :
    • Linux还支持路由表规则(route table rules)的设置,这允许根据特定的条件(如源地址、接口、类型 of service 等)为数据包选择不同的路由表。

总之,IPv6路由是确保IPv6数据包在不同网络之间正确传输的重要组成部分。Linux系统维护一个路由表,其中包含各种路由规则,包括默认路由、静态路由、动态路由等。这些路由规则帮助数据包到达其目标,同时路由优先级和路由表规则也对路由选择起到重要作用。

主机名和IP地址

hosts、resolv.conf

在Linux系统中,/etc/hosts/etc/resolv.conf 是两个重要的配置文件,它们分别用于主机名解析和DNS配置。以下是对这两个文件的详细解释:

  1. /etc/hosts

    • /etc/hosts 是一个文本文件,用于将主机名与IP地址进行手动映射,以便系统能够在本地环境中解析主机名。这个文件允许您在本地系统中定义主机名到IP地址的映射关系,而不依赖于DNS服务器。

    • 格式:每行包括一个IP地址和一个或多个主机名,用空格或制表符分隔。通常,它的格式如下:

      IP地址 主机名 [别名...]
      
    • 例子:

      plaintext 复制代码
      127.0.0.1 localhost
      192.168.1.100 myserver mywebserver
    • /etc/hosts 文件允许您设置本地环境中的自定义主机名映射,用于解析主机名到IP地址。这在没有可用DNS服务器或需要特定本地解析规则时非常有用。

  2. /etc/resolv.conf

    • /etc/resolv.conf 是一个文本文件,用于配置系统的DNS解析器(resolver)的行为。它定义了系统用于解析主机名和域名的DNS服务器和搜索域(search domains)。

    • 格式:常见的 /etc/resolv.conf 文件包括以下信息:

      nameserver DNS服务器IP地址
      domain 搜索域
      search 搜索域1 搜索域2
      
    • 例子:

      plaintext 复制代码
      nameserver 8.8.8.8
      domain example.com
      search mycompany.local mycompany.net
    • /etc/resolv.conf 文件告诉系统如何解析主机名和域名,以及要使用哪些DNS服务器。这对于系统能够在互联网上查找和访问其他主机非常重要。

    • 请注意,/etc/resolv.conf 文件通常由DHCP客户端或其他网络配置工具自动生成和更新,但也可以手动配置。

总之,/etc/hosts 文件允许手动配置本地主机名到IP地址的映射,而 /etc/resolv.conf 文件用于配置系统的DNS解析器和DNS服务器,以便系统能够解析互联网上的主机名和域名。这两个文件都是网络配置中的重要组成部分。

可以通过"getent hosts hostname"命令,利用/etc/hosts文件测试主机名解析1

[root@ydh ~]# getent hosts ydh
fe80::20c:29ff:fe56:15f2 ydh

网络配置

查看网络配置

ip link 命令是Linux中用于**管理网络接口(网卡)**的强大工具。它允许您查看、配置和管理系统上的网络接口。以下是对 ip link 命令的详细解释:

基本用法

bash 复制代码
ip link [subcommand] [options]

常见的子命令

  1. show 或不带子命令:显示系统上所有网络接口的信息。

    bash 复制代码
    ip link show

    这将列出所有网络接口的详细信息,包括名称、MAC地址、状态、MTU(最大传输单元)等。

  2. set:用于配置网络接口的属性,如启用或禁用接口、更改MAC地址、设置MTU等。

    bash 复制代码
    ip link set <interface> [options]

    示例:禁用接口 eth0

    bash 复制代码
    ip link set eth0 down
  3. updown:分别用于启用和禁用网络接口。

    bash 复制代码
    ip link set <interface> up

    示例:启用接口 eth0

    bash 复制代码
    ip link set eth0 up
  4. set 子命令还可以用于设置接口的MAC地址,MTU,QLen,等等。

    bash 复制代码
    ip link set <interface> address <new-MAC>
    ip link set <interface> mtu <new-MTU>

    示例:更改接口 eth0 的MAC地址。

    bash 复制代码
    ip link set eth0 address 00:11:22:33:44:55
  5. add:用于添加新的虚拟网络接口或设备。

    bash 复制代码
    ip link add <interface-name> type <interface-type> [options]

    示例:添加一个虚拟网桥接口 br0

    bash 复制代码
    ip link add br0 type bridge

状态标志

ip link show 的输出中,您会看到各种状态标志。这些标志提供有关网络接口状态的重要信息。一些常见的状态标志包括:

  • UP:表示接口已启用。
  • DOWN:表示接口已禁用。
  • BROADCAST:表示接口支持广播。
  • MULTICAST:表示接口支持多播。
  • PROMISC:表示接口在混杂模式下运行,可以接收所有数据包。
  • LOOPBACK:表示接口是回环接口。

用途

  • ip link 命令用于配置和管理网络接口的各种属性,包括状态、MAC地址、MTU、虚拟网桥等。这对于网络管理和故障排除非常重要。
  • 可以使用 ip link 命令创建虚拟网络接口,如虚拟网桥、虚拟隧道等,以扩展网络功能。

总之,ip link 命令是Linux系统中管理网络接口的强大工具,允许您查看和配置接口的属性,以及创建虚拟网络接口来满足不同的网络需求。这对于网络管理和配置非常有用。

显示ip地址

当涉及到 Linux 中的 ip 命令时,可以更详细地介绍它的功能和用法:

ip 命令的主要功能包括:

  1. 网络接口管理ip link 子命令用于管理网络接口的状态和属性。
    • ip link show:显示系统上所有网络接口的信息,包括名称、MAC地址、状态、MTU 等。
    • ip link set:用于配置网络接口的属性,如启用/禁用接口、更改MAC地址、设置MTU 等。
    • ip link add:用于添加新的虚拟网络接口或设备,如虚拟网桥、隧道等。
  2. IP 地址管理ip address 子命令用于配置和管理网络接口的 IP 地址。
    • ip address add:将 IP 地址添加到网络接口。
    • ip address delete:从网络接口中删除 IP 地址。
    • ip address show:显示网络接口的 IP 地址信息。
  3. 路由管理ip route 子命令用于管理系统的路由表。
    • ip route add:添加路由规则到路由表,包括默认路由。
    • ip route delete:从路由表中删除路由规则。
    • ip route show:显示路由表中的路由规则,包括下一跳、目标网络等信息。
  4. 邻居缓存管理ip neigh 子命令用于管理邻居(ARP、NDP)缓存表。
    • ip neigh add:手动添加邻居(如 ARP 缓存)。
    • ip neigh delete:从邻居缓存表中删除邻居。
    • ip neigh show:显示邻居缓存表的内容。
  5. 网络隧道管理ip tunnel 子命令用于创建和管理网络隧道。
    • ip tunnel add:添加一个网络隧道,如 GRE、IPsec 隧道。
    • ip tunnel delete:删除网络隧道。
    • ip tunnel show:显示网络隧道的信息。
  6. 策略路由管理ip rule 子命令用于管理策略路由规则。
    • ip rule add:添加策略路由规则,用于根据源地址、类型 of service 等条件选择不同的路由表。
    • ip rule delete:删除策略路由规则。
    • ip rule show:显示策略路由规则。

ip 命令是非常强大的工具,可以用于配置、管理和故障排除网络设置。它允许系统管理员精确控制网络接口、IP 地址、路由规则以及其他网络参数。通过使用不同的子命令和选项,您可以根据需求执行各种网络管理任务。对于网络工程师和系统管理员来说,ip 命令是一个必不可少的工具,用于管理和维护复杂的网络基础设施。

例子

[root@localhost network-scripts]# ping -c3 192.168.150.2
PING 192.168.150.2 (192.168.150.2) 56(84) bytes of data.
64 bytes from 192.168.150.2: icmp_seq=1 ttl=128 time=0.264 ms
64 bytes from 192.168.150.2: icmp_seq=2 ttl=128 time=0.305 ms
64 bytes from 192.168.150.2: icmp_seq=3 ttl=128 time=0.388 ms

--- 192.168.150.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2078ms
rtt min/avg/max/mdev = 0.264/0.319/0.388/0.051 ms


[root@localhost network-scripts]# ip -s link show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:56:15:f2 brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
         73735     874      0       0       0       0
    TX:  bytes packets errors dropped carrier collsns
         50554     462      0       0       0       0
    altname enp3s0

您提供的输出是 ip -s link show ens160 命令的结果,该命令用于显示有关网络接口 ens160 的详细统计信息。以下是对输出的详细解释:

plaintext 复制代码
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:56:15:f2 brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast
         73735     874      0       0       0       0
    TX:  bytes packets errors dropped carrier collsns
         50554     462      0       0       0       0
    altname enp3s0
  • 2:接口编号,这是系统中的第二个接口。
  • ens160:接口名称,您查询的接口。
  • <BROADCAST,MULTICAST,UP,LOWER_UP>:接口的状态和特性,解释如下:
    • BROADCAST:表示接口支持广播。
    • MULTICAST:表示接口支持多播。
    • UP:表示接口已启用。
    • LOWER_UP:表示链路层连接已建立。
  • mtu 1500:最大传输单元(MTU),指定接口支持的最大数据包大小。
  • qdisc mq:队列调度器,mq 表示多队列。
  • state UP:接口的状态是 UP,表示它是激活的。
  • mode DEFAULT:接口的操作模式,默认为 DEFAULT。
  • group default:接口所属的网络组,默认为 default。
  • qlen 1000:发送队列的长度,表示接口可以排队等待传输的数据包数量。
  • link/ether 00:0c:29:56:15:f2:接口的MAC地址,即物理地址。

接下来,输出分为两个部分,分别是接收(RX)和发送(TX)统计信息:

  RX

部分包括:

  • bytes:接收的字节数。
  • packets:接收的数据包数量。
  • errors:接收中的错误数据包数量。
  • dropped:接收中丢弃的数据包数量。
  • missed:接收中未接收的数据包数量。
  • mcast:多播数据包数量。
  TX

部分包括:

  • bytes:发送的字节数。
  • packets:发送的数据包数量。
  • errors:发送中的错误数据包数量。
  • dropped:发送中丢弃的数据包数量。
  • carrier:发送中由于载波问题丢弃的数据包数量。
  • collsns:发送中由于冲突丢弃的数据包数量。
  • altname enp3s0:接口的备用名称(如果存在)。

这个输出提供了关于接口 ens160 的各种统计信息,包括传输和接收数据包的数量、错误数量、MAC地址、状态等。这些信息可用于监视和故障排除网络接口。

路由故障排除

  • 显示路由表

    ip route1

  • 追踪流量采用的路由

追踪命令

win命令

在Windows操作系统中,您可以使用不同的工具来追踪网络流量,以便进行网络分析、故障排除或监视网络连接。以下是一些常见的工具和方法:

  1. Pingping 是一个简单的工具,用于测试与目标主机的网络连接。它发送 ICMP 请求到目标主机并等待回复。通过运行 ping 命令,您可以查看与目标主机之间的网络可达性以及往返时间。

    例如:

    ping google.com
    
  2. Traceroutetracerttraceroute 命令用于跟踪网络数据包在到达目标主机之前经过的路由器。它显示每个跃点(hop)的 IP 地址和延迟时间。

    例如:

    tracert google.com
    
  3. Wireshark:Wireshark 是一个功能强大的网络协议分析工具,可以捕获、分析和展示网络流量。您可以使用 Wireshark 来查看传输的数据包、了解通信协议以及进行深入的网络分析。

  4. TCPView:TCPView 是一个 Windows 实用程序,可以显示所有正在运行的 TCP 和 UDP 连接,以及它们的状态、本地端口和远程地址。

  5. Netstatnetstat 命令用于检查网络接口、路由表、打开的连接等网络相关信息。它可以提供有关当前网络状态的详细信息。

    例如:

    netstat -an
    
  6. Resource Monitor:Windows Resource Monitor(资源监视器)是一个内置工具,可提供有关网络连接、流量和性能的实时信息。您可以在任务管理器中找到 Resource Monitor。

  7. 网络抓包工具:除了 Wireshark 外,还有其他一些网络抓包工具,如 Microsoft Network Monitor,用于捕获和分析网络流量。

这些工具可以帮助您监视、分析和追踪网络流量,以便进行网络故障排除、性能优化和安全审计。根据您的需求和技能水平,选择适合您的工具来进行网络流量追踪。

linux命令

在Linux中,您可以使用多种工具来追踪和监视网络流量,以便了解数据包的传输情况、网络性能和网络故障。以下是一些用于追踪流量的常见工具和方法:

  1. Wireshark:Wireshark 是一个流行的网络协议分析器,它可以捕获和分析网络数据包。您可以使用 Wireshark 来查看实时的流量,分析协议、端口和数据包内容,以识别问题和监控网络性能。

    安装 Wireshark:

    bash 复制代码
    sudo apt-get install wireshark  # 对于 Debian/Ubuntu
    sudo yum install wireshark  # 对于 CentOS/RHEL

    使用 Wireshark 需要管理员权限,因此您可能需要使用 sudo 来运行它。

  2. tcpdumptcpdump 是一个命令行工具,用于捕获和显示网络数据包。它可以过滤数据包以便仅显示特定的流量。以下是一个简单的示例,捕获所有传入和传出接口 eth0 的HTTP流量:

    bash 复制代码
    sudo tcpdump -i eth0 -s 0 -A 'tcp port 80'
  3. iftopiftop 是一个用于实时监视网络接口流量的命令行工具。它显示连接、数据流量和带宽使用情况,并允许您按流量进行排序。

    安装 iftop:

    bash 复制代码
    sudo apt-get install iftop  # 对于 Debian/Ubuntu
    sudo yum install iftop  # 对于 CentOS/RHEL

    运行 iftop

    bash 复制代码
    sudo iftop -i eth0
  4. nloadnload 是另一个命令行工具,用于实时监视网络流量。它以图形形式显示带宽使用情况和数据流量。

    安装 nload:

    bash 复制代码
    sudo apt-get install nload  # 对于 Debian/Ubuntu
    sudo yum install nload  # 对于 CentOS/RHEL

    运行 nload

    bash 复制代码
    sudo nload -i eth0
  5. netstatnetstat 命令用于查看系统的网络统计信息,包括活动连接、端口状态等。您可以使用 netstat 来监视活动连接和端口占用情况。

    示例:显示所有活动的TCP连接。

    bash 复制代码
    netstat -tuln
  6. traceroute

  7. tracepath 显示本地和****网址之间的所有跃点

这些工具可以帮助您追踪和监视网络流量,以诊断问题、分析性能和了解网络中正在发生的事情。选择合适的工具取决于您的需求和个人偏好。请注意,在使用这些工具时需要适当的权限,通常需要使用 sudo 或具有网络权限的用户才能访问。

端口和服务故障排除

配置网络

命令行配置网络

nmcli 是 NetworkManager 的命令行工具,用于配置和管理网络连接,包括以太网、Wi-Fi、VPN 等。nmcli 提供了在终端中轻松管理网络连接的方法。以下是对 nmcli 命令的详细解释:

基本语法

shell 复制代码
nmcli [OPTIONS] OBJECT {COMMAND} {ARGUMENTS}

常用 OBJECT 和 COMMAND

  1. connection :管理网络连接。
    • show:显示所有可用的网络连接。
    • add:添加新的网络连接配置。
    • modify:修改现有网络连接配置。
    • delete:删除网络连接配置。
  2. device :管理网络设备(例如,以太网卡、Wi-Fi 网卡)。
    • show:显示所有网络设备的详细信息。
    • connect:连接到指定的网络。
    • disconnect:断开与指定网络的连接。
  3. wifi :管理 Wi-Fi 网络。
    • list:列出可用的 Wi-Fi 网络。
    • connect:连接到指定的 Wi-Fi 网络。
    • rescan:重新扫描可用的 Wi-Fi 网络。
  4. vpn :管理 VPN 连接。
    • show:显示可用的 VPN 连接。
    • connect:连接到指定的 VPN 服务。
    • disconnect:断开 VPN 连接。

示例用法

  1. 查看网络连接

    shell 复制代码
    nmcli connection show

    这将列出所有可用的网络连接,包括以太网、Wi-Fi 和 VPN 连接。

  2. 连接到 Wi-Fi 网络

    shell 复制代码
    nmcli device wifi connect SSID password PASSWORD

    其中,SSID 是要连接的 Wi-Fi 网络名称,PASSWORD 是网络密码。

  3. 配置静态 IP 地址

    shell 复制代码
    nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.address 192.168.1.100/24

    这将更改名为 "Wired connection 1" 的连接,将其配置为使用静态 IP 地址。

  4. 连接到 VPN 服务

    shell 复制代码
    nmcli connection up "My VPN Connection"

    这将建立名为 "My VPN Connection" 的 VPN 连接。

  5. 断开连接

    shell 复制代码
    nmcli connection down "Wired connection 1"

    这将断开名为 "Wired connection 1" 的网络连接。

nmcli 提供了丰富的选项和功能,用于管理各种网络连接和设备。通过命令行界面,您可以轻松配置网络设置、连接到 Wi-Fi、VPN 服务以及监视网络状态。要获取更多关于 nmcli 的信息和帮助,请运行 man nmclinmcli --help

添加网络连接

百战RHCE(第十四战:Linux进阶命令十一-nmcli 配置网络极简管理)_是小天才哦的博客-CSDN博客

"nmcli gen permission"命令查看自己的当前的权限

ethernet

在Linux中,"Ethernet" 是一种计算机网络技术,通常用于本地区域网络(LAN)连接。Ethernet 是一种标准化的有线局域网协议,用于在计算机、服务器、交换机、路由器等设备之间传输数据包。它通常使用双绞线电缆或光纤作为物理传输介质,可以支持不同的数据传输速率,例如 10 Mbps、100 Mbps、1 Gbps、10 Gbps 等。

Ethernet 使用一种称为CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多点接入/冲突检测)的协议来控制多个设备在同一网络上进行数据传输。它允许多个设备共享同一物理网络,并根据需要传输数据包。

Ethernet协议家族包括不同的标准和速率,如:

  1. Ethernet 10Base-T: 最早的Ethernet标准,速率为10 Mbps,使用双绞线电缆。
  2. Fast Ethernet (100Base-TX): 速率为100 Mbps,也使用双绞线电缆。
  3. Gigabit Ethernet (1000Base-T): 速率为1 Gbps,同样使用双绞线电缆。
  4. 10 Gigabit Ethernet: 速率为10 Gbps,通常使用光纤。
  5. **以太网还支持更高速率的变体,如25 Gbps和40 Gbps以太网等。

Ethernet广泛用于各种网络环境,包括家庭网络、企业网络、数据中心和互联网提供商的网络。在Linux中,Ethernet设备通常用于连接计算机到网络中,以便实现数据通信和访问Internet。网络设备、驱动程序和协议栈都支持以太网标准,使Linux计算机能够与以太网网络设备进行通信。Ethernet也是局域网中最常见的网络技术之一。

描述连接配置文件

相关推荐
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程5 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon6 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon6 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录6 小时前
RPC核心实现原理
网络·网络协议·rpc
Lionhacker7 小时前
网络工程师这个行业可以一直干到退休吗?
网络·数据库·网络安全·黑客·黑客技术
程思扬8 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
ZachOn1y8 小时前
计算机网络:运输层 —— 运输层概述
网络·tcp/ip·计算机网络·运输层