网卡命名规则
centos6和之前,网络接口使用连续号码命名,eth0,eth1.
Centos7,采用dmidecode采集命名方案,采集主板信息,实现网卡命名唯一化
如果firmware(固件)或BIOS为主板集成的设备提供的索引信息可用时,以此命名,例如:ifcfg-ens33
如果firmware(固件)或BIOS为PCI-E扩展槽可用时,以此命名,例如,ifcfg-enp33
如果硬件接口的物理位置可用时,以此命名,例如:enp2s0
如果都不可用时,采用旧版本命名方法
en*
O:主板板载网卡,集成设备的设备索引号
P:独立网卡,PCI网卡
S:热插拔网卡,usb之类,扩展槽的索引号
后面的数字表示:MAC地址+主板信息计算出唯一的序列
查看网卡物理连接是否正常
[root@localhost ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
查看ip相关信息
ifconfig命令被用于配置和显示linux内核中网络接口的网络参数
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.162 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::7511:1afa:bc50:a085 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7a:44:ce txqueuelen 1000 (Ethernet)
RX packets 11084 bytes 9447213 (9.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4704 bytes 455830 (445.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到网卡名称是ens33
那么它的配置文件就是ifcfg-ens33
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" #设备类型是以太网
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none" #static静态ip或者dhcp,或none(不指定), 当是none时,配上ip之后效果适合static效果一样的
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33" #网卡名字(名称可以更改,一般和设备名字相同)
UUID="d3afb034-7430-4460-b891-f18f2cf7465c" #网卡uuid,全球唯一
DEVICE="ens33" #设备名字(在内核中识别的名字,不是随便更改的)
ONBOOT="yes" #启用该设备,如果是no, 表示不启动网络设备
IPADDR="192.168.1.162" #ip地址
PREFIX="24" #子网掩码,相当于255.255.255.0
GATEWAY="192.168.1.1" # 默认网关
DNS1="8.8.8.8" #首选dns,如果要配置两个dns,则再加一行,DNS2='114.114.114.114'
IPV6_PRIVACY="no"
为虚拟机添加一块网卡
步骤关机 > 设置 > 添加设备 > 网络适配器 > 添加 > 选择桥接模式 > 开机
选项-a : 查看所有网络设备, 包括没有启动的网卡设备
[root@localhost ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.162 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::7511:1afa:bc50:a085 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7a:44:ce txqueuelen 1000 (Ethernet)
RX packets 80 bytes 10900 (10.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 75 bytes 9260 (9.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::81fc:e69e:c455:db43 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7a:44:d8 txqueuelen 1000 (Ethernet)
RX packets 4 bytes 240 (240.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 2592 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到,新增加的网卡名称是ens37,这是由内核识别出来的
生成网卡配置文件
进入网卡配置文件目录
cd /etc/sysconfig/network-scripts/
复制出一个ens37的网卡配置文件
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
修改配置文件
将
NAME="ens33"
UUID="d3afb034-7430-4460-b891-f18f2cf7465c"
DEVICE="ens33"
IPADDR="192.168.1.162"
改为
NAME="ens37"
DEVICE="ens37"
IPADDR="192.168.1.131"
更改网卡名称,设备名称,由于不知道uuid,所以将uuid删除, 注意ip不要冲突
保存退出
重启网卡服务
[root@localhost network-scripts]# service network restart
姜还是老的辣(从centos5到至今)
现在可以远程连接到这台虚拟机了
ssh sss@192.168.1.131
临时修改ip地址
临时修改ip地址
[root@localhost network-scripts]# ifconfig ens37 192.168.1.32
[root@localhost network-scripts]# ifconfig ens37
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.32 netmask 255.255.255.0 broadcast 192.168.1.255
给一个网卡配置多个临时ip地址
[root@localhost network-scripts]# ifconfig ens37:1 192.168.1.123
[root@localhost network-scripts]# ifconfig ens37:1
ens37:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:7a:44:d8 txqueuelen 1000 (Ethernet)
现在实验了一下,物理机通过ssh sss@192.168.1.32和 ssh sss@192.168.1.123都是可以远程连接的
当我们重启服务的时候,临时ip就不生效了
查看端口的监听状态
netstat 命令: 查看系统中网络连接状态信息
常用参数格式: netstat -anutp
-a, --all 显示本机所有连接和监听的端口
-n, --numeric 以数字形式显示当前建立的有效链接和端口
-u, 显示utp协议链接
-t, 显示tcp协议链接
-p, --programs 显示链接对应的PID与程序名
[root@localhost ~]# netstat -anutp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 829/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 983/master
tcp 0 0 192.168.1.162:22 192.168.1.110:50471 ESTABLISHED 2280/sshd: sss@pts/
tcp6 0 0 :::22 :::* LISTEN 829/sshd
tcp6 0 0 ::1:25 :::* LISTEN 983/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 540/chronyd
udp6 0 0 ::1:323 :::* 540/chronyd
解释
Proto 链接协议的种类
Recv-Q 接收的字节数
Send-Q 从本服务器,发出去的字节数
Local Address 本地的ip地址,可以是ip,也可以是主机名
Foreign Address 远程主机的ip地址
网络的连接状态
CLOSED 初始(无连接)状态
LISTEN 侦听状态,等待远程机器的连接请求
ESTABLISHED 完成tcp三次握手后,主动连接端进入ESTABLISHED状态,此时连接已经建立,可以进行通信
TIME_WAIT; 在tcp四次挥手时,主动关闭端发送了ack包之后,等待最多MSL时间,让被动关闭端收到ACK包
扩展:MSL,一个数据报文在网络中能够生存的最长时间,超过两分钟即认为这个报文已经在网络中被抛弃了,
对于tcp连接,在双方进入TIME_WAIT状态后,通常会等待两倍的MSL时间,再关闭连接,作用是为了防止由于FIN报文丢包,对端重发导致与后续的TCP链接请求产生顺序混乱
- 实战:服务骑上有大量的TIME_WAI连接,如何优化TCP连接,快速释放tcp连接
解决
linux下默认的MSL等待时间是60秒
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60
通过缩短time_wait时间来快速释放连接
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
更改主机名
vim /etc/hostname
配置ip与主机名(域名)的对应关系(优先级高于DNS)
vim /etc/hosts
查看路由信息
route -n
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 ens33
0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 ens37
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens37
Destination: 目标网络或者目标主机
Gateway: 网关,网关地址,如果是本地网段IP,就显示0.0.0.0
Genmask: 子网掩码
添加路由条目
route add -net 192.168.2.0 netmask 255.255.255.0 dev ens37
删除路由条目
route del -net 192.168.2.0 netmask 255.255.255.0
场景:多个网卡,多个网段,实现不同数据走不同网卡,比如网络管理和生产数据分开管理
路由跟踪
路由跟踪:查看经过多少个路由器到达目标网址
traceroute
[root@localhost ~]# traceroute sunlizhao.cn
traceroute to sunlizhao.cn (162.159.211.80), 30 hops max, 60 byte packets
1 gateway (192.168.1.1) 5.478 ms 5.216 ms 5.018 ms
2 100.74.48.1 (100.74.48.1) 4.882 ms 4.766 ms 16.547 ms
3 * * *
4 * * *
5 221.183.12.61 (221.183.12.61) 15.753 ms 221.183.24.237 (221.183.24.237) 15.658 ms 15.466 ms
6 221.183.22.97 (221.183.22.97) 58.331 ms 221.183.22.93 (221.183.22.93) 100.722 ms 100.528 ms
7 221.176.22.162 (221.176.22.162) 45.762 ms 221.176.24.10 (221.176.24.10) 45.639 ms 221.176.22.162 (221.176.22.162) 45.457 ms
8 221.176.24.138 (221.176.24.138) 48.924 ms 221.176.24.142 (221.176.24.142) 45.099 ms 221.176.24.230 (221.176.24.230) 52.561 ms
9 223.118.10.2 (223.118.10.2) 48.500 ms 48.391 ms 48.364 ms
10 223.119.6.105 (223.119.6.105) 60.036 ms 59.825 ms 59.622 ms
11 162.159.211.80 (162.159.211.80) 75.074 ms 68.747 ms 74.574 ms
场景:新上线的服务器sunlizhao.cn 某个地域的用户需要经过几条才能到达服务器
ping
ping 命令的一般格式为
-c 数目 在发送指定数据的包后停止
-i 描述 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次
arping 查看ip地址是否用冲突
例子:查看网关是否有冲突
[root@localhost ~]# arping -I ens33 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.162 ens33
Unicast reply from 192.168.1.1 [34:BD:F9:3B:54:28] 4.477ms
Unicast reply from 192.168.1.1 [34:BD:F9:3B:54:28] 4.823ms
Unicast reply from 192.168.1.1 [34:BD:F9:3B:54:28] 4.557ms
注意:如果一个ip,得到两个mac,那么就有人冒充网关了
watch
作用:实时监测命令的运行结果,可以看到所有变化数据包的大小
-d 高亮显示指令输出信息不同之处
-n 指定指令执行的间隔时间(秒)
每隔一秒高亮差异显示网卡ens33的相关信息
watch -d -n 1 'ifconfig ens33'
ctrl + c 退出