Linux网络管理
网卡命名方式、网络管理常用命令、网络检测工具与故障排查
1、网卡命名方式
自动化的前提是标准化、规范化
1.1 传统命名规则
第一块网卡eth0
第二块网卡eth1
第三块网卡eth2
1.2 网卡回归传统名
网卡回归传统名的步骤:
1、修改网卡配置文件的名字并改其内容
[root@JLin ~]# cd /etc/sysconfig/network-scripts/
[root@JLin network-scripts]# mv ifcfg-ens160 ifcfg-eth0
[root@JLin network-scripts]# vim ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.122.133
NETMASK=255.255.255.0
GATEWAY=192.168.122.2
DNS1=114.114.114.114
2、编辑 /etc/default/grub,在rhgb前面加上net-ifnames=0 biosdevname=0
[root@JLin ~]# vim /etc/default/grub
vim /etc/default/grub.cof
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap ifnames=0 biosdevname rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
3、生成配置文件grub2-mkconfig -o /etc/grub2.cfg
[root@jlin ~]# grub2-mkconfig -o /etc/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-3c9ab33527ab4484b00377dadda9e5f5
Found initrd image: /boot/initramfs-0-rescue-3c9ab33527ab4484b00377dadda9e5f5.img
done
4、重启电脑
reboot
2、网络管理常用命令
2.1 ifconfig命令
ifconfig命令,查看当前处于活动状态的所有网络接口(网卡)的信息,也可以临时修改网络接口(网卡)的配置。
// 查看当前处于活动状态的所有网络接口
[root@jlin ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.180 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::a221:f87a:a500:8777 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1c:53:02 txqueuelen 1000 (Ethernet)
RX packets 525408 bytes 758603438 (723.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 95578 bytes 10771294 (10.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 8 bytes 696 (696.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 696 (696.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
// 仅查看ens33网卡状态
[root@jlin ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.180 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::a221:f87a:a500:8777 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1c:53:02 txqueuelen 1000 (Ethernet)
RX packets 584234 bytes 843966148 (804.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 106566 bytes 12087228 (11.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
// 查看所有网卡状态信息,包括禁用和启用
[root@jlin ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.23.180 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80::a221:f87a:a500:8777 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1c:53:02 txqueuelen 1000 (Ethernet)
RX packets 646259 bytes 929238178 (886.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 125543 bytes 14841119 (14.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 8 bytes 696 (696.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 696 (696.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig输出结果
第一行网卡基本信息
<UP,BROADCAST,RUNNING,MULTICAST>
信息 | 含义 |
---|---|
UP | 表示该接口已启用 |
BROADCAST | 表示该接口支持广播 |
RUNNING | 表示接口在工作中 |
MULTICAST | 表示支持组播 |
MTU | 1500(最大传输单元):1500字节 |
第二行IPv4地址信息
信息 | 含义 |
---|---|
inet | 网卡的IP地址 |
netmask | IP地址掩码 |
broadcast | 广播地址 |
第三行IPv6地址信息
信息 | 含义 |
---|---|
inet6 | 网卡的IPv6地址 |
prefixlen | IPv6地址掩码长度 |
scopeid 0x20 | 作用域,link表示仅该接口有效 |
第四行mac地址信息
信息 | 含义 |
---|---|
ether | 网卡接口的MAC地址 |
txqueuelen | 传输队列长度 |
(Ethernet) | 接口类型为Ethernet |
第五、六行接收报文信息
信息 | 含义 |
---|---|
RX packets | 此接口正确接收数据包个数 |
bytes | 此接口正确接收数据包总字节数 |
RX errors | 接收时产生错误的数据包个数 |
dropped | 接收时丢弃的数据包个数 |
overruns | 接收时由于速度过快而丢失的数据包个数 |
frame | 接收时发生frame错误而丢失的数据包个数 |
第七、八行发送报文信息
|TX pakets|表示此接口正确发送的数据包个数|
|bytes|表示此接口正确发送的的数据包总字节数|
|TX errors|发送时产生错的数据包个数|
|dropped|发送时丢弃的数据包个数|
|overruns|发送时由于数据过快而丢失的数据包个数|
|carrier|发送时发生carrier错误而丢失的数据包个数|
|collisions|发送时冲突的数据包个数|
2.2 ip命令
ip命令,查看所有网络接口的信息,也可临时修改网卡配置
// 语法:ip [OPTIONS] OBJECT {COMMAND | help}
OBJECT:
link 网络设备
addr 协议地址(IPv4/IPv6)
route 路由表
OPTIONS
-s 查看详细信息
COMMAND
show 显示信息
set 设置
add 添加
del 删除
ip link show
// 查看网络设备属性
[root@jlin ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
// 显示报文统计信息
[root@jlin ~]# ip -s link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
2592 32 0 0 0 0
TX: bytes packets errors dropped carrier collsns
2592 32 0 0 0 0
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:1c:53:02 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
977956 12484 0 0 0 0
TX: bytes packets errors dropped carrier collsns
4727743 21068 0 0 0 0
ip link set 网卡名{up|down}
// 启用或禁用网络设备
[root@jlin ~]# ip link set lo down
[root@jlin ~]# ip link set lo up
ip addr show
// 查看网络接口协议地址(IPv4/IPv6)信息
[root@jlin ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:1c:53:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.23.180/24 brd 192.168.23.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::a221:f87a:a500:8777/64 scope link noprefixroute
valid_lft forever preferred_lft forever
ip addr show输出结果
信息 | 含义 |
---|---|
BROADCAST | 表示该接口支持广播 |
MULTICAST | 表示该接口支持多播 |
UP | 表示该网络接口已开启 |
LOWER_UP | 表示网络电缆已接入,设备已连接之网络 |
mtu | 最大传输单位(数据包大小) |
qdisc prifo_fast | 用于数据包排队 |
state UP | 网络接口已开启 |
qlen | 传输长度 |
link/ether | 接口的MAC(硬件)地址 |
brd | MAC广播地址 |
inet | IPV4地址 |
brd | IPv4广播地址 |
scope global | 允许所有人访问此ip地址 |
dynamic | 地址是动态分配的 |
valid_lft forever(永久) | IPv4地址的有效使用期限 |
preferred_lft forever | IPv4地址的首选生存期 |
inet6 | IPv6地址 |
scope link | 仅在允许此设备上访问此ip地址 |
valid_lft forever | IPv6地址的有效使用期限 |
preferred_lft forever | IPv6的首选生存期 |
ip addr add ip地址 dev网卡名
// 给网卡添加IP地址
[root@jlin ~]# ip addr add 192.168.23.180/24 dev ens33
[root@jlin ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:1c:53:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.23.180/24 brd 192.168.23.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::a221:f87a:a500:8777/64 scope link noprefixroute
valid_lft forever preferred_lft forever
ip addr del ip地址 dev 网卡名
// 删除网卡的IP地址
[root@jlin ~]# ip addr del 192.168.23.180/24 dev ens33
[root@jlin ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:1c:53:02 brd ff:ff:ff:ff:ff:ff
inet 192.168.23.181/24 brd 192.168.23.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::a221:f87a:a500:8777/64 scope link noprefixroute
valid_lft forever preferred_lft forever
ip route show
[root@jlin ~]# ip route show
default via 192.168.23.2 dev ens33 proto static metric 100
192.168.23.0/24 dev ens33 proto kernel scope link src 192.168.23.180 metric 100
ip route show输出结果
信息 | 含义 |
---|---|
default | 默认路由 |
via | 下一跳 |
dev | 网卡 |
proto | 路由协议 |
metric | 度量值 |
scope | 有效范围 |
ip route add 目的地址 via 下一跳 dev 网卡名
[root@jlin ~]# ip route add 192.168.23.0/24 dev 192.168.23.2 dev ens33
[root@jlin ~]# ip route show
default via 192.168.23.2 dev ens33 proto static metric 100
192.168.23.0/24 dev ens33 proto kernel scope link src 192.168.23.180 metric 100
ip route del 目的地址 dev 网卡名
[root@jlin ~]# ip route add 192.168.17.0/24 via 192.168.23.180 dev ens33
[root@jlin ~]# ip route show
default via 192.168.23.2 dev ens33 proto static metric 100
192.168.17.0/24 via 192.168.23.180 dev ens33
192.168.23.0/24 dev ens33 proto kernel scope link src 192.168.23.180 metric 100
2.3 route命令
// 查看当前路由表
[root@jlin ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.23.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
// 以数字方式显示路由表
[root@jlin ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.23.2 0.0.0.0 UG 100 0 0 ens33
192.168.23.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
route命令输出结果
信息 | 含义 |
---|---|
Flags:U | up表示此路由启动状态 |
Flags:H | host表示网关为以主机 |
Flags:G | gateway表示网络为一路由器 |
Flags:R | reinstate route使用动态路由重新初始化的路由 |
Flags:D | dynamically动态路由 |
Flags:M | modified此路由已被修改 |
Flags:! | 表示此路由当前为关闭状态 |
Ref | 该路由的引用数 |
Use | 该路由被使用的次数 |
Iface | 接口,也是网卡 |
route命令添加或删除路由
route命令添加的路由是临时的,重启之后就会失效
// 语法:route add/del [-net或-host] 目的地址 gw 网关地址 dev 网卡名
-net 表示目的地址是一个网段
-host 表示目的地址是一个具体的ip
3、网络检测工具与故障排查
3.1 ping命令
ping命令测试与另一台主机是否可达
// ping命令常用选项:
-c 指定ping的次数
-i 指定ping包的发送时隔
-w 指定ping的时间
// ping 3次后退出
[root@jlin ~]# ping -c 3 www.jlin.red
PING www.jlin.red (116.62.111.221) 56(84) bytes of data.
64 bytes from localhost (116.62.111.221): icmp_seq=1 ttl=128 time=31.4 ms
64 bytes from localhost (116.62.111.221): icmp_seq=2 ttl=128 time=34.1 ms
64 bytes from localhost (116.62.111.221): icmp_seq=3 ttl=128 time=29.3 ms
--- www.jlin.red ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3067ms
rtt min/avg/max/mdev = 29.310/31.609/34.112/1.971 ms
// 每隔两秒ping一次,一共ping3次
[root@jlin ~]# ping -c 3 www.jlin.red
PING www.jlin.red (116.62.111.221) 56(84) bytes of data.
64 bytes from localhost (116.62.111.221): icmp_seq=1 ttl=128 time=31.4 ms
64 bytes from localhost (116.62.111.221): icmp_seq=2 ttl=128 time=34.1 ms
64 bytes from localhost (116.62.111.221): icmp_seq=3 ttl=128 time=29.3 ms
--- www.jlin.red ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3067ms
rtt min/avg/max/mdev = 29.310/31.609/34.112/1.971 ms
// 一共ping 3秒,3秒后退出
[root@jlin ~]# ping -w 3 www.jlin.red
PING www.jlin.red (116.62.111.221) 56(84) bytes of data.
64 bytes from 221.111.62.116.in-addr.arpa (116.62.111.221): icmp_seq=1 ttl=128 time=29.7 ms
64 bytes from 221.111.62.116.in-addr.arpa (116.62.111.221): icmp_seq=2 ttl=128 time=32.8 ms
--- www.jlin.red ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2035ms
rtt min/avg/max/mdev = 29.799/31.319/32.839/1.520 ms
3.2 host与nslookup
host和nslookup命令用于查询DNS记录
// host和nslookup命令需要安装
yum -y install bind-utils
// 使用host命令查询看DNS解析记录
[root@jlin ~]# host www.jlin.red
www.jlin.red has address 116.62.111.221
// 使用nslookup命令查询看DNS解析记录,nslookup命令可以看到查询DNS解析的流程
[root@jlin ~]# nslookup www.jlin.red
Server: 192.168.23.2
Address: 192.168.23.2#53
Non-authoritative answer:
Name: www.jlin.red
Address: 116.62.111.221
7.3 traceroute命令
traceroute命令用于路由跟踪,检测网络故障出现的ISP运营商或是对端服务无法响应
// traceroute命令需要安装
yum -y install traceroute
// traceroute命令只追踪内网路由
[root@jlin ~]# traceroute www.jlin.red
traceroute to www.jlin.red (116.62.111.221), 30 hops max, 60 byte packets
1 gateway (192.168.23.2) 0.101 ms 0.038 ms 0.169 ms
2 * * *
3 * * *
3.4 netstat命令
netstat命令用于显示IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况
// 语法:netstat [options]
// 常用的options
-r:显示路由表
-t:tcp协议连接
-u:udp协议链接
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关的程序及pid
// 显示路由表
[root@jlin ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
192.168.23.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
// 以数字方式显示路由表
[root@jlin ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.23.2 0.0.0.0 UG 0 0 0 ens33
192.168.23.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
// 常用选项
[root@jlin ~]# netstat -anltup
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:111 0.0.0.0:* LISTEN 756/rpcbind
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1984/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1171/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1168/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1590/master
tcp 0 0 192.168.23.180:22 192.168.23.1:57370 ESTABLISHED 14568/sshd: root@pt
tcp6 0 0 :::111 :::* LISTEN 756/rpcbind
tcp6 0 0 :::22 :::* LISTEN 1171/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1168/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1590/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 801/chronyd
udp 0 0 0.0.0.0:45409 0.0.0.0:* 799/avahi-daemon: r
udp 0 0 0.0.0.0:929 0.0.0.0:* 756/rpcbind
udp 0 0 0.0.0.0:5353 0.0.0.0:* 799/avahi-daemon: r
udp 0 0 192.168.122.1:53 0.0.0.0:* 1984/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1984/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 10028/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 756/rpcbind
udp6 0 0 ::1:323 :::* 801/chronyd
udp6 0 0 :::929 :::* 756/rpcbind
udp6 0 0 :::111 :::* 756/rpcbind
3.5 ss命令
ss是一种网络状态查看工具,取代netstat
// 语法:ss [options]
// 常用的options
-t:tcp协议相关
-u:udp协议相关
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关的程序及pid
// 常见的state
# TCP finite state machine:有限状态机
listening:监听
established:已建立的连接
// 以数字格式查看TCP相关信息
[root@jlin ~]# ss -ant
// 以数字格式查看监听的tcp端口
[root@jlin ~]# ss -tanl
// 以数字格式查看监听的tcp端口和进程号
[root@jlin ~]# ss -antlp
// 以数字格式查看udp相关信息
[root@jlin ~]# ss -anu
// 以数字格式查看udp监听的端口
[root@jlin ~]# ss -anul
// 以数字格式查看监听的tcp和udp端口以及进程pid
[root@jlin ~]# ss -anltup
常见端口
服务 | 端口 |
---|---|
http | 80/tcp |
https | 443/tcp |
ssh | 22/tcp |
ftp | 20,21/tcp |
mysql | 3306/tcp |
rsync | 873/rsync |
redis | 6379/tcp |
3.6 网络故障排查
- 网络故障分为硬件、软件故障
- 网卡损坏
- 链路故障
- 网卡驱动不兼容
- 网络排查思路
- ping本地回环口,确定本机TCP/IP协议栈是否正常
- ping本机IP地址,确定本地设备以及驱动是否正常
- ping同网段主机,确定二层网络是否正常工作
- ping网关地址,确定本地与网络是否正常
- ping公网地址,确定本地路由是否正常
- ping公网域名,确定DNS客户端是否正常
- 服务故障配查思路
- 使用telnet检测端口是否开放
- 检查服务段防火墙以及SElinux
- 检查相应的权限是否配置正常
- 检查日志是否有异常
- 检查完毕后持续测试
更多推荐
所有评论(0)