一、网络协议和管理
1 网络基础
1.1 网络概念
计算机网络是一组计算机或网络设备通过有形的线缆或无形的媒介如无线,连接起来,按照一定的规则,进行通信的集合。
作用范围分类
- 广域网(WAN,Wide Area Network)
- 城域网(MAN,Metropolitan Area Network)
- 局域网(LAN,Local Area Network)
1.2 网络拓扑
- 总线拓扑:所有设备均可接收信号
- 星型拓扑:通过中心点传输,单一故障点
- 扩展星型拓扑:比星型拓扑的复原能力更强
- 环拓扑:信号绕环传输,单一故障点
- 双环拓扑:信号沿相反方向传输,比单环的复原能力更强
- 全网状拓扑:容错能力强,实施成本高
- 部分网状拓扑:在容错能力与成本之间寻求平衡
1.3 开放系统互联 OSI
1.4三种通信机制
- 单工通信:只有一个方向的通信,比如: 收音机
- 半双工通信(Half Duplex):通信双方都可以发送和接收信息,但不能同时发送,也不能同时接收,比如:对讲机
- 全双工通信(Full Duplex):通信双方可以同时发送和同时接收,比如: 手机
bash
#查看网络是否在连通状态
#查看网络是半双工还是全双工
[root@rocky01 ~]# mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
[root@rocky01 ~]# ethtool eth0 |grep -E "Duplex|Link"
Duplex: Full
Link detected: yes
二、局域网
1 概述
1.1 特点
- 网络为一个单位所拥有
- 地理范围和站点数目均有限
1.2 主要功能
- 资源共享和数据通信
1.3 无线网络标准
- 802.11b — WiFi 1 (1999)
- 802.11a — WiFi 2 (1999)
- 802.11g — WiFi 3 (2003)
- 802.11n — WiFi 4 (2009)
- 802.11ac — WiFi 5(2014)
- 802.11ax — WiFi 6(2018)
2 集线器与交换机的比较
- 交换机属于数据链路层设备,而集线器属于物理层设备
- 集线器在转发帧时,不对传输介质进行检测,交换机在转发帧之前必须执行 CSMA/CD 算法。若在
- 发送过程中出现碰撞,就必须停止发送和进行退避。所以交换机能隔离冲突,而集线器却只能增加冲突
- 交换机的每个端口可提供专用的带宽,而集线器的所有端口只能共享带宽
- 集线器只能实现半双工传送,而交换机可支持全双工传送
- 集线器和交换机都无法隔离广播域
3 MAC地址
- 在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)
- IEEE 802标准为局域网规定了一种48位的全球地址(一般都简称为“地址”),是局域网中每一台计算机固化在网卡ROM中的地址
- IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)
- 地址字段中的后三个字节(即低位 24 位)由厂家自行指派,称为扩展标识符,必须保证生产出的适配器没有重复地址
4 虚拟局域网 VLAN
- 虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组
- 这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是
- 属于哪一个 VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网
优点
- 更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下降。VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能
- 简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成
- 网络设备的逻辑组,无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机
- 提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧虚拟局域网的实现技术
- 基于端口的VLAN
- 基于MAC地址的VLAN
- 基于协议的VLAN
- 基于网络地址的VLAN
三、TCP/IP 协议栈
1 TCP
特性:
- 工作在传输层
- 面向连接协议
- 全双工协议
- 半关闭
- 将数据打包成段,排序
- 确认机制
- 数据恢复,重传
- 错误检查
- 流量控制,滑动窗口
- 拥塞控制,慢启动和拥塞避免算法
更多关于tcp的内核参数,可参看man 7 tcp
1.1 TCP三次握手
个人理解:
TCP/IP是传输层的一个面向连接的安全可靠的一个传输协议
三次握手的机制是为了保证能建立一个安全可靠的连接,第一次握手是由客户端发起,客户端会向服务端发送一个报文,在这个报文里面:SYN标志位是为1的,表示发起新的连接。当服务端收到这个报文之后就知道客户端要跟我发起一个新的连接,于是,服务端就向客户端发送一个确认消息包,在这个确认消息包里面:ACK标志位是为1的,表示确认客户端发起的第一次连接请求。以上两次握手之后,对于客服端而言:它已经知道了它既能给服务端发消息,还能收到服务端的消息)。但对于服务端而言,两次握手是不够的,因为到目前为止,服务端只知道一件事情,就是客户端给我的消息我能收到,但是我发给客户端的消息,客户端能不能收到我是不知道的,所以还要进行第三次握手。第三次握手就是当客户端收到服务端发过来的确认消息的报文之后,还要继续给服务端一个回应,也是一个ACK标志位为1的确认消息。通过以上三次连接,不管是服务端还是客户端,都彼此知道了我既能给对方发消息,也能够收到对方的消息,那么这个连接就可以被安全的建立了
1.2 TCP四次挥手
个人理解:
四次挥手假如是客户端首次发起的,那么客户端会发送一个报文,在报文里面FIN标志位为1。当服务端收到这个报文之后,它就知道客户端想要和我断开连接,但是这个时候,服务端不一定能做好准备,因为当客户端发起断开连接的这个消息的时候,对于服务端而言,他可能还有未发送完的消息,他还要继续发送,所以此时对于服务端而言,服务端只能进行一个消息确认。发完这个消息确认包之后,可能要稍等一会,他就会继续发送一个断开连接的FIN标志位也是为1的报文,这个报文表示了服务端已经做好了断开连接的准备,那么当这个报文发给客户端的时候,客户端同样要给服务端继续发送一个确认消息的报文,通过这四次的相互沟通和连接,就可以知道了不管是客户端还是服务端,都已经做好了断开连接的准备,于是,连接就可以被断开了。
1.3 sync半连接和accept全连接队列
bash
/proc/sys/net/ipv4/tcp_max_syn_backlog #未完成连接队列大小,默认值128,建议调整大小为1024以上
/proc/sys/net/core/somaxconn #完成连接队列大小, 默认值128,建议调整大小为1024以上
1.4 TCP超时重传
bash
/proc/sys/net/ipv4/tcp_retries1 #指定在底层IP接管之前TCP最少执行的重传次数,默认值是3
/proc/sys/net/ipv4/tcp_retries2 #指定连接放弃前TCP最多可以执行的重传次数,默认值15(一般对应13~30min)
2 UDP
特性:
- 工作在传输层
- 提供不可靠的网络访问
- 非面向连接协议
- 有限的错误检查
- 传输性能高
- 无数据恢复特性
更多关于udp的内核参数,可参看man 7 udp
3 ARP
ARP 地址解析协议由互联网工程任务组(IETF)在1982年11月发布的RFC 826中描述制定,是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存
范例:ARP 表
bash
[root@rocky01 ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
10.0.0.129 ether 00:0c:29:d6:c4:8c C eth0
10.0.0.254 ether 00:50:56:f3:e0:25 C eth0
10.0.0.1 ether 00:50:56:c0:00:08 C eth0
10.0.0.2 ether 00:50:56:ec:61:49 C eth0
范例:ARP静态绑定可以防止ARP欺骗
bash
[root@rocky01 ~]# arp -s 10.0.0.88 0a:0b:0c:1a:1b:1c
[root@rocky01 ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
10.0.0.129 ether 00:0c:29:d6:c4:8c C eth0
10.0.0.254 ether 00:50:56:f3:e0:25 C eth0
10.0.0.1 ether 00:50:56:c0:00:08 C eth0
10.0.0.2 ether 00:50:56:ec:61:49 C eth0
10.0.0.88 ether 0a:0b:0c:1a:1b:1c CM eth0
范例:kali 系统实现 arp 欺骗上网流量劫持
bash
#启动路由转发功能
[root@kali ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
#安装包
[root@kali ~]# apt-get install dsniff
#欺骗目标主机,本机是网关
[root@kali ~]# arpspoof -i eth0 -t 被劫持的目标主机IP 网关IP
#欺骗网关,本机是目标主机
[root@kali ~]# arpspoof -i eth0 -t 网关IP 被劫持的目标主机IP
范例:发现IP冲突的主机
bash
[root@rocky01 ~]# arping 10.0.0.6
ARPING 10.0.0.6 from 10.0.0.8 eth0
Unicast reply from 10.0.0.6 [00:0C:29:E0:2F:37] 0.779ms
Unicast reply from 10.0.0.6 [00:0C:29:32:80:38] 0.798ms
Unicast reply from 10.0.0.6 [00:0C:29:32:80:38] 0.926ms
Unicast reply from 10.0.0.6 [00:0C:29:32:80:38] 0.864ms
^CSent 3 probes (1 broadcast(s))
Received 4 response(s)
4 IP地址
公式
- 网络数=2^可变的网络ID位数
- 主机数=2^主机ID的位数-2
- 网络ID=IP与子网掩码netmask
- CIDR表示法,可以表示网络的ID的位数,IP/网络ID的位数
- netmask子网掩码: 可以表示网络ID的位数,32bit二进制,对应于网络ID的位为1,对应于主机ID的位为0
- 划分子网:网络ID向主机借位,如果借N位,则划分2^N个子网
4.1 IP地址组成
它们可唯一标识 IP 网络中的每台设备 ,每台主机(计算机、网络设备、外围设备)必须具有唯一的地址
IP地址由两部分组成
- 网络 ID:标识网络,每个网段分配一个网络ID,处于高位
- 主机 ID:标识单个主机,由组织分配给各设备,处于低位
IPv4地址格式:点分十进制记法
4.2 IP地址分类
A类:
- 0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z
- 网络ID位是最高8位,主机ID是24位低位
- 网络数:126=2^7(可变是的网络ID位数)-2
- 每个网络中的主机数:2^24-2=16777214
- 默认子网掩码:255.0.0.0
- 私网地址:10.0.0.0
- 范例:114.114.114.114,8.8.8.8,1.1.1.1,123.56.174.200,119.29.29.29
B类:
- 10 000000 - 10 111111.X.Y.Z:128-191.X.Y.Z
- 网络ID位是最高16位,主机ID是16位低位
- 网络数:2^14=16384
- 每个网络中的主机数:2^16-2=65534
- 默认子网掩码:255.255.0.0 私网地址:172.16.0.0-172.31.0.0
- 范例:180.76.76.76,172.16.0.1
C类:
- 110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z
- 网络ID位是最高24位,主机ID是8位低位
- 网络数:2^21=2097152
- 每个网络中的主机数:2^8-2=254
- 默认子网掩码:255.255.255.0
- 私网地址:192.168.0.0-192.168.255.0
- 范例: 223.6.6.6,223.5.5.5
D类:组(多)播,1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z
E类:保留未使用,240-255
4.3 公共和私有IP地址
- 私有IP地址:不直接用于互联网,通常在局域网中使用
- 公共IP地址:互联网上设备拥有的唯一地址
4.4 特殊地址
- 0.0.0.0
0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络
- 255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机
- 127.0.0.1~127.255.255.254
本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的 数据包
- 224.0.0.0到239.255.255.255
组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 路由器,地址
多用于一些特定的程序以及多媒体程序
- 169.254.x.x
如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主
机分配这样地址
4.5 子网掩码
CIDR:无类域间路由,目前的网络已不再按A,B,C类划分网段,可以任意指定网段的范围
CIDR 无类域间路由表示法:IP/网络ID位数,如:172.16.0.100/16
netmask子网掩码:32位或128位(IPv6)的数字,和IP成对使用,用来确认IP地址中的网络ID和主机ID,对应网络ID的位为1,对应主机ID的位为0,范例:255.255.255.0 ,表现为连续的高位为1,连续的低位为0
4.6 划分子网
划分子网:将一个大的网络(主机数多)划分成多个小的网络(主机数少),主机ID位数变少,网络ID位数变多,网络ID位向主机ID位借n位,将划分2^n个子网
中国移动划分子网
bash
范例:
中国移动10.0.0.0/8 给32个各省公司划分对应的子网
(1)每个省公司的子网的netmask? 2^5>=32 借5位网络ID
8+5=13
255.248.0.0
(2)每个省公司的子网的主机数有多少?
2^(32-13)-2=524286
(3)河南省得到第10个子网,网络ID?
10.00000 000.0.0/13
10.01001 000.0.0/13
10.72.0.0/13
(4)河南省得到第10个子网的最小IP和最大的IP?
10.01001 000.0.1
10.01001 111.11111111.11111110
10.72.0.1---10.79.255.254
(5)所有子网中最大,最小的子网的netid?
10.00000 000.0.0/13 10.0.0.0/13
10.11111 000.0.0/13 10.248.0.0/13
4.7 DHCP 动态主机配置协议
四、 Centos/Rocky网络配置
1 基本网络配置
将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
- 主机名
- IP/netmask
- 路由:默认网关
- DNS服务器
- 主DNS服务器
- 次DNS服务器
- 第三个DNS服务器
2 网卡名称
centos6
CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化
临时修改网卡名称
bash
[root@centos6 ~]# ip link set eth0 down
[root@centos6 ~]# ip link set eth0 name abc
[root@centos6 ~]# ip link set abc up
永久修改网卡名称
bash
/etc/udev/rules.d/70-persistent-net.rules
centos7
CentOS 7 以上版使用基于硬件,设备拓扑和设置类型命名,可以保持网卡名称的稳定
CentOS 8 中已弃用network.service,采用NetworkManager(NM)为网卡启用命令。CentOS 8 仍可以安装network.service作为网卡服务,只是默认没有安装,具体方法为: dnf install network-scripts ,不过官方已明确在下一个大版本中,将彻底放弃network.service,不建议继续使用network.service管理网络。
使用eth传统命名方式
(1)编辑/etc/default/grub配置文件,在后面添加" net.ifnames=0 ",戴尔服务器还需添加" biosdevname=0 "
bash
[root@rocky01 ~]# cat /etc/default/grub |grep GRUB_CMDLINE_LINUX=
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rl-swap rd.lvm.lv=rl/root rd.lvm.lv=rl/swap rhgb quiet net.ifnames=0"
(2)为grub2生成其配置文件
bash
[root@rocky01 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
done
(3)重启系统
3 网卡配置文件
bash
[root@rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=223.5.5.5
#一个网卡加多个地址
IPADDR1=1.1.1.1
PREFIX1=24
IPADDR2=2.2.2.2
PREFIX2=24
4 网卡配置文件生效方法
Centos6
bash
[root@centos6 ~]# service network restart
Centos7
bash
[root@centos7 ~]# systemctl restart network
Centos8和Rockey
bash
[root@rocky01 ~]# nmcli connection reload
[root@rocky01 ~]# nmcli connection up eth0
通用
bash
重启系统
reboot
5 DNS域名解析
常见公共DNS
- 180.76.76.76 百度
- 223.5.5.5 阿里
- 119.29.29.29 腾讯
- 114.114.114.114 电信
- 1.2.4.8 CNNIC
- 8.8.8.8 Google
bash
[root@rocky01 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 10.0.0.2
nameserver 223.5.5.5
6 网卡别名
将多个IP地址绑定到一个NIC上
每个IP绑定到独立逻辑网卡,即网络别名,命名格式: ethX:Y,如:eth0:1 、eth0:2、eth0:3
注意:
- 建议 CentOS 6 关闭 NetworkManager 服务
- 网卡别名必须使用静态地址
ifconfig 命令
bash
ifconfig eth0:0 192.168.1.100/24 up
ifconfig eth0:0 down
ip 命令
bash
ip addr add 172.16.1.1/16 dev eth0
ip addr add 172.16.1.2/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
7 route 命令
- Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
- Genmask:目标网络对应的netmask
- Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
- Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
- Metric: 开销cost,值越小,路由记录的优先级最高
网关的作用:生成一条路由记录(默认路由)
查看路由表:
bash
[root@rocky01 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
[root@rocky01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
添加路由:route add
route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
删除路由:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
范例:
bash
#目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
route del -host 192.168.1.3
#目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
route del -net 192.168.0.0/24
#默认路由,网关:172.16.0.1
route add -net 0.0.0.0/0 gw 172.16.0.1
route del default
开启路由转发
临时生效
bash
[root@router ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
永久生效
bash
[root@router ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
路由相关的配置文件
/etc/sysconfig/network-scripts/route-IFACE
范例:
bash
TARGET via GW
[root@rocky01 ~]# cat /etc/sysconfig/network-scripts/route-eth0
10.0.0.0/8 via 10.0.0.2
8 多网卡 bonding
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。
通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
bonding 配置
- mod=0,即:(balance-rr) Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。
- mod=1,即:(active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文
- mod=3,即:broadcast(广播策略)这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去
- miimon 指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
创建bonding设备的配置文件
bash
[root@rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100"
# BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1" Vmware模拟若失败则需加上" fail_over_mac=1 "
[root@rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
[root@rocky01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
查看bonging状态
bash
[root@rocky01 ~]# cat /proc/net/bonding/bond0
9 bridge网桥(交换机)
9.1 桥接原理
桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
9.2 配置实现桥接
临时
bash
#安装相关软件包
[root@centos7 ~]# yum install bridge-utils
#添加网桥
[root@centos7 ~]# brctl addbr br0
#添加网桥中网卡
[root@centos7 ~]# brctl addif br0 eth0
[root@centos7 ~]# brctl addif br0 eth1
#启用STP
[root@centos7 ~]# brctl stp br0 on
#查看网桥
[root@centos7 ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c297869a1 yes eth0
eth1
永久
bash
[root@Rye network-scripts]# cat ifcfg-br0
DEVICE=br0
STP=yes
TYPE=Bridge
[root@Rye network-scripts]# cat ifcfg-br0-eth0
NAME=eth0
DEVICE=eth0
BRIDGE=br0
[root@Rye network-scripts]# cat ifcfg-br0-eth1
NAME=eth1
DEVICE=eth1
BRIDGE=br0
10 tcpdump
网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。
范例
bash
#查看网卡
[root@rocky01 ~]# tcpdump -D
1.eth0 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (Pseudo-device that captures on all interfaces) [Up, Running]
4.bluetooth-monitor (Bluetooth Linux Monitor) [none]
5.nflog (Linux netfilter log (NFLOG) interface) [none]
6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
7.usbmon0 (Raw USB traffic, all USB buses) [none]
8.usbmon1 (Raw USB traffic, bus number 1)
9.usbmon2 (Raw USB traffic, bus number 2)
#监听特定网卡
[root@rocky01 ~]# tcpdump -i en0
#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。
[root@rocky01 ~]# tcpdump host 10.0.0.100
#特定来源通信
[root@rocky01 ~]# tcpdump src host hostname
#特定目标地址通信
[root@rocky01 ~]# tcpdump dst host hostname
#如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听
[root@rocky01 ~]# tcpdump host hostname
#特定端口
[root@rocky01 ~]# tcpdump port 3000
#监听TCP/UDP,服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包
[root@rocky01 ~]# tcpdump tcp
#来源主机+端口+TCP,监听来自主机10.0.0.100在端口22上的TCP数据包
[root@rocky01 ~]# tcpdump tcp port 22 and src host 10.0.0.100
#监听特定主机之间的通信
[root@rocky01 ~]# tcpdump ip host 10.0.0.101 and 10.0.0.102
#10.0.0.101和除了10.0.0.1之外的主机之间的通信
[root@rocky01 ~]# tcpdump ip host 10.0.0.101 and ! 10.0.0.1
五 、Ubuntu 网络配置
1主机名
bash
[root@ubuntu01 ~]# hostnamectl set-hostname ubuntu01.Willonyday.org
[root@ubuntu01 ~]# hostname
ubuntu01.Willonyday.org
2 网卡名称
使用eth传统命名方式
bash
#1.修改配置文件为下面形式
[root@ubuntu01 ~]# vim /etc/default/grub
GRUB_CMDLINE_LINUX="net.ifnames=0"
#2.生效新的grub.cfg文件
[root@ubuntu01 ~]# grub-mkconfig -o /boot/grub/grub.cfg
#3.重启
[root@ubuntu01 ~]# reboot
3 网卡配置文件
3.1 DHCP自动获取
bash
[root@ubuntu01 ~]# cat /etc/netplan/eth0.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: true
3.2 静态IP
bash
[root@ubuntu01 ~]# cat /etc/netplan/eth0.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 10.0.0.129/24
gateway4: 10.0.0.2
nameservers:
addresses:
- 10.0.0.2
- 223.5.5.5
#静态路由
routes:
- to: 10.30.0.0/24
via: 10.0.0.254
- to: 10.40.0.0/24
via: 10.0.0.254
3.3 网卡配置文件生效
bash
[root@ubuntu01 ~]# netplan apply
4 查看DNS
bash
[root@ubuntu01 ~]# resolvectl status
...省略...
Link 2 (eth0)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.0.0.2
223.5.5.5