网络基础
/etc/services
/etc/services
文件是Linux系统中的一个文本文件,它包含了网络服务和端口号的映射关系,用于在网络通信中识别和管理不同的网络服务。以下是关于 /etc/services
文件的详细解释:
- 文件位置 :
/etc/services
文件通常位于Linux系统中的/etc
目录下。
- 文件格式 :
/etc/services
文件的格式相对简单,每一行包含两个字段:服务名称和端口号(以及可选的协议)。这两个字段由制表符或空格分隔。- 示例行:
servicename port/protocol
- 服务名称 :
- 服务名称是网络服务的人类可读标识,通常是服务的常用名字。例如,HTTP服务的服务名称是 "http",SSH服务的服务名称是 "ssh"。
- 这些服务名称被用于配置和识别网络应用程序和服务。
- 端口号 :
- 端口号是一个16位整数,用于标识网络通信中的端口。端口号通常与服务一起使用,以确定应该将网络流量路由到哪个应用程序或服务。
- 通常,端口号的范围从0到65535,其中0到1023的端口号被称为 "Well-Known Ports",用于常见的标准服务,如HTTP(80端口)和HTTPS(443端口)。
- 协议 :
/etc/services
文件中的每一行还可以包含可选的协议字段,用于指定服务所使用的协议。如果未指定协议,默认情况下通常是TCP或UDP。- 例如,如果某个服务在TCP和UDP上都运行,那么它可能在
/etc/services
中有两行,一行指定TCP协议,另一行指定UDP协议。
- 用途 :
/etc/services
文件用于各种网络工具和应用程序,以便它们可以查找网络服务的端口号。当您配置防火墙、网络服务或其他网络应用时,这个文件非常有用。
- 维护 :
/etc/services
文件通常由系统管理员或网络管理员手动维护。如果您需要添加或更改特定服务的端口号,您可以编辑此文件。
总之,/etc/services
文件用于映射网络服务的人类可读名称到其对应的端口号,以便网络应用程序能够正确识别和连接到这些服务。这对于网络配置和安全设置非常重要。
IPv4路由
例子:
IPv4地址和路由配置
在Linux系统中,IPv4地址和路由配置是非常重要的,因为它们决定了网络通信如何在系统上工作。以下是IPv4地址和路由配置的详细解释:
IPv4地址配置:
-
静态地址和动态地址:
- 在Linux系统上,可以使用静态(手动配置)或动态(DHCP等协议自动分配)方式来配置IPv4地址。
-
静态地址配置:
-
静态IPv4地址需要手动配置,通常在网络接口的配置文件中进行。主要文件是
/etc/network/interfaces
(Debian/Ubuntu)或/etc/sysconfig/network-scripts/ifcfg-<interface>
(CentOS/RHEL)。 -
配置示例(Debian/Ubuntu):
plaintextauto eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1
-
这个示例配置了一个名为
eth0
的接口,设置了IPv4地址、子网掩码和默认网关。
-
-
动态地址配置:
- 动态IPv4地址通过DHCP协议从DHCP服务器自动获取。大多数Linux系统默认启用DHCP,但您可以在网络配置中禁用它。
- DHCP客户端通常是
dhclient
(Debian/Ubuntu)或dhclient
(CentOS/RHEL)。
-
查看IP地址:
- 使用
ifconfig
(旧版本)或ip addr
(新版本)命令来查看当前网络接口的IP地址。
- 使用
IPv4路由配置:
-
静态路由:
-
静态路由是手动配置的路由规则,用于指示数据包的下一跳。它们通常在
/etc/network/interfaces
或/etc/sysconfig/network-scripts/route-<interface>
文件中配置。 -
配置示例(Debian/Ubuntu):
plaintextup 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。
-
-
动态路由:
- 动态路由是由路由协议自动学习和更新的路由规则,如RIP、OSPF和BGP。通常,这些协议由路由器或网络设备来管理。
-
查看路由表:
- 使用
route
(旧版本)或ip route
(新版本)命令来查看当前系统的路由表。
- 使用
-
路由配置文件:
- 静态路由可以在系统引导时从文件中加载。在Debian/Ubuntu中,配置文件是
/etc/network/interfaces
;在CentOS/RHEL中,配置文件是/etc/sysconfig/network-scripts/route-<interface>
。
- 静态路由可以在系统引导时从文件中加载。在Debian/Ubuntu中,配置文件是
-
默认网关:
- 默认网关是一个特殊的路由,它用于将数据包发送到不在本地子网的目标。默认网关通常在接口配置中设置,如前面的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
网络接口的详细解释:
2: ens160
- 这是网络接口的名称,通常是物理网络接口的命名。<BROADCAST,MULTICAST,UP,LOWER_UP>
- 这是接口的状态和属性的说明:
BROADCAST
表示这个接口支持广播。MULTICAST
表示这个接口支持多播。UP
表示这个接口当前是启动状态。LOWER_UP
表示链路层(L2)接口也是启动状态。mtu 1500
- 这是该接口的最大传输单元(MTU),它表示可以传输的数据包的最大大小。MTU 1500是以太网上的标准值。qdisc mq
- 这表示网络队列调度器(qdisc)的配置。mq
通常用于多队列(MultiQueue)网络接口。state UP
- 这表示网络接口的状态是 "UP",即接口处于激活状态,可以传输数据。group default qlen 1000
- 这表示接口所属的网络控制组(Cgroup),以及接口队列长度。link/ether 00:0c:29:56:15:f2
- 这是网络接口的以太网物理地址(MAC地址)。altname enp3s0
- 这是替代名称(alternative name),在某些情况下,系统可能使用enp3s0
作为接口的替代名称。inet 192.168.150.213/24
- 这是接口的IPv4地址配置,包括IP地址192.168.150.213
、子网掩码/24
(也就是255.255.255.0)以及广播地址192.168.150.255
。这是主要的IPv4地址。inet 192.168.150.134/24
- 这是接口的第二个IPv4地址配置,包括IP地址192.168.150.134
、子网掩码/24
和一些其他信息。这是一个动态分配的次要IPv4地址。inet6 fe80::20c:29ff:fe56:15f2/64
- 这是接口的IPv6地址配置,表示IPv6链路本地地址。总之,这段输出提供了关于
ens160
网络接口的详细信息,包括接口状态、MAC地址、IPv4和IPv6地址配置等。这些信息对于了解网络接口的配置和状态非常重要。
IPv6路由
在Linux中,IPv6路由是网络通信的关键组成部分,它确定了IPv6数据包如何在不同网络之间传输。以下是有关IPv6路由的详细解释:
- IPv6路由表 :
- 与IPv4一样,Linux系统维护一个IPv6路由表,用于存储路由信息。您可以使用
ip -6 route
或netstat -rn -6
命令来查看IPv6路由表。
- 与IPv4一样,Linux系统维护一个IPv6路由表,用于存储路由信息。您可以使用
- 默认路由 :
- 默认路由是指用于发送数据包到达未知目标的路由。默认路由通常由Internet服务提供商(ISP)提供,或者在本地网络中手动配置。
- 静态路由 :
- 静态路由是手动配置的路由规则,用于指示数据包的下一跳。静态路由可以通过命令行工具或配置文件添加。
- 例如,您可以使用
ip -6 route add
命令添加静态IPv6路由。
- 动态路由 :
- 动态IPv6路由是由路由协议自动学习和更新的路由规则,如OSPFv3、RIPng、BGP等。通常,这些协议由网络设备或路由器来管理。
- 路由优先级 :
- 在IPv6路由表中,每个路由条目都有一个与之关联的优先级。这些优先级确定了系统在多个匹配路由时应该选择哪一个。
- 本地链路路由 :
- 本地链路路由用于在同一网络上的设备之间进行通信。这些路由是自动生成的,无需手动配置。
- 站点本地路由 :
- 站点本地路由允许在特定站点(组织内的多个网络)内进行通信。它们通常在企业或组织网络中使用,可以通过静态或动态路由配置。
- 多播组路由 :
- 多播组路由用于多播通信,允许数据包传输到多个目标设备。IPv6支持多播通信,并使用多播组地址进行路由。
- 路由表规则 :
- Linux还支持路由表规则(route table rules)的设置,这允许根据特定的条件(如源地址、接口、类型 of service 等)为数据包选择不同的路由表。
总之,IPv6路由是确保IPv6数据包在不同网络之间正确传输的重要组成部分。Linux系统维护一个路由表,其中包含各种路由规则,包括默认路由、静态路由、动态路由等。这些路由规则帮助数据包到达其目标,同时路由优先级和路由表规则也对路由选择起到重要作用。
主机名和IP地址
hosts、resolv.conf
在Linux系统中,/etc/hosts
和 /etc/resolv.conf
是两个重要的配置文件,它们分别用于主机名解析和DNS配置。以下是对这两个文件的详细解释:
-
/etc/hosts:
-
/etc/hosts
是一个文本文件,用于将主机名与IP地址进行手动映射,以便系统能够在本地环境中解析主机名。这个文件允许您在本地系统中定义主机名到IP地址的映射关系,而不依赖于DNS服务器。 -
格式:每行包括一个IP地址和一个或多个主机名,用空格或制表符分隔。通常,它的格式如下:
IP地址 主机名 [别名...]
-
例子:
plaintext127.0.0.1 localhost 192.168.1.100 myserver mywebserver
-
/etc/hosts
文件允许您设置本地环境中的自定义主机名映射,用于解析主机名到IP地址。这在没有可用DNS服务器或需要特定本地解析规则时非常有用。
-
-
/etc/resolv.conf:
-
/etc/resolv.conf
是一个文本文件,用于配置系统的DNS解析器(resolver)的行为。它定义了系统用于解析主机名和域名的DNS服务器和搜索域(search domains)。 -
格式:常见的
/etc/resolv.conf
文件包括以下信息:nameserver DNS服务器IP地址 domain 搜索域 search 搜索域1 搜索域2
-
例子:
plaintextnameserver 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
命令的详细解释:基本用法:
baship link [subcommand] [options]
常见的子命令:
show
或不带子命令:显示系统上所有网络接口的信息。
baship link show
这将列出所有网络接口的详细信息,包括名称、MAC地址、状态、MTU(最大传输单元)等。
set
:用于配置网络接口的属性,如启用或禁用接口、更改MAC地址、设置MTU等。
baship link set <interface> [options]
示例:禁用接口
eth0
。
baship link set eth0 down
up
和down
:分别用于启用和禁用网络接口。
baship link set <interface> up
示例:启用接口
eth0
。
baship link set eth0 up
set
子命令还可以用于设置接口的MAC地址,MTU,QLen,等等。
baship link set <interface> address <new-MAC> ip link set <interface> mtu <new-MTU>
示例:更改接口
eth0
的MAC地址。
baship link set eth0 address 00:11:22:33:44:55
add
:用于添加新的虚拟网络接口或设备。
baship link add <interface-name> type <interface-type> [options]
示例:添加一个虚拟网桥接口
br0
。
baship 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
命令的主要功能包括:
- 网络接口管理 :
ip link
子命令用于管理网络接口的状态和属性。ip link show
:显示系统上所有网络接口的信息,包括名称、MAC地址、状态、MTU 等。ip link set
:用于配置网络接口的属性,如启用/禁用接口、更改MAC地址、设置MTU 等。ip link add
:用于添加新的虚拟网络接口或设备,如虚拟网桥、隧道等。
- IP 地址管理 :
ip address
子命令用于配置和管理网络接口的 IP 地址。ip address add
:将 IP 地址添加到网络接口。ip address delete
:从网络接口中删除 IP 地址。ip address show
:显示网络接口的 IP 地址信息。
- 路由管理 :
ip route
子命令用于管理系统的路由表。ip route add
:添加路由规则到路由表,包括默认路由。ip route delete
:从路由表中删除路由规则。ip route show
:显示路由表中的路由规则,包括下一跳、目标网络等信息。
- 邻居缓存管理 :
ip neigh
子命令用于管理邻居(ARP、NDP)缓存表。ip neigh add
:手动添加邻居(如 ARP 缓存)。ip neigh delete
:从邻居缓存表中删除邻居。ip neigh show
:显示邻居缓存表的内容。
- 网络隧道管理 :
ip tunnel
子命令用于创建和管理网络隧道。ip tunnel add
:添加一个网络隧道,如 GRE、IPsec 隧道。ip tunnel delete
:删除网络隧道。ip tunnel show
:显示网络隧道的信息。
- 策略路由管理 :
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
的详细统计信息。以下是对输出的详细解释:
plaintext2: 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操作系统中,您可以使用不同的工具来追踪网络流量,以便进行网络分析、故障排除或监视网络连接。以下是一些常见的工具和方法:
-
Ping :
ping
是一个简单的工具,用于测试与目标主机的网络连接。它发送 ICMP 请求到目标主机并等待回复。通过运行ping
命令,您可以查看与目标主机之间的网络可达性以及往返时间。例如:
ping google.com
-
Traceroute :
tracert
或traceroute
命令用于跟踪网络数据包在到达目标主机之前经过的路由器。它显示每个跃点(hop)的 IP 地址和延迟时间。例如:
tracert google.com
-
Wireshark:Wireshark 是一个功能强大的网络协议分析工具,可以捕获、分析和展示网络流量。您可以使用 Wireshark 来查看传输的数据包、了解通信协议以及进行深入的网络分析。
-
TCPView:TCPView 是一个 Windows 实用程序,可以显示所有正在运行的 TCP 和 UDP 连接,以及它们的状态、本地端口和远程地址。
-
Netstat :
netstat
命令用于检查网络接口、路由表、打开的连接等网络相关信息。它可以提供有关当前网络状态的详细信息。例如:
netstat -an
-
Resource Monitor:Windows Resource Monitor(资源监视器)是一个内置工具,可提供有关网络连接、流量和性能的实时信息。您可以在任务管理器中找到 Resource Monitor。
-
网络抓包工具:除了 Wireshark 外,还有其他一些网络抓包工具,如 Microsoft Network Monitor,用于捕获和分析网络流量。
这些工具可以帮助您监视、分析和追踪网络流量,以便进行网络故障排除、性能优化和安全审计。根据您的需求和技能水平,选择适合您的工具来进行网络流量追踪。
linux命令
在Linux中,您可以使用多种工具来追踪和监视网络流量,以便了解数据包的传输情况、网络性能和网络故障。以下是一些用于追踪流量的常见工具和方法:
-
Wireshark:Wireshark 是一个流行的网络协议分析器,它可以捕获和分析网络数据包。您可以使用 Wireshark 来查看实时的流量,分析协议、端口和数据包内容,以识别问题和监控网络性能。
安装 Wireshark:
bashsudo apt-get install wireshark # 对于 Debian/Ubuntu sudo yum install wireshark # 对于 CentOS/RHEL
使用 Wireshark 需要管理员权限,因此您可能需要使用
sudo
来运行它。 -
tcpdump :
tcpdump
是一个命令行工具,用于捕获和显示网络数据包。它可以过滤数据包以便仅显示特定的流量。以下是一个简单的示例,捕获所有传入和传出接口eth0
的HTTP流量:bashsudo tcpdump -i eth0 -s 0 -A 'tcp port 80'
-
iftop :
iftop
是一个用于实时监视网络接口流量的命令行工具。它显示连接、数据流量和带宽使用情况,并允许您按流量进行排序。安装 iftop:
bashsudo apt-get install iftop # 对于 Debian/Ubuntu sudo yum install iftop # 对于 CentOS/RHEL
运行
iftop
:bashsudo iftop -i eth0
-
nload :
nload
是另一个命令行工具,用于实时监视网络流量。它以图形形式显示带宽使用情况和数据流量。安装 nload:
bashsudo apt-get install nload # 对于 Debian/Ubuntu sudo yum install nload # 对于 CentOS/RHEL
运行
nload
:bashsudo nload -i eth0
-
netstat :
netstat
命令用于查看系统的网络统计信息,包括活动连接、端口状态等。您可以使用netstat
来监视活动连接和端口占用情况。示例:显示所有活动的TCP连接。
bashnetstat -tuln
-
traceroute
-
tracepath 显示本地和****网址之间的所有跃点
这些工具可以帮助您追踪和监视网络流量,以诊断问题、分析性能和了解网络中正在发生的事情。选择合适的工具取决于您的需求和个人偏好。请注意,在使用这些工具时需要适当的权限,通常需要使用 sudo
或具有网络权限的用户才能访问。
端口和服务故障排除
配置网络
命令行配置网络
nmcli
是 NetworkManager 的命令行工具,用于配置和管理网络连接,包括以太网、Wi-Fi、VPN 等。nmcli
提供了在终端中轻松管理网络连接的方法。以下是对 nmcli
命令的详细解释:
基本语法:
shell
nmcli [OPTIONS] OBJECT {COMMAND} {ARGUMENTS}
常用 OBJECT 和 COMMAND:
- connection :管理网络连接。
show
:显示所有可用的网络连接。add
:添加新的网络连接配置。modify
:修改现有网络连接配置。delete
:删除网络连接配置。
- device :管理网络设备(例如,以太网卡、Wi-Fi 网卡)。
show
:显示所有网络设备的详细信息。connect
:连接到指定的网络。disconnect
:断开与指定网络的连接。
- wifi :管理 Wi-Fi 网络。
list
:列出可用的 Wi-Fi 网络。connect
:连接到指定的 Wi-Fi 网络。rescan
:重新扫描可用的 Wi-Fi 网络。
- vpn :管理 VPN 连接。
show
:显示可用的 VPN 连接。connect
:连接到指定的 VPN 服务。disconnect
:断开 VPN 连接。
示例用法:
-
查看网络连接:
shellnmcli connection show
这将列出所有可用的网络连接,包括以太网、Wi-Fi 和 VPN 连接。
-
连接到 Wi-Fi 网络:
shellnmcli device wifi connect SSID password PASSWORD
其中,
SSID
是要连接的 Wi-Fi 网络名称,PASSWORD
是网络密码。 -
配置静态 IP 地址:
shellnmcli connection modify "Wired connection 1" ipv4.method manual ipv4.address 192.168.1.100/24
这将更改名为 "Wired connection 1" 的连接,将其配置为使用静态 IP 地址。
-
连接到 VPN 服务:
shellnmcli connection up "My VPN Connection"
这将建立名为 "My VPN Connection" 的 VPN 连接。
-
断开连接:
shellnmcli connection down "Wired connection 1"
这将断开名为 "Wired connection 1" 的网络连接。
nmcli
提供了丰富的选项和功能,用于管理各种网络连接和设备。通过命令行界面,您可以轻松配置网络设置、连接到 Wi-Fi、VPN 服务以及监视网络状态。要获取更多关于 nmcli
的信息和帮助,请运行 man nmcli
或 nmcli --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协议家族包括不同的标准和速率,如:
- Ethernet 10Base-T: 最早的Ethernet标准,速率为10 Mbps,使用双绞线电缆。
- Fast Ethernet (100Base-TX): 速率为100 Mbps,也使用双绞线电缆。
- Gigabit Ethernet (1000Base-T): 速率为1 Gbps,同样使用双绞线电缆。
- 10 Gigabit Ethernet: 速率为10 Gbps,通常使用光纤。
- **以太网还支持更高速率的变体,如25 Gbps和40 Gbps以太网等。
Ethernet广泛用于各种网络环境,包括家庭网络、企业网络、数据中心和互联网提供商的网络。在Linux中,Ethernet设备通常用于连接计算机到网络中,以便实现数据通信和访问Internet。网络设备、驱动程序和协议栈都支持以太网标准,使Linux计算机能够与以太网网络设备进行通信。Ethernet也是局域网中最常见的网络技术之一。