Linux网络管理
1.网络基础概述
1)centos7 网卡命名规则
传统的 CentOS/RHEL 系统以 eth* 名来命名网卡, 在 CentOS/RHEL7 系统开始使用新的命名规则:
基于固件、设备结构、设备类型
1.由两个字母开头标示固件
以太网网卡以 en 开头
无线网卡以 wl 开头
2.设备结构
o 表示板载网卡 (on-board)
s 热插拔结构 (hotplug slot)
p PCI 插槽位置
2)centos7修改网卡为eth0
修改网卡配置文件
[root@server~]# cd /etc/sysconfig/network-scripts/ [root@server network-scripts]# mv ifcfg-ens33 ifcfg-eth0 [root@server network-scripts]# vim ifcfg-eth0 NAME=eth0 DEVICE=eth0
默认centos7不支持ifconfig命令安装net-tools包
ifconfig、route、arp 和 netstat 等命令行工具( 统称为 net-tools )来配置网络功能,解决网络故障。
[root@server~]# yum install net-tools [root@server~]# ifconfig eth0 #再次查看网卡信息 eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.56.12 netmask 255.255.255.0 broadcast 192.168.56.255
2.网络接口信息查看
查看网络接口配置信息
查看当前处于活动状态的网络接口
[root@server ~]# ifconfig
仅查看eth0网卡状态信息
[root@server ~]# ifconfig eth0
查看所有网卡状态信息, 包括禁用和启用
[root@server ~]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.0.200 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe80::20c:29ff:fee0:c79a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:e0:c7:9a txqueuelen 1000 (Ethernet) RX packets 5172 bytes 431877 (421.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5671 bytes 6858340 (6.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
网卡配置信息含义如下:
UP: 网卡处于活动状态 BROADCAST: 支持广播 RUNNING: 网线已接入 MULTICAST: 支持组播 MTU: 最大传输单元(字节),即此接口一次所能传输的最大封包 inet: 显示IPv4地址行 inet6: 显示IPv6地址行 link/enther: 指设备硬件(MAC)地址 txqueuelen: 传输缓存区长度大小 RX packets: 接收的数据包 TX packets: 发送的数据包 errors: 总的收包的错误数量 dropped: 由于各种原因, 导致拷贝在内存过程中被丢弃 collisions: 网络信号冲突情况, 值不为0则可能存在网络故障
其他查看ip指令
[root@server ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,①UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state ①UP qlen 1000 ②link/ether 00:0c:29:e0:c7:9a brd ff:ff:ff:ff:ff:ff ③inet 10.0.0.200/24 brd 10.0.0.255 scope global ens32 valid_lft forever preferred_lft forever ⑤inet6 fe80::20c:29ff:fee0:c79a/64 scope link valid_lft forever preferred_lft forever
①: 活动接口为UP
②: Link行指定设备的MAC地址
③: inet行显示IPv4地址和前缀
④: 广播地址、作用域和设备名称在此行
⑤: inet6行显示IPv6信息
ip命令也可用于显示关于网络性能的统计信息, 比如: 发送和传送的数据包、错误、丢弃
[root@server ~]# ip -s link show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:e0:c7:9a brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 441897 5280 0 0 0 0 TX: bytes packets errors dropped carrier collsns 6870050 5760 0 0 0 0
ip 指令与ifconfig指令的区别
ifconfig 查看所有网卡状态信息,包括禁用和启用
两个命令的功能不一样 ifconfig命令是查看配置网卡信息 ip命令是查看配置路由信息 ifconfig能做的ip未必能做,ip能做的ifconfig也未必能做,只不过两者刚好都提供了查看ip地址栏方法而已。
3.NetworkManager管理网络
RHEL/CentOS7 系统默认使用 NetworkManager 来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。
NetworkManager 提供的命令行和图形配置工具对网络进行设定, 设定保存的配置文件
在 /etc/sysconfig/network-scripts 目录下, 工具有 nmcli, nmtui, nm-connect-editor
device :物理设备, 例如 enp2s0,virbr0,team0 connection :连接设置, 具体网络配置方案 1.不同的网络连接配置可以应用到相同的物理设备,但物理设备同一时间只能应用其中某个网络连接 2.针对物理网络接口, 设定不同的网络连接, 在不同的使用环境中激活相应的网络连接,就可以实现网络配置信息的自动切换了
1.使用nmcli命令查看设备以及连接情况
nmcli networkmanager 网路管理工具 nmcli 命令行管理工具 nmtui 命令行伪图形化管理工具
安装bash-completion,实现tab补全
[root@server ~]# yum install -y bash-completion
查看设备状态
[root@server ~]# nmcli device DEVICE TYPE STATE CONNECTION eth0 ethernet connected eth0 lo loopback unmanaged --
指定查看设备的详细状态
[root@server ~]# nmcli device show eth0 GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:E0:C7:9A
查看连接状态
[root@server ~]# nmcli connection NAME UUID TYPE DEVICE eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
2.使用nmcli创建新的连接
新增一个静态地址的连接, 配置IP、掩码、网关等
静态地址添加流程
1.添加一个连接的配置
2.给连接指定一个名称
3.连接配置绑定物理网卡
4.网卡的类型,网卡开机启动
5.网卡通过什么途径获取地址(静态、dhcp)
6.配置对应的IP地址、掩码、网关、DNS
网络策略案例
案例1:新增网卡,修改网卡的参数为: IP:202.103.1.10/24 GW:202.103.1.1 DNS:223.5.5.5 223.6.6.6
nmcli connection add \ # 创建一个网络策略 con-name ens38 ifname ens38 \ con-name 添加网络策略名称 ifname 指定设备 type ethernet \ #接口类型 autoconnect yes \ #自动开关 一定要输入 ipv4.method manual \ #选择网络类型 dncp manual ipv4.addresses 202.103.1.10/24 \ #配置ip地址 ipv4.gateway 202.103.1.1 \ #配置网关 ipv4.dns 223.5.5.5 +ipv4.dns 223.6.6.6 \ #添加dns
正在上传…重新上传取消
案例2:新增一个ens38的网路策略修改参数为 IP:100.1.1.10/24 GW:100.1.1.1 DNS:223.5.5.5 223.6.6.6
nmcli connection add con-name ens38-100.1.1.1 ifname ens38 autoconnect yes type ethernet ipv4.method manual ipv4.addresses 100.1.1.10/24 ipv4.gateway 100.1.1.1 ipv4.dns 223.5.5.5 +ipv4.dns 223.6.6.6
nmcli connection down ens38 && nmcli connection up ens38-10.1.1.1
案例3:新增一个网络策略,网卡信息为: ip:1.1.1.1/24 gateway:1.1.1.254 dns:8.8.8.8 dns:5.5.5.5
nmcli connection add con-name ens37-1.1.1.1 ifname ens37 type ethernet autoconnect yes ipv4.method manual ipv4.addresses 1.1.1.1/24 ipv4.gateway 1.1.1.254 ipv4.dns 8.8.8.8 +ipv4.dns 5.5.5.5
案例4:新增一个网络策略,添加一个dncp的网络策略ens38-dhcp
nmcli connection add con-name ens37-dhcp ifname ens37 type ethernet autoconnect yes ipv4.method auto
正在上传…重新上传取消
3.使用nmcli修改已有的网络连接
1.取消开机自动激活网络
[root@server ~]# nmcli connection modify eth1-static autoconnect no
2.修改连接的dns
[root@server ~]# nmcli connection modify eth1-static ipv4.dns 8.8.8.8
3.给连接再增加dns,有些设定值通过+/-可以增加或则移除设定
[root@server ~]# nmcli connection modify eth1-static +ipv4.dns 8.8.8.8
4.替换连接的静态IP和默认网关
[root@server ~]# nmcli connection modify eth1-static ipv4.addresses 172.16.2.10/24 ipv4.gateway 172.16.2.254
5.添加一个没有默认网关的IP
[root@server ~]# nmcli connection modify eth1-static +ipv4.addresses 10.0.0.201/24
6.修改完毕,nmcli仅仅修改并保存了配置,要激活更改,需要重激活连接
[root@server ~]# nmcli connection down eth1-static && nmcli connection up eth1-static 删除自建的connection [root@server ~]# nmcli connection delete eth1-static
案例
案例4:修改ens38-100.1.1.1的IP地址为100.1.1.111/24 nmcli connection modify ens38-100.1.1 ipv4.addresses 100.1.1.111
案例5:修改ens38-100.1.1.1的ip地址为100.1.1.222/24 修改策略名为ens38-100.1.1.222
nmcli connection modify ens38-10.1.1 con-name ens38-10.1.1.222
4.使用nmcli管理网络 /etc/sysconfig/network-scripts/配置文件
1.新增物理网卡
2.拷贝配置文件(可以和设备名称一致)
3.修改配置,UUID、连接名称、设备名称、IP地址等
4.重新加载网络配置
5.启用连接,并检查
创建新网卡配置文件 [root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none #none表示手动获取,dhcp表示dhcp获取 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=eth1 DEVICE=eth1 ONBOOT=yes #UUID= #注释掉,系统会自动生成,如果存在会导致UUID冲突 IPADDR=192.168.100.10 PREFIX=24 #PREFIX和NETMASK不能共存 #NETMASK=255.255.255.0 GATEWAY=192.168.100.1 DNS1=223.5.5.5 DNS2=8.8.8.8 //手工编辑正在使用的配置文件,需要重载配置,然后重启 [root@server ~]# nmcli connection reload [root@server ~]# nmcli connection down eth1 && nmcli connection down eth1
5.使用原生Network管理网络
CentOS/RHEL 的网络配置文件默认目录为 /etc/sysconfig/network-scripts
默认第一块物理网卡配置文件为 ifcfg-eth0 , 如果有第二块物理网卡, 配置文件则为 ifcfg-eth1 以此类推。 注意: 如果新增物理网卡没有配置文件,可选择复制系统默认的进行修改。
-
删除 NetworkManger 建立连接, 同时停止 NetworkManger 服务
[root@localhost network-scripts]# systemctl disable NetworkManager [root@localhost network-scripts]# systemctl stop NetworkManager
-
添加一块物理网卡, 然后新增网络连接配置文件
-
复制配置eth0配置文件为eth1
[root@server ~]# cp /etc/sysconfig/network-scripts/ifcfg-{eth0,eth1}
编辑网卡配置文件
[root@nginx ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes NAME=eth1 DEVICE=eth1 ONBOOT=yes IPADDR=192.168.56.12 NETMASK=255.255.255.0 GATEWAY=192.168.56.2 DNS1=223.5.5.5
重启network网络服务加载网络 [root@server ~]# systemctl restart network.service //选项 描述 BOOTPROTO=none //获取地址方式[none|dhcp|static] IPADDR=192.168.56.12 //固定IP地址 PREFIX=24 //掩码 GATEWAY=192.168.56.2 //网关 DNS1=192.168.56.2 //域名解析 DEVICE=eth1 //设备名称 NAME="eth1" //连接名称 ONBOOT=yes //开机自启动 DEFROUTE=yes //将接口设定为默认路由[yes|no] USERCTL=yes //允许非root用户管理接口[yes|no]
案例
案例1:新增网卡,修改网卡的参数为: IP:192.168.1.10/24 GW:192.168.1.1 DNS:223.5.5.5 223.6.6.6、 1.复制其他网卡信息
cd /etc/sysconfig/network-scripts/ cp /etc/sysconfig/network-scripts/ifcfg-ens3{3,7}
2.修改ens37网卡信息
vim ifcfg-ens37
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" 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="ens37" #网卡名称 DEVICE="ens37" #设备名称 ONBOOT="yes" IPADDR="192.168.1.10" #ip地址 PREFIX="24" #子网掩码 GATEWAY="192.168.1.1" #网关 DNS1="223.5.5.5" #DNS DNS2=223.6.6.6 IPV6_PRIVACY="no"
3.ifdown ens36 && ifup ens36 重启网卡
案例2:新增网卡,修改网卡的参数为: IP:172.16.1.10/16 GW:172.16.1.1 DNS:223.5.5.5 223.6.6.6
步骤1:添加网卡 步骤2:查看网卡设备名以及网卡名 ifconfig
步骤3:复制ens36的网卡信息 cd /etc/sysconfig/network-scripts/ cp /etc/sysconfig/network-scripts/ifcfg-ens3{3,7}
步骤4:修改网卡信息 vim ifcfg-ens37
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" 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="ens37" DEVICE="ens37" ONBOOT="yes" IPADDR="172.16.1.10" PREFIX="16" GATEWAY="172.16.1.1" DNS1="223.5.5.5" DNS2=223.6.6.6 IPV6_PRIVACY="no"
步骤5:将网卡重新启动 ifdown ens37 && ifup ens37
6.Route设置路由以及网卡
Linux 主机之间是使用IP进行通信,假设A主机和B主机同在一个网段内且网卡都处于激活状态,则A具备和B直接通信的能力,但如果A主机和B主机处于两个不同的网段,则A必须通过路由器才能和B通信,路由器术语IT设备的基础设施,每一个网段都应该至少有一个网关
增加网段路由 [root@server ~]# route add -net 192.168.90.0/24 gw 192.168.56.254 [root@server ~]# route add -net 0.0.0.0/0 gw 192.168.56.254 删除网段路由 [root@server ~]# route del -net 192.168.90.0/24 [root@server ~]# route del -net 0.0.0.0/0 gw 192.168.56.254 增加主机路由 [root@server ~]# route add -host 192.168.70.1 gw 192.168.56.254 删除主机路由 [root@server ~]# route del -host 192.168.70.1/32 查看当前路由表 route -n
如果重启,配置信息就不存在,必须将这种配置信息写道相关的配置文件中才能永久保存
7.主机名设定与名称解析服务
生产环境中必须配置主机名,同时主机名也需要遵循一定的规范,比如:
公有云: 地区-项目-业务-服务-节点-地址 bj-shop-register-nginx-node1-192.168.56.13 bj-med-pay-mysql-master01-192.168.56.11 bj-med-pay-mysql-slave01-192.168.56.12
1)主机名查看与配置
hostname命令可以查看主机名, 也可以用于临时修改主机名 [root@server ~]# hostname "test" CentOS7系统建议使用hostnamectl修改和查看主机名 设定永久名称 [root@server ~]# hostnamectl set-hostname nginx.node1.server.com 永久修改主机名会修改/etc/hostname文件 [root@server ~]# cat /etc/hostname nginx.node1.server.com 检查状态信息 [root@server ~]# hostnamectl Static hostname: nginx.node1.server.com Icon name: computer-vm Chassis: vm Machine ID: af0cdce735c041eab3a8df17dd08c112 Boot ID: 72d7e90f0edb4880978eb18e73d4764c Virtualization: vmware Operating System: Red Hat Enterprise Linux server 7.4 (Maipo) CPE OS Name: cpe:/o:redhat:enterprise_linux:7.4:GA:server Kernel: Linux 3.10.0-693.el7.x86_64 Architecture: x86-64
2)DNS客户端配置
letc/hosts文件,加快域名解析,方便小型局域网用户使用内部设备
假设公司有AB两台主机,B主机添加的IP为192.168.69.12,为了方便访问B主机,可以在A主机的/etc/hosts文件中添加一条记录
192.168.69.12 hostB
完成后在A主机上使用ping命令测试到B主机的连通性,如果没有添加记录,将会显示unknown hosthostB的错误
使用hosts文件仅能为有限的主机记录,无法将所有已知的主机名记录到hosts文件中,因此当今几乎所有的主机都在使用DNS来解析地址, DNS是全互联网上主机名及其IP地址对应关系的数据库,配置文件/etc/resolv.conf
#[root@server ~]# cat /etc/resolv.conf # Generated by NetworkManager search node1.server.com nameserver 211.161.122.2
8.网络检测工具与故障排查
ping命令的目的在于测试另一台主机是否可达, 如果ping不到某台主机,就说明对方主机已经出现了问题, 但是不排除由于链路中的防火墙、ping被丢弃等原因造成ping不通的情况。
-c 指定ping的次数 -i 指定ping包的发送间隔 -w 如果ping没有回应, 则在指定超时时间后退出
host/nslookup命令是用来查询DNS记录的,如果使用域名作为host的参数, 命令返回该域名
[root@server ~]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 111.13.100.91 www.a.shifen.com has address 111.13.100.92 [root@server yum.repos.d]# nslookup www.baidu.com Server: 223.5.5.5 Address: 223.5.5.5#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 111.13.100.91 Name: www.a.shifen.com Address: 111.13.100.92
trace out 命令是用来路由跟踪,检测网络故障出现在ISP运营商或是对端服务无法响应
[root@server ~]# yum install -y traceroute [root@server yum.repos.d]# traceroute www.baidu.com traceroute to www.baidu.com (111.13.100.91), 30 hops max, 60 byte packets 1 gateway (10.0.0.254) 0.209 ms 0.264 ms 0.203 ms 2 * * * 3 * * * 4 * * *
ss/netstat命令查看网络连接状态
-t tcp协议的连接 -a 所有状态的连接 -n 数字化输出 -u upd协议的连接 -l 处于listen状态的连接 -p 输出相应进程的名字 1. Show TCP sockets (LISTEN) [root@server~]# ss -tnl [root@server~]# ss -tnl |grep :80 [root@server~]# ss -tnl |grep :21 [root@server~]# ss -atn [root@server~]# ss -atn |grep :22 常见端口 http 80/tcp https 443/tcp ssh 22/tcp ftp 20,21/tcp mysql 3306/tcp rsync 873/rsync redis 6379/tcp
9 网络故障排查
网络故障分为硬件\软件故障
网卡损坏
链路故障
网卡驱动不兼容
网络排查思路
1.ping本地回环口, 确定本机TCP/IP协议栈是否正常
2.ping本机IP地址, 确定本地设备以及驱动是否正常
3.ping同网段主机, 确定二层网络是否正常工作
4.ping网关地址, 确定本地与网络是否正常
5.ping公网地址, 确定本地路由是否正常
6.ping公网域名, 确定DNS客户端是否正常
服务故障排查思路
1.使用telnet检测端口是否开放
2.检查服务端防火墙以及SElinux
3.检查相应的权限是否配置正常
4.检查日志是否有异常
5.检查完毕后持续测试文章来源:https://www.toymoban.com/news/detail-780497.html
建议: 所有的排查思路都从OSI七层模型由下往上逐一进行排查(学会看日志)文章来源地址https://www.toymoban.com/news/detail-780497.html
到了这里,关于Linux网络管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!