一、Linux network详解
1、linux中网路相关的主要的几个配置文件
- /etc/hosts:配置主机名(域名)和IP地址的对应
- /etc/sysconfig/network:配置主机名和网关
- /etc/sysconfig/network-scripts/ifcfg-<interface-name>:eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推
- /etc/resolv.conf:配置DNS客户端(关于使用哪个DNS配置)
2、修改网络地址
在redHat中,系统网络设备的配置文件保存在/etc/sysconfig/network-scripts目录下, ifcfg-eth0包含第一块网卡的配置信心,ifcfg-eth1包含第二块网卡的配置信息。
在启动时,系统通过读取这个配置文件决定某个网卡是否启动和如何配置。
/etc/sysconfig/network-scripts/ifcfg-eth0
文件示例:
DEVICE=eth0
IPADDR=192.168.0.2
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
ONBOOT=yes
BOOTPROTO=none
GATEWAY=192.168.0.1
手工修改网络地址或增加新的网络链接,可以通过修改对应的文件ifcfg-<interface-name>
或创建新的文件来实现:
TYPE=Ethernet #网卡类型为以太网
DEVICE=<name> # <name>表示物理设备的名字,网卡接口名称
IPADDR=<address> # <address>表示赋给该网卡的IP地址
NETMASK=<mask> # 表示子网掩码
BROADCAST=<address> # <address>表示广播地址
ONBOOT=yes/no # 启动时网卡是否激活
BOOTPROTO=none # none:无须启动协议;bootp:使用bootp协议;dhcp:使用dhcp协议
GATEWAY=<address> # <address> 表示默认网关
MACADDR=<MAC-address> # <MAC-address>表示指定一个mac地址
USERCTL=yes/no # 是否允许非root用户控制设备
DNS1=8.8.8.8 #设置主DNS
DNS2=8.8.4.4 #设置备DNS
/etc/sysconfig/network:
该文件用来指定服务器上的网络配置信息,下面是一个示例:
NETWORKING=yes/no # 网络是否被配置
FORWARD_IPV4=yes/no # 是否开启IP转发功能
HOSTNAME=<hostname> # <hostname>表示服务器的主机名
GAREWAY=<address> # <address>表示网络网关的IP地址
GAREWAYDEV=<device> # <device>表示网关的设备名,如:eth0
/etc/hosts:当机器启动时,在可以查询DNS以前,机器需要查询一些主机名到IP地址的匹配.这些匹配信息存放在/etc/hosts文件中。在没有域名服务器情况下.系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址:
示例:
127.0.0.1 Localhost server.wuxp.com
192.168.0.3 stationl.wuxp.com
最左边一列是主机IP信息,中间一列是主机名,任何后面的列都是该主机的别名。
修改后需要重启网路才能生效,重新启动网络设置:
- /sbin/service network restart
- service network start # 启动网络服务
- service network stop # 停止网络服务
- service network status # 查看网络服务状态
3、单个网卡绑定多个IP和多个网卡绑定为一块虚拟网卡的配置
单网卡绑定多个IP
有时,我们需要在一块配置多个IP,例如:
eth0配置IP:192.168.168.2和192.168.168.3
那么需要再/etc/sysconfig/network-scripts下新建两个配置文件:
ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.168.2
NETMASK=255.255.255.0
NBOOT=yes
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.168.3
NETMASK=255.255.255.0
NBOOT=yes
4、多个网卡绑定成一块虚拟网卡
为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致链接中断。比如我们可以将eth0和eth1绑定成虚拟网卡bond0
首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下:
DEVICE=bond0
BOOTPROTO=none
BROADCAST=192.168.168.255
IPADDR=192.168.168.1
NETMASK=255.255.255.0
NETWORK=192.168.168.0
NBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.168.250
USERCTL=no
DEVICE=eth0
BOOTPROTO=none
NBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
DEVICE=eth1
BOOTPROTO=none
NBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module.在/etc/modprobe.conf
文件中添加如下内容(如果没有该文件,则新建一个):
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
其中miimon=100表示每100ms检查一次链路链接状态,如果不通则会切换物理网卡
mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到primary=eth0表示主备模式下eth0为默认的active网卡.
最后,在/etc/rc.local中加入
modprobe bonding miimon=100 mode=1
重启机器后可以看到虚拟网卡已经生效,可以通过插拔两个物理网卡的网线来进行测试,不过linux中网卡接管的时间好象比较长。
参考:Linux network详解_weixin_42073629的博客-CSDN博客_linux network
二、BMC
BMC(Baseboard Management Controler)提供了多种通道来和主机通信,进而检测主机的温度、风扇转速、电压、电源等来保证系统处于正常运行的状态。为了便于用户使用,它提供了非常丰富的命令。
BMC就是一个管家的角色。能对整个系统的电源、温度等性能进行管理,在系统死机时还能充当看门狗的角色对CPU进行重启操作。
一般的电脑系统,比如我们自己用的PC,并不会带BMC,因为没必要,CPU能把BMC要干的活都干了。但复杂的服务器,就非常有必要引入BMC了。这就好比一般的家庭不会有管家,但大户人家,家大业大,所以管家是能分担家务活的。
BMC系统一般依赖于BMC芯片,目前常用的是ASPEED公司生产的AST2500。
BMC是实现IPMI通用接口规范的核心控制器。
ipmitool 是一种可用在 linux 系统下的命令行方式的 Ipmi平台管理工具。需要安装:
IPMI(Intelligent Platform Management Interface)即智能平台管理接口,Ipmi 是硬件管理的一种规范的通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。
总结:ipmitool本质就是调用BMC接口获取监控数据。
参考:
服务器BMC与IPMI基础知识_blog.pytool.com的博客-CSDN博客_bmc和ipmi
三、Watchdog
1、介绍
Watchdog 是 Linux 系统一个很重要的机制,其目的是监测系统运行的情况,一旦出现锁死,死机等情况,能及时做出一些挽救措施,如重启机器,并收集crash dump。
2、工作原理
在Linux 内核下, watchdog的基本工作原理是:当watchdog启动后(即/dev/watchdog 设备被打开后),如果在某一设定的时间间隔内/dev/watchdog没有被执行写操作,硬件watchdog电路或软件定时器就会重新启动系统。
/dev/watchdog 是一个主设备号为10, 从设备号130的字符设备节点。 Linux内核不仅为各种不同类型的watchdog硬件电路提供了驱动,还提供了一个基于定时器的纯软件watchdog驱动。 驱动源码位于内核源码树drivers/char/watchdog/目录下。
3、分类
看门狗分硬件看门狗和软件看门狗。
硬件看门狗:是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称“喂狗”),因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。
软件看门狗:原理上和硬件看门狗一样,只是将硬件电路上的定时器用处理器的内部定时器代替,这样可以简化硬件电路设计,但在可靠性方面不如硬件定时器,比如系统内部定时器自身发生故障就无法检测到。
4、硬件与软件watchdog的区别
-
通常情况下,watchdog需要硬件支持,但是如果确实没有相应的硬件,还想使用watchdog功能,则可以使用liunx模拟的watchdog,即软件watchdog。
-
硬件watchdog必须有硬件电路支持, 设备节点/dev/watchdog对应着真实的物理设备, 不同类型的硬件watchdog设备由相应的硬件驱动管理。软件watchdog由一内核模块softdog.ko 通过定时器机制实现,/dev/watchdog并不对应着真实的物理设备,只是为应用提供了一个与操作硬件watchdog相同的接口。
-
硬件watchdog比软件watchdog有更好的可靠性。 软件watchdog基于内核的定时器实现,当内核或中断出现异常时,软件watchdog将会失效。而硬件watchdog由自身的硬件电路控制, 独立于内核。无论当前系统状态如何,硬件watchdog在设定的时间间隔内没有被执行写操作,仍会重新启动系统。
-
一些硬件watchdog卡如WDT501P 以及一些Berkshire卡还可以监测系统温度,提供了 /dev/temperature接口。
-
对于应用程序而言, 操作软件、硬件watchdog的方式基本相同:打开设备/dev/watchdog, 在重启时间间隔内对/dev/watchdog执行写操作。即软件、硬件watchdog对应用程序而言基本是透明的。
在任一时刻, 只能有一个watchdog驱动模块被加载,管理/dev/watchdog 设备节点。如果系统没有硬件watchdog电路,则可以加载软件watchdog驱动softdog.ko。
参考:linux下的watchdog | xqk的博客
四、ifconfig命令
1、介绍
ifconfig命令是系统管理员命令,用于查看和配置网络接口。
我们常用ip a命令看ip地址,其实也可以用ifconfig。
2、相关命令
ifconfig:查看被激活网卡状态
ifconfig -a:查看所有网卡状态
ifconfig eth0:查看指定网卡接口信息
ifconfig eth0 up:启动网卡eth0
ifconfig eth0 down:关闭网卡eth0
ifconfig eth0 192.168.1.56:给eth0网卡配置 IP 地址
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 :给 eth0 网卡配置 IP 地址并加上子网掩码
ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255:给 eth0 网卡配置 IP 地址,加上子网掩码,加上广播地址
ifconfig eth0 mtu 1500:设置能通过的最大数据包大小为 1500 bytes
以下返回信息值得关注的(以eth0为例):
1、网络地址
- ip地址:10.41.26.131
- 掩码:255.255.224.0
- 广播地址:10.41.31.255
2、最大数据包大小
- MTU( Maximum Transmission Unit,最大传输单位):当传输的数据量超过这个值,就会被拆分成多个包
- 此处是1500
3、接收与发送字节情况
网络从启动到目前为止数据包接收、发送数据包情况统计。
接收数据包:2656971314 错误:0 丢弃:13 过载:0 帧数:0
发送数据包:156059908 错误:0 丢弃:0 过载:0 载波:0
RX bytes:接受总字节数。
TX bytes:发送总字节数。
五、nslookup命令
nslookup命令,是Linux里非常常用的网络命令,简而言之就是“查DNS信息用的”。
nslookup的两种模式:交互模式和非交互模式。
在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。
而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。
进入交互模式:直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf的第一个dns地址)。
如下交互模式:
如下非交互模式:
六、dig命令
Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息。
dig 命令主要用来从 DNS 域名服务器查询主机地址信息。
dig的全称是 (domain information groper)。它是一个用来灵活探测DNS的工具。它会打印出>DNS name server的回应。
七、tcpdump命令
命令行的抓包工具。
tcpflow -ci eth0 dst port 6060
tcpdump -i eth0 dst port 6060
案例:
八、lastlog命令
显示系统中所有用户最近一次登录信息。
九、linux当前目录表示
“.”代表当前目录,“..”代表上级目录。
扩展:Linux系统的目录组成类拟一个倒置的树型结构,它以一个名为 根(“/”)的目录开始向下延伸。它不同于windows,在 windows中,它有多少分区那么就有多少个根,而这些根之间是并列的,而在Linux中无论有多少个分区都有一个根。
十、iostat命令
统计系统 IO使用情况。
十一、su命令
Linux su(英文全拼:switch user)命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
十二、Linux区分系统盘和数据盘命令
执行命令lsblk:
图中vda是系统盘;
- 如/,/home,/boot,/root,/usr等目录
vdb是挂载的数据盘;
参考:
Linux 运维必会的150个常用命令,你都会用吗?