linux网络相关

网卡命名规则

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 退出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值