一、Linux网络
将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
- 主机名
- IP/netmask
- 路由:默认网关
- DNS服务器
- 主DNS服务器
- 次DNS服务器
- 第三个DNS服务器
二、查看网络配置
1. ifconfig——查看网络接口信息
ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装)
ifconfig的基本用法:
1)查看网络接口信息:ifconfig
2)查看指定网卡信息:ifconfig 网卡名
3)查看所有网卡,启用和不启用:ifconfig -a
4)设置虚拟网卡:ifconfig 网卡名:数字 ip地址/子网掩码
5)查看通讯情况:ifconfig -s
6)开启关闭网卡:ifconfig 网络接口 up/down
2. hostname——查看主机名称
hostname的基本用法:
1)查看或设置当前主机名:hostname
2)临时修改主机名称:hostname 主机名
永久修改主机名称,修改后重启生效:
- 方法一:编辑配置文件/etc/hostname,该文件只对第一行生效。
- 方法二:使用 “hostnamectl set-hostname 新主机名” 命令,该命令实际是修改了配置文件。
3. route——查看路由表条目
1)打印路由表:route
2)以数字形式显示路由信息:route -n
3)添加指定网段的路由记录:route add -net 网段地址 gw IP地址
4)删除指定网段的路由记录:route del -net 网段地址
5)向路由表中添加默认网关记录:route add default gw IP地址
6)删除路由表中默认的网关记录:route del default gw IP地址
4. ss(socket statistics)——查看网络连接情况
ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。
但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。
ss命令格式:ss [选项]
常用选项:
选项 | 含义 |
---|---|
-t | tcp协议相关 |
-u | udp协议相关 |
-w | 套接字相关 |
-x | unix sock相关 |
-l | listen状态的连接 |
-a | 所有 |
-n | 数字格式 |
-p | 相关的程序及PID |
-e | 扩展的信息 |
-m | 内存用量 |
-o | 计时器信息 |
-r | --resolve 把 IP 解释为域名,把端口号解释为协议名称 |
示例:
1)查看TCP协议端口是否开启
5. netstat——查看网络连接情况
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
netstat命令格式:netstat [选项]
常用选项:
选项 | 作用 |
---|---|
-a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。 |
-n | 拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。 |
-t | 查看TCP协议相关的信息。 |
-u | 显示UDP协议相关的信息。 |
-p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限) |
-r | 显示路由表信息。 |
-l | 显示处于监听状态(Listen)的网络连接及端口信息。 |
示例:
1)列出处于监听状态的TCP端口:netstat -lt
2)使用ip地址列出所有处于监听状态的TCP端口,并加上程序名:netstat -tnlp
三、测试网络连接
1. ping——测试网络连通性
linux中,默认会一直ping下去, 按Ctrl+c 终止。
ping命令格式:ping [选项] 目标主机
常用选项:
选项 | 说明 |
---|---|
-w | 超时时间(在 deadline 秒后退出) |
-c count | 指定发送报文的次数(ping指定次数后停止ping) |
-i | 指定收发信息的间隔时间 |
-s | 设置数据包的大小 |
-n | 只输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 不显示指令执行过程 |
-R | 记录路由过程 |
-t | 设置存活数值TTL的大小 |
-v | 详细显示指令的执行过程 |
示例:
1)只ping5个包:ping -c5 目标主机
2)等待时间为4秒,4秒后自动退出:ping -w4 目标主机
2. nslookup——域名解析
测试DNS域名解析
nslookup命令格式:nslookup 目标主机地址 [DNS服务器地址]
示例:
1)将百度域名解析成IP地址
3. tcpdump 抓包工具
tcpdump [option选项] [proto协议] [dir数据的方向] [type抓取的数据类型]
option(选项):
选项 | 含义 |
---|---|
-a | 尝试将网络和广播地址转换成名称 |
-c | <数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作 |
-d | 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出 |
-dd | 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出 |
-ddd | 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出 |
-e | 在每列倾倒资料上显示连接层级的文件头 |
-f | 用数字显示网际网络地址 |
-F | <表达文件> 指定内含表达方式的文件 |
-i | <网络接口> 使用指定的网络截面送出数据包 |
-l | 使用标准输出列的缓冲区 |
-n | 不把主机的网络地址转换成名字 |
-N | 不列出域名 |
-O | 不将数据包编码最佳化 |
-p | 不让网络界面进入混杂模式 |
-q | 快速输出,仅列出少数的传输协议信息 |
-r | <数据包文件> 从指定的文件读取数据包数据 |
-s | <数据包大小> 设置每个数据包的大小 |
-S | 用绝对而非相对数值列出TCP关联数 |
-t | 在每列倾倒资料上不显示时间戳记 |
-tt | 在每列倾倒资料上显示未经格式化的时间戳记 |
-T | <数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型 |
-v | 详细显示指令执行过程 |
-vv | 更详细显示指令执行过程 |
-x | 用十六进制字码列出数据包资料 |
-w | <数据包文件> 把数据包数据写入指定的文件 |
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:端口范围
示例:
1)查看所有网卡:tcpdump -D
2)指定查看某网卡:tcpdump -i 网卡
3)监听某主机的通信包:tcpdump host ip地址 -i 网卡
四、永久修改网络相关配置
设置网络参数的方式:
-
临时配置--使用命令调整网络参数
- 简单、快速,可直接修改运行中的网络参数
- 一般只适合在调试网络的过程中使用
- 系统重启以后,所做的修改将会失效
-
固定设置--通过配置文件修改网络参数
- 修改各项网络参数的配置文件
- 适合对服务器设置固定参数时使用
- 需要重载网络服务或者重启以后才会生效
1. 静态NAT网络设置
网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-ens33
2. 双网卡设置
步骤1:增加网络适配器。
步骤2:用ifconfig -a 命令显示所有网卡,查看第二块网卡名称。
步骤3:切换到配置文件所在目录,复制配置文件,并对第二块网卡进行编辑配置文件。
步骤4:重启网络服务,并查看第二块网卡。
五、多网卡绑定配置:bond
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址
Bonding 聚合链路工作模式:
-
mod=0 ,即:(balance-rr) Round-robin policy(轮询)聚合口数据报文按包轮询从物理接口转发。负载均衡—所有链路处于负载均衡状态,轮询方式往每条链路发送报文这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。性能问题—一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。Bond0在大压力的网络传输下,性能增长的并不是很理想。需要交换机进行端口绑定。
-
mod=1,即: (active-backup) Active-backup policy(主-备份策略)只有Active状态的物理接口才转发数据报文。容错能力—只有一个slave是激活的(active)。也就是说同一时刻只有一个网卡处于工作状态,其他的slave都处于备份状态,只有在当前激活的slave故障后才有可能会变为激活的(active)。无负载均衡—此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。
实验操作1:
步骤1:增加网络适配器。
步骤2:用ifconfig -a 命令显示所有网卡,查看第二块网卡名称。
步骤3:切换到配置文件所在目录,复制配置文件,并对bond0进行编辑配置文件。
步骤4:对ens33进行编辑配置文件,复制配置文件,并对ens36进行编辑配置文件。
步骤5:重启网络服务,登录bond0网卡,查看登录情况。
实验操作2:
步骤1:添加bonding接口
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 192.168.1.50/24
步骤2:添加从属接口,网卡ens33,ens36
步骤3:先启动从属接口ens33
步骤4:再启动从属接口ens36
步骤5:最后启动绑定
步骤6:切换到配置文件所在目录,查看绑定情况
注意:
在添加bonding接口之前,需增加网络适配器。