什么是Linux?
操作系统,可以是开发环境;可以被当作网关服务器;网络设置更加方便
网络设置的主要命令
ifconfig
查看网络,展示当前设备所有网络设备的信息
windows系统上:ipcinfig
ifconfig 设备名 指定设备查看网络配置信息
ifconfig -a 查看所有网卡的信息(包括未启动的设备)
ifconfig -s 静态查看网络通讯情况
如何创建虚拟网卡?
ifconfig ens33:0 20.0.0.100/24 创建虚拟网卡
ens33:是必须存在的,虚拟网卡需要依托于实际的物理设备
0:表示序列号,不可以重复
20.0.0.100/24:表示虚拟的IP地址
特点:重启即失效(1.重启设备 2.重启网络)
如何开启关闭网卡?
ifconfig ens33 down / up
简写:ifdown / ifup
不推荐systemctl restart network,因为在生产的中,是不止一个网络设备,这个命令会全部重启,所以使用命令ifdown/ifup 对指定的设备操作
注:生产中有关于所有,全局的操作都需要谨慎对待
mtu:最大的传输单元
在ens33中底行添加MTU(不过在生产上一般不修改,因为在互联网上默认的是1500字节,一边改一边不更改也会导致传输数据失败)
修改主机名 hostname
1. hostname -c 临时修改主机名
2. hostnamectl set-hostname 永久修改主机名
永久修改主机名使用su 进行刷新,前提是root用户才可以
3. vim /etc/hostname 永久修改,需要重启(不推荐)
查看路由表条目 route
route -n 查看设置主机中路由表的信息
route add -net 192.168.10.0/24 gw 192.168.233.2 dev ens33 添加路由表
-net 目标网络的网段
gw 指定网关来进行中转
dev 通过这个设备进行转发 (当只有一个设备时,可加可不加)
route del -net 192.168.233.21 删除路由表条目
route add default gw 192.168.233.21 添加默认路由
route del default gw 192.168.233.21 删除默认路由
以上都是临时添加的
永久添加路由(重启network服务生效)
vim /etc/sysconfig/static-routes
any net any gw 192.168.233.21: 将所有网络流量都路由到192.168.233.21网关
any net 192.168.3.0/24 gw 192.168.233.21: 将目的网络为192.168.3.0/24的所有流量路由到192.168.233.21网关
any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.233.21: 将目的网络为10.0.0.0的所有流量,使用掩码255.0.0.0,路由到192.168.233.21网关
any host 192.168.100.100 gw 192.168.233.21: 将目的IP为192.168.100.100的所有流量路由到192.168.233.21网关。
查看网络连接情况 (端口扫描) netstat
netstat
-n 数字形式显示主机的IP地址,端口信息
-p 显示与网络连接相关的进程号,进程名(需要root权限)
-t 查看tcp协议的相关信息
-a 显示所有活动的网络连接信息(包括监听,非监听的端口)
-u 查看udp协议的相关信息
-r 显示路由信息
-l 显示处于监听状态的网络连接和端口信息
命令:netstat -antp | grep sshd 根据服务名进行过滤
netstat -antp | grep 22 根据端口号进行过滤
监听的两种状态
listen :网络通信中等待连接的tcp端口的状态
一旦进入listen状态:表示tcp连接已经建立,并且正在进行数据传输
established:表示tcp连接已经建立,并且正在进行数据传输
0.0.0.0:22 表示所有的主机都可以和本机的22端口进行连接
192.168.233.21:22 表示只有192.168.233.21这个可以和本机的22端口进行连接
获取socket (通信套接字)统计信息 ss
也可以查看网络连接情况
-t TCP协议相关
-u UDP协议相关
-a 显示所有,正在活动的网络连接
-n 数字化展示IP地址及端口号信息
-p 相关程序的pid号,也需要管理员权限
-l 显示listen状态的连接
-w 纯端口信息
-x unix sock 系统相关通信套接字
-e 显示扩展信息
-M 显示进程的内存用量
命令:ss -antp | grep 22 根据端口号过滤
ss -antp | grep sshd 根据服务号进行过滤
注:在实际工作当中,端口冲突一般时不杀不关,采取的措施就是更改端口,改配置文件,把服务的端口号改成不冲突的
ping 命令 (ICMP)
ping -c www.baidu.com 表示ping 5次 (使用ping时一定要加-c,也即是次数,否则将会一直ping造成死循环)
ping -i 5 www.baidu.com 表示每间隔5秒ping一次
ping -W 5 www.baidu.com 表示5秒之内ping 不通就停止
ping -w 5 www.baidu.com 表示5秒之后停止ping
traceroute 180.101.50.188 测试当前主机到目的主机之间的网关服务器
nslookup 测试DNS域名解析(正向反向都可以)
DNS解析服务器的配置文件 /etc/resolv.conf
配置域名解析的文件(即本机主机的映射,保存在本地之中,可以提高访问的速度) /etc/hosts
五大负载
1.CPU负载
使用top、htop监控系统的CPU的占用率,然后以此判断cpu是否时过载的状态
htop 动态监控cpu负载
-t 默认的
-u 显示指定用户的进程信息
-p 只显示进程信息
2.内存负载
使用free / top 命令检测内存的占用情况,来判断是否负载
负载处理方法:
1.关闭一些不必要的程序或者服务
2.使用交换分区,防止内存不足引发系统崩溃
3.监控命令,监控确保没有过度使用
echo 1 > /proc/sys/vm/drop_caches (可以使用的时间,一般在发版期和巡检期,如果后台运行的程序较多,盲目的使用,会降低文件的处理速度)
3.磁盘负载
监控磁盘负载:iostat,iotop(动态监控进程在磁盘上的读写占用情况)
iotop
-p 监控进程号
-u 监控用户名
使用场景:redis缓存 ,数据库服务
4.网络负载
请求和响应的量超出服务器的本身的处理范围,会造成网络波动甚至网络崩溃
使用工具如iftop或者ifconfig监控网络的带宽使用,以此系统的网络负载情况
5.进程负载
使用工具top,ps - aux,htop,iotop等都可以监控进程的资源使用情况
关于Htop,iotop,iftop命令的总结
注意:
使用下面的命令,首先是安装epel
yum -y install epel-release.noarch
再安装相对的服务
yum -y install iftop
yum -y install iotop
yum -y install htop
Iftop:动态监控网络
最上边一栏:流量刻度,用于显示带宽流量,左边为最小,右边为最大
中间的一栏:左边的一列表示本机,中间的一列表示发送数据到=>20.0.0.1
<= 表示接收数据
最右边的三列:从左往右依次表示2秒内,10秒内,40秒内,传输的平均流量值
最后一栏:tx:表示发送 rx:表示接收 total 表示总计发送的流量
cum列表示从运行到目前的发送、接收和总数据流量
peak列表示发送、接收以及总的流量峰值
rates列表示 2s、10s、40s 的平均流量值
使用ifconfig查看
总结:使用ifconfig和iftop都可以查看网络负载
但是使用ifconfig不够直观,看不到传输的多少,传输了什么,传输给了谁
而使用iftop时分格式直观的显示了发送方和接收方,发送和接收了多少流量以及总计,峰值,以及在2,10,40秒内的平均流量值,更加方便直观的查找问题
Iotop
主要实用的选项
-p PID:监控的进程pid
-u USER:监控的进程用户
指定监控哪些用户,哪些服务,并且是自动按照IO读写占用情况排序
数据相对于iostat更加全面,
使用iostat 查找到是静态的,想要获取实时数据,需要一直使用命令
没有iotop动态监控并且自动排序进程方便直观的监控磁盘负载的情况
htop
左上角区域:表示4个cpu的占用率
MEM:内存的使用情况
SWP:swp的使用情况
右上角区域:tasks 92个任务
162 个线程 ,1个在运行中
Load average :过去的5分钟、10分钟和15分钟系统的平均负载
Uptime:从系统启动起到现在一共运行了多长时间
最后一块区域:
USER:进程的用户
PID:进程的ID
%CPU:进程占用的CPU百分比
%MEM:占用物理内存的百分比
START:该进程被触发启动时间
TIME:该进程实际使用CPU运行的时间
COMMAND:进程的启动命令
STAT:该进程的状态
STAT状态的解释:
D:不可中断的休眠状态;
R:正在运行状态;
S:处于休眠状态,可被唤醒;
T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;
Z:僵尸进程,进程已经中止,但是部分程序还在内存当中
使用top动态查看命令
Top与htop都是查看cpu负载的重要工具
Top 动态查看但是画面单一,不能在查询的时候直接指定查询某个服务或者用户
数据没有分化成区域表格
Htop 可以直接按照服务名查询指定的服务进程,也可以在不退出的情况下直接杀死不需要的进程,并且是分表格 分区域 分颜色的可视化工具,树状显示进程服务,可以查询进程服务,可以跟踪监控或者直接杀死进程
可以用鼠标点机某一项,按照某一项的数据进行排序过滤(例如点%CPU,就会按照cpu的占用百分比排序)
总结:三个重要的监控工具使用,可以更好的定位解决关于负载的问题,
因为数据流量一直都是在变化的,所以使用动态的监控工具是更加直观有效的
并且工具的辅助功能更加方便快捷,监控进程服务或者监控用户流量等等
但是在使用这些工具需要安装服务,安装速度较慢
使用下面的命令,首先是安装epel
yum -y install epel-release.noarch
再安装相对的服务
yum -y install iftop
yum -y install iotop
yum -y install htop