查看网络接口信息ifconfig
ip addr/ip a #简单查看网络接口信息
ifconfig #表示只显示当前活跃的设备接口信息
ifconfig -a #查看当前主机所有的(all)网络设备,包括未运行的设备。
如我们查看本机网卡ens33的信息:
ens33: flags=4163 <UP, BROADCAST RUNNING MULTICAST> mtu 1500
设备名 端口 启用状态 支持广播 正在运行 支持组播 最大传输单元
inet 192.168.254.12 netmask 255.255.255.0 broadcast 192.168.254.255
网络设备的IP地址 网段的子网掩码 广播地址
inet6 fe80::20c:29ff:fe37:59aa prefixlen 64 scopeid 0x20<link>
IPV6信息
ether 00:0c:29:37:59:aa txqueuelen 1000 (以太网)
网卡的mac地址 传输队列长度 以太网
RX packets 702 bytes 412189 (412.1 KB)
接收报文的个数 接受报文的总的大小
RX errors 0 dropped 0 overruns 0 frame 0
接收时发生的错误 丢弃 溢出 冲突帧数
TX packets 373 bytes 56280 (56.2 KB)
发送报文的个数 发送报文的总大小
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
发送时的错误 丢弃 溢出 载荷 冲突
设置网络设备的虚拟网卡
- 真实网卡必须要能正常工作
- : 后面可以是字母也可以是数字,而且不能重复
- 虚拟网卡的IP地址不能重复
虚拟网卡被停掉或者系统重启就会消失
ifconfig 设备名 up/down #可以对单个网络设备进行开启/关闭操作
ifup 设备名 / ifdown 设备名
- centos:systemctl restart network #重启网卡服务
- ubuntu:netplan apply #重启网卡服务
查看主机的路由条目route
Linux系统可以使用作为路由器进行使用
route -n
查看指定端口的服务netstat和ss
查看网络连接情况/查看指定端口的服务(端口扫描)
netstat和ss
-a——显示主机中所有网络的活动连接信息
-n——数字形式显示主机地址和端口的信息
-r——显示路由表的信息
-t——只显示使用TCP协议的信息
-u——只显示使用UDP协议的信息
-p——显示网络连接信息的进程号,进程名的相关信息(需要root权限)
- Proto:套接字使用了什么协议?
- Recv-Q:连接这个套接字的用户,还有未拷贝的字节数
- Send-Q:远程主机还未确定的字节数
- Local Address:本地主机的地址和端口号
- Foreign Address:远程主机的地址和端口号
- State:运行状态
- PID/Program name:进程号/进程名
netstat /ss -antp | grep 端口号/设备名称
- tcp:协议
- 0.0.0.0:22:服务开放的监听地址和端口号(任意IP地址都可以访问22端口)
- 0.0.0.0:* :表示谁可以连接,表示任意的ip地址,* 表示任意端口(任意IP地址和端口号都可以与22端口建立连接)
- listen:监听,等待连接,开放出来的连接地址
- ESTABLISHED:表示已经连接且正在传输数据
- timewait:不是报错,是tcp连接状态的一种,表示双方已经传输完了数据,进入等待时间,一旦有数据传输,可以恢复连接,无需再三次握手建立连接(节约资源)
显示程序在系统中打开的文件lsof
lsof:list open file,列出一个应用程序在系统中打开什么文件的命令
-p——根据进程号显示打开的文件
lsof -i:端口号 #列出这个端口号被哪些进程占用
lsof -u root #列出指定用户打开的网络进程和文件
- FD:文件的描述符,当前这个进程的工作目录
测试网络的连接性ping
png是icmp协议
-c——ping的次数
-i——ping的间隔
-W——ping的超时时间
-w——ping多少秒之后停止
测试当前主机到目标主机之间经过的网络节点traceroute
DNS解析命令nslookup
域名:www.baidu.com
解析就是把域名转换成IP地址
- /etc/hosts:本地的域名和IP地址的映射配置文件
- /etc/resolv.conf:本地DNS解析服务器的配置文件(内网环境)
配置多网卡IP地址
centos
vim /etc/sysconfig/network-scripts/ifcfg-ens36 #修改配置文件
新加的网卡设备是需要新建配置文件夹的,如我们直接复制ens33成ens36,在里面修改相关信息即可。
systemctl restart network #重启网卡配置
ubuntu
vim /etc/netplan/01-network-manager-all.yaml #修改配置文件
w
我们直接在老配置文件中加入新的网卡配置信息即可
netplan apply #重启网卡配置
绑定网卡bond
多个网卡共用一个IP地址
实现高可用:如果其中一个故障,不影响业务的使用。
Linux绑定网卡的模式
- mode=0,round robin #轮询,两个网卡都会使用
- mode=1,active-backup #冗余功能,只有一个工作,另一个备用
- mode=2,load balancing #平和策略,也能提供轮询和容错
- mode=3 #广播策略,广播地址的高可用
- mode=4 #动态链接聚合,交换机设置
- mode=5,tansmit load balancing #适配器负载均衡,以太网设备能够获取每个网卡的速率
- mode=6,adaptive load balancing #适配器负载均衡,balance-tid模式,针对流量实现负载均衡,不需要交换机
模拟实现mode=0
centos7上模拟
首先我们修改ens33和ens36的配置文件,具体修改如下:
接着我们新建一个网络配置文件ifcfg-bond0,配置编辑如下:
- miimon=100单位毫秒 #检测链路的间隔(100毫秒检测一次所有设备的状态,如果发现故障,开始触发故障切换)
- mode=0 #使用bond的轮询
- fail_over_mac=1 #表示在故障切换时,备用接口会直接获取主接口的mac地址。减少切换过程中可能出现的中断
TYPE=Ethernet
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.254.25
NETMASK=255.255.255.0
GATEWAY=192.168.254.2
BONDING_OPTS="miimon=100 mode=0 fail_over_mac=1"
DNS1=8.8.8.8
配置完之后,我们需要输入命令重新读取bond网卡命令,并重启网卡服务。
这时候我们查看网络接口,会发现bond0已配置成功。
这时候我们关闭掉ens33网卡,会发现依然可以ping通,说明ens36顶上去了。