Linux网络配置与测试

目录

一.与网络配置相关的命令

1.1ifconfig命令

1.1.1作用

1.1.2网络接口的信息

接口信息的组成

1.1.3显示所有网卡包括没有启动的网卡

1.1.4查看指定网络接口

1.1.5开启或关闭网卡

1.1.6设置临时虚拟网卡

1.1.7网络通讯情况

​编辑

1.1.8临时修改网卡属性

1.2hostname命令

1.2.1作用

1.2.2永久修改主机名

1.2.3临时修改主机名

1.3route命令

1.3.1作用

1.3.2查看IP路由表

[​编辑 路由表的信息组成](#编辑 路由表的信息组成)

1.3.3让路由表信息以数字形式显示

[1.3.4 添加静态路由](#1.3.4 添加静态路由)

1.3.5删除现有的路由

1.3.6删除默认的网关记录

1.3.7添加默认网关记录

1.4查看网络连接情况

[1.4.1 netstat命令(不建议使用)](#1.4.1 netstat命令(不建议使用))

1.4.1.1作用

[1.4.2ss( socket statistics)命令](#1.4.2ss( socket statistics)命令)

1.4.2.1作用

二.网络测试

2.1ping命令

2.2traceroute命令

2.3nslookup命令

三.永久修改网络相关配置文件

3.1网卡

3.2添加新网卡

四.多网卡绑定bond

[4.1 什么是bond](#4.1 什么是bond)

[4.2 Bonding 聚合链路工作模式](#4.2 Bonding 聚合链路工作模式)

[4.3 模拟实现bond mod=1](#4.3 模拟实现bond mod=1)

[五.tcpdump 抓包工具](#五.tcpdump 抓包工具)

5.1命令格式

常见选项

[2. 过滤规则](#2. 过滤规则)

[(1)按 IP 过滤](#(1)按 IP 过滤)

[(2) 按端口过滤](#(2) 按端口过滤)

[(3) 按协议过滤](#(3) 按协议过滤)

[(4) 组合过滤](#(4) 组合过滤)


一.与网络配置相关的命令

1.1ifconfig命令

1.1.1作用

用于显示网络接口信息

1.1.2网络接口的信息

复制代码
ifconfig   #显示所有的已经开启的网络接口的信息
接口信息的组成

ens33

复制代码
ens33: flags=4163<UP,   BROADCAST,RUNNING,MULTICAST>  mtu 1500
            该接口 已启用,支持广播、 正在运行  支持组播         最大传输单元1500字节
        inet 192.168.91.100  netmask 255.255.255.0  broadcast 192.168.91.255
        inet6 fe80::fe7:ca03:81f:2887  prefixlen 64  scopeid 0x20<link>
        IPV6地址                        子网长度       作用域 link表示仅该接口有效
        ether 00:0c:29:fe:e5:bf  txqueuelen 1000        (Ethernet)
        mac地址                   传输队列长度(传输缓存大小)  接口类型
        RX  packets 2211  bytes 182146 (177.8 KiB)
        接收 报文个数      总和字节数
        RX  errors 0  dropped 0  overruns 0  frame 0
        接收 错误       丢弃        溢出       冲突帧数
        TX  packets 1317  bytes 294334 (287.4 KiB)
        发送 报文个数       总字节数
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
           错误       丢失         溢出        载荷数     冲突数

补充:ens33:第一块以太网卡的名称详解

"ens33"中的

  • "en"是"EtherNet"的缩写,表示网卡 类型为以太网,

  • "s" 表示热插拔插槽上的设备(hot-plug Slot),

  • 数字"33"表示插槽 编号

lo回环接口(与ens33相似部分不在重复描述)

复制代码
inet 127.0.0.1  netmask 255.0.0.0
#本地回环接口的IP地址是 127.0.0.1,网络掩码是 255.0.0.0



inet6 ::1  prefixlen 128  scopeid 0x10<host>
#inet6 ::1          表示IPv6下的本地回环地址
#prefixlen 128      表示网络前缀的长度为 128,全部地址都被视为主机标识。
#scopeid 0x10<host> 表示该地址的作用域 ID 是 0x10,标识为主机(host)级别的地址


loop  txqueuelen 1  (Local Loopback)
     可缓存一个数据包   本地环回接口

virbr0 虚拟网络接口

复制代码
ther 52:54:00:74:e7:a9  txqueuelen 1000  (Ethernet)
    MAC地址            可以缓存1000个数据包 以太网

1.1.3显示所有网卡包括没有启动的网卡

复制代码
ifconfig          -a     

1.1.4查看指定网络接口

复制代码
ifconfig 接口名  #显示指定网络接口的详细配置信息

1.1.5开启或关闭网卡

复制代码
ifconfig          网卡名称        [up|down] 

1.1.6设置临时虚拟网卡

复制代码
ifconfig           网卡名称:0          地址

1.1.7网络通讯情况

复制代码
ifconfig -s

1.1.8临时修改网卡属性

复制代码
ifconfig ens33 192.168.2.122 255.255.255.0  #临时修改IP地址和子网掩码

1.2hostname命令

1.2.1作用

hostname命令用于显示或设置系统的主机名。主机名是标识网络上计算机的名称。

复制代码
hostname #显示当前主机名

1.2.2永久修改主机名

复制代码
hostnamectl set-hostname 新主机名

1.2.3临时修改主机名

复制代码
hostname 2025 #将主机名临时修改为2025,2025为自定义,重启后修改失效

1.3route命令

1.3.1作用

用于查看或设置系统的IP路由表。

1.3.2查看IP路由表

复制代码
route  
路由表的信息组成
复制代码
#路由表主要构成:
#Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路
由,优先级最低
#Genmask:目标网络对应的netmask
#Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
#Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
#Metric: 开销cost,值越小,路由记录的优先级最高

1.3.3让路由表信息以数字形式显示

复制代码
route -n 

1.3.4 添加静态路由

复制代码
route add -net 目标网段地址 子网掩码  gw 下一跳IP地址 [下一跳网关 下一跳IP地址的端口]

route add -net 192.168.100.0/24 gw 192.168.52.2
#给192.168.100.0/24段添加静态路由

1.3.5删除现有的路由

复制代码
route del -net 目标网段 子网掩码 [gw 下一跳IP地址]

route del -net 192.168.100.0/24 
#删除添加路由

1.3.6删除默认的网关记录

复制代码
route del  default  gw IP地址

1.3.7添加默认网关记录

复制代码
 route  add  default  gw IP地址

1.4查看网络连接情况

1.4.1 netstat命令(不建议使用)

1.4.1.1作用

netstat命令用于显示与网络相关的统计信息,包括连接状态、网络接口的活动情况、路由表等。

复制代码
#命令格式
netstat [选项]   

#常用选项:
-a 显示所有活动连接和监听端口
-n 直接使用IP地址和端口号显示网络连接,而不进行DNS解析
-o 显示与每个连接关联的进程ID
-p 显示与每个连接关联的程序名称或进程名称
-s 显示不同协议的统计信息,例如TCP、UDP和ICMP

1.4.2ss**( socket statistics)命令**

1.4.2.1作用

也可以查看网络连接情况, 相较于netstat,提供了更快速和更详细的统计数据。

复制代码
#命令格式
ss [选项] 

#常用选项
-t: tcp协议相关
-u: udp协议相关
-a: 所有
-n: 数字格式
-p: 相关的程序及PID

-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-e: 扩展的信息
-m:内存用量
-o:计时器信息
-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称

# 一般用 ss -natp

二.网络测试

2.1ping命令

作用:测试网络连通性

复制代码
#命令格式
ping [选项] 目标主机 #检查能否连通目标主机,默认是长ping

#常用选项
-c 数字 代表发几个包

-w 数字 表示如果ping不通多久后返回,不会再ping

-W 10   表示如果ping不通10秒后返回



#ping使用icmp协议

2.2traceroute命令

作用:用于跟踪 IP 数据包从源地址到目标地址的路径

复制代码
traceroute    IP地址

2.3nslookup命令

作用:用于查询域名系统(DNS)记录

复制代码
nslook 域名

三.永久修改网络相关配置文件

3.1网卡

复制代码
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
DEVICE=ens33 
NAME=ens33                   //网卡名称
BOOTPROTO=static             //网卡获取地址模式   none   dhcp
ONBOOT=yes                   //开机是否自启动

IPADDR=192.168.52.105               //配置你自己的IP地址子网网关还有dns服务器
NETMASK=255.255.255.0               //PREFIX=24
GATEWAY=192.168.52.2
DNS1=8.8.8.8
DNS2=114.114.114.114


// IPADDR=          设置静态IP地址。
   NETMASK=         设置子网掩码。
   GATEWAY=         设置默认网关。
   DNS1=            设置首选DNS服务器。
   DNS2=            设置备用DNS服务器。 //

[root@localhost ~]# systemctl restart network         //重启网卡服务 
[root@localhost ~]# ping 192.168.52.1                 //测试网络是否通顺
PING 192.168.52.1 (192.168.52.1) 56(84) bytes of data.
64 bytes from 192.168.52.1: icmp_seq=1 ttl=128 time=0.871 ms
64 bytes from 192.168.52.1: icmp_seq=2 ttl=128 time=0.487 ms
64 bytes from 192.168.52.1: icmp_seq=3 ttl=128 time=0.347 ms

3.2添加新网卡

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36

将已有的网卡配置导入

只需进行少量修改

复制代码
systemctl restart network #重启网络服务

四.多网卡绑定bond

4.1 什么是bond

bond(网络绑定或链路聚合),将多个网络接口绑定在一起,形成一个虚拟的网络接口。
bond技术可以增加带宽、提高连接可靠性和实现负载均衡。

4.2 Bonding 聚合链路工作模式

模式 名称 工作原理 适用场景
mode=0 balance-rr 轮询(Round Robin):数据包依次从每个网卡发送。 负载均衡,但可能乱序(不推荐 TCP)
mode=1 active-backup 主备模式:只有一个网卡活跃,其他备用,故障时自动切换。 高可用性(默认推荐)
mode=2 balance-xor XOR 哈希:根据源/目标 MAC/IP/端口计算哈希,固定流走固定网卡。 负载均衡(需交换机支持)
mode=3 broadcast 广播:所有数据包从所有网卡发送。 冗余性(极少使用)
mode=4 802.3ad LACP 动态聚合:需交换机支持 802.3ad,自动协商聚合链路。 企业级负载均衡 + 冗余
mode=5 balance-tlb 自适应发送负载均衡:根据当前负载分配流量,接收仅走主卡。 无需交换机支持
mode=6 balance-alb 自适应负载均衡:发送和接收都智能分配(需 ARP 协商)。 智能负载均衡(家用/小型网络)

4.3 模拟实现bond mod=1

1)添加网卡

复制代码
ifconfig #查看是否添加成功新网卡

2)编辑网卡配置文件

复制代码
cd /etc/sysconfig/network-scripts #切换到配置文件所在目录 方便编辑

##添加ifcfg-bond0文件##

vim ifcfg-bond0 
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.91.22
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
DNS1=8.8.8.8
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,
如果有一条线路不通就转入另一条线路
#fail_over_mac=1"   永远使用活着的 网卡的mac地址

##修改ifcfg-ens33文件##
vim ifcfg-ens33
BOOTPROTO=static #none=static
NAME=ens33
DEVICE=ens33 
ONBOOT=yes
MASTER=bond0 #主网卡为bond0
SLAVE=yes #自身为备网卡

vim ifcfg-ens36
NAME=ens36
DEVICE=ens36
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

systemctl restart network #重启网络服务,应用修改

3)查看bond0状态,看看是否配置成功

复制代码
cat /proc/net/bonding/bond0 #查看bond0状态
复制代码
ifconfig ens33 down #关闭ens33接口 模拟出错
复制代码
cat /proc/net/bonding/bond0 #查看bond0状态 

五.tcpdump 抓包工具

5.1命令格式

复制代码
//格式
tcpdump    option   proto     dir         type
           选项      协议      数据的方向    抓取的数据类型


proto(协议):    
1. tcp  udp   icmp
2. ip   ipv6
3. arp


dir(方向):
1. src
2. dst
3. src and   dst


type(类型):
1. host  主机   
2. net  网段
3. port  端口     
4. port range  端口范围

常见选项

选项 说明
-i <网卡> 指定监听的网卡(如 eth0, wlan0, any
-n 禁用 DNS 解析(直接显示 IP,提升速度)
-nn 禁用端口解析 (不显示 http/ssh 等协议名)直接显示ip和端口号
-c <数量> 抓取指定数量的包后停止 (如 -c 10 抓 10 个包)
-w <文件> 保存抓包数据到 pcap 文件(可用 Wireshark 分析)
-r <文件> 读取 pcap 文件(分析已保存的数据)
-v 显示详细信息(TTL、校验和等)
-C 需要与w 配合使用 指定单个文件的大小 百万字节
-Q 过滤数据包的方向 in out inout
-s 指定数据包的大小
-D 显示所有可用的列表
-q 简洁的输出
-t 在每行的输出中,不显示时间
-tt 输出一个时间戳
-ttt 每行之间的时间间隔
-tttt 详细日期

(1) 指定网卡抓包

复制代码
tcpdump -i eth0       # 监听 eth0 网卡
tcpdump -i any        # 监听所有网卡

输出格式讲解:

第一列:时分毫秒 11:53:55.288476

第二例:网络协议ip

第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向

第四列:主机名协议 主机名:localhost.localdomain 协议:ssh

第五列: seq号 ack号 win窗口长度 tcp的标志位

复制代码
​
#查看网卡
[root@centos8 ~]#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 (All USB buses) [none]
8.usbmon1 (USB bus number 1)
9.usbmon2 (USB bus number 2)
#不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。
tcpdump
#监听特定网卡
tcpdump -i enth0
#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。
tcpdump host 10.0.0.100
#特定来源、目标地址的通信
#特定来源
tcpdump src host hostname
#特定目标地址
tcpdump dst host hostname
#如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听
tcpdump host hostname
#面试题
请抓取源地址是10.0.0.6目的地址是10.0.0.7经过eth0网卡的icpm协议包
[root@centos8 ~]#tcpdump -i eth0 -nn icmp and src host 10.0.0.6 and dst host 10.0.0.7



tcpdump -i ens33  -nn  icmp and src host 10.0.0.6 and  dst host  10.0.0.7

//
参数/过滤条件	作用
-i ens33	监听网卡 ens33(通常是 Linux 的默认以太网接口)
-nn	禁用 DNS 和端口解析,直接显示 IP 和端口号(提升可读性和性能)
icmp	只捕获 ICMP 协议 的数据包(如 Ping 请求/响应)
src host 10.0.0.6	只显示 源 IP 为 10.0.0.6 的包
dst host 10.0.0.7	只显示 目标 IP 为 10.0.0.7 的包
and	逻辑与,组合多个过滤条件

这条命令通常用于:

监控两台主机间的 Ping 通信(如 10.0.0.6 Ping 10.0.0.7)。

排查网络连通性问题(检查 ICMP 包是否能正常到达目标)。

分析 ICMP 包的往返时间(RTT)。
//

#特定端口
tcpdump port 3000
#监听TCP/UDP,服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包
tcpdump tcp


#来源主机+端口+TCP,监听来自主机10.0.0.100在端口22上的TCP数据包
tcpdump tcp port 22 and src host 10.0.0.100


#监听特定主机之间的通信
tcpdump ip src  host 10.0.0.101 and 10.0.0.102



#10.0.0.101和除了10.0.0.1之外的主机之间的通信
tcpdump ip host 10.0.0.101 and ! 10.0.0.1

​

2. 过滤规则

(1)按 IP 过滤
复制代码
tcpdump host 192.168.1.1            # 抓取与 192.168.1.1 相关的流量
tcpdump src 192.168.1.1             # 仅抓取来源 IP
tcpdump dst 192.168.1.1             # 仅抓取目标 IP
(2) 按端口过滤
复制代码
tcpdump port 80                     # 抓取 80 端口(HTTP)
tcpdump src port 22                 # 抓取来源 22 端口(SSH)
tcpdump dst port 443                # 抓取目标 443 端口(HTTPS)
3) 按协议过滤
复制代码
tcpdump icmp                       # 抓取 ICMP(Ping 包)
tcpdump tcp                        # 抓取 TCP 流量
tcpdump udp                        # 抓取 UDP 流量
(4) 组合过滤
复制代码
tcpdump "host 192.168.1.1 and port 80"  # 抓取 192.168.1.1 的 80 端口流量
tcpdump "tcp and src 192.168.1.1"       # 抓取来自 192.168.1.1 的 TCP 流量
相关推荐
阳光普照世界和平3 小时前
网络安全与信息安全防护措施
网络·安全
学不完的3 小时前
ospf综合实验
网络·智能路由器
-曾牛4 小时前
Git完全指南:从入门到精通版本控制 ------- Git仓库创建 (5)
大数据·网络·git·学习·elasticsearch·个人开发
vvilkim4 小时前
深入解析TCP Keep-Alive机制:原理、作用与最佳实践
网络·网络协议·tcp/ip
清风~徐~来4 小时前
【Linux】环境变量
linux·运维·chrome
维C泡泡4 小时前
网络编程 套接字
网络
Bl_a_ck5 小时前
【C++】Docker介绍
运维·docker·容器·eureka
耕耘虫5 小时前
解决 .Net 6.0 项目发布到IIS报错:HTTP Error 500.30
网络·网络协议·http·iis·net·静态文件·.net 6.0
鸡鸭扣7 小时前
系统设计面试总结:高性能相关:CDN(内容分发网络)、什么是静态资源、负载均衡(Nginx)、canal、主从复制
网络·面试·负载均衡
何似在人间5757 小时前
负载均衡的实现方式有哪些?
运维·负载均衡