网络管理基础
Network interface names
Traditionally, network interfaces in Linux are enumerated as eth0, eth1, eth2, and so on. However, the mechanism which
sets these names can cause changes to which interface gets which name as devices are added and removed.
The default naming behavior in Red Hat Enterprise Linux 7 is to assign fixed names based on firmware, device topology,
and device type.
Interface names have the following characters:
Ethernet interfaces begin with en, WLAN interfaces begin with wl, and WWAN interfaces begin with ww.
The next character(s) represents the type of adapter with an o for on-board, s for hotplug slot, and p for PCI geographic location.
Not used by default but also available to administrators, an x is used to incorporate a MAC address.
Finally, a number N is used to represent an index, ID, or port.
If the fixed name cannot be determined, the traditional names such as ethN will be used.
For example, the first embedded network interface may be named eno1 and a PCI card network interface may be named enp2s0.
The new names make it easier to distinguish the relationship between a port and its name if the user knows both, but the
trade off is that users cannot assume a system with one interface calls that interface eth0.
使用NetworkManager管理网络
网络管理器(NetworkManager)是一个动态网络的控制器与配置系统,它用于当网络设备可用时保持设备和连接开启并激活
默认情况下,CentOS/RHEL 7 已安装网络管理器,并处于启用状态。
device 设备,物理设备 例如enp2s0,virbr0,team0
connection 连接,逻辑设置 指的是一套具体配置方案
多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。
这样的好处是针对一个网络接口,可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应的connection
NetworkManager提供的工具
nmcli, nmtui, nm-connect-editor
1. 方法一: 修改ip/netmask/dns/gateway[了解]
[root@CentOS7 ~]# nmcli connection add con-name enp2s0-auto autoconnect yes ifname enp2s0 type ethernet
[root@CentOS7 ~]# nmcli connection add con-name enp2s0-gun autoconnect yes ifname enp2s0 type ethernet ip4 10.10.10.10/24 gw4 10.10.10.254
[root@CentOS7 ~]# nmcli connection show enp2s0-auto |grep ipv4.me
ipv4.method: auto
[root@CentOS7 ~]# nmcli connection show enp2s0-gun |grep ipv4.me
ipv4.method: manual
[root@CentOS7 ~]# ls /etc/sysconfig/network-scripts/
ifcfg-enp2s0 ifdown-ippp ifdown-TeamPort ifup-ipv6 ifup-Team
ifcfg-enp2s0-auto ifdown-ipv6 ifdown-tunnel ifup-isdn ifup-TeamPort
ifcfg-enp2s0-gun ifdown-isdn ifup ifup-plip ifup-tunnel
[root@CentOS7 ~]# nmcli connection up enp2s0-auto
[root@CentOS7 ~]# nmcli connection delete enp2s0-auto
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun ipv4.method a
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun ipv4.method m
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun +ipv4.addresses 20.20.20.20/24
[root@CentOS7 ~]# nmcli connection modify enp2s0-gun +ipv4.dns 114.114.114.114
[root@CentOS7 ~]# nmcli connection show enp2s0-gun |grep ipv4.add
ipv4.addresses: 10.10.10.10/24, 20.20.20.20/24
2. 方法二:修改ip/netmask/dns/gateway
[root@CentOS7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp2s0
NAME="enp2s0"
DEVICE="enp2s0"
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
IPADDR=172.16.120.246
PREFIX=24
IPADDR1=192.168.200.246
PREFIX1=24
GATEWAY=172.16.120.254
DNS1=8.8.8.8
DNS2=114.114.114.114
[root@CentOS7 ~]# nmcli con reload
[root@CentOS7 ~]# nmcli con down enp2s0; nmcli con up enp2s0
注:删除自建的连接connection
不使用NetworkManager管理网络
aliyun
[root@aliyun ~]# nmcli connection delete enp2s0-auto
[root@aliyun ~]# systemctl disable NetworkManager
[root@aliyun ~]# systemctl stop NetworkManager
[root@aliyun ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
Active: inactive (dead)
[root@aliyun ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
ONBOOT=yes
NETBOOT=yes
BOOTPROTO=none
IPADDR=192.168.122.169
PREFIX=24
TYPE=Ethernet
[root@aliyun ~]# systemctl restart network.service
以下配置跟NetworkManager无关:
1. 修改主机名/etc/hostname
# hostnamectl set-hostname CentOS7.example.com
# cat /etc/hostname
# reboot
2. 配置名字解析Configuring name resolution
a. hosts
[root@CentOS7 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
119.75.218.70 www.baidu.com
[root@CentOS7 ~]# getent hosts www.baidu.com
119.75.218.70 www.baidu.com
b. resolv.conf DNS
[root@CentOS7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
[root@CentOS7 ~]# yum -y install bind-utils
[root@CentOS7 ~]# host www.sina.com
www.sina.com is an alias for us.sina.com.cn.
us.sina.com.cn is an alias for wwwus.sina.com.
wwwus.sina.com has address 66.102.251.33
基本的网络测试工具
[root@CentOS7 ~]# ip a
[root@CentOS7 ~]# ip a s eth0
[root@CentOS7 ~]# ip route
[root@CentOS7 ~]# ip neigh
[root@CentOS7 ~]# hostname
[root@CentOS7 ~]# ping www.baidu.com
[root@CentOS7 ~]# ping -c2 www.baidu.com
[root@CentOS7 ~]# ip -s link show eth0
[root@CentOS7 ~]# traceroute www.sina.com
[root@CentOS7 ~]# tracepath www.sina.com
1?: [LOCALHOST] pmtu 1500
1: no reply
2: 11.245.87.126 0.787ms
3: 106.11.130.218 0.387ms
4: 42.120.244.125 0.425ms
5: 150.138.132.157 1.469ms
6: 150.138.128.241 3.546ms asymm 7
7: 202.97.40.241 24.677ms
8: 202.97.24.154 14.197ms
9: 202.97.33.154 18.340ms asymm 10
10: 202.97.90.242 182.632ms
11: 203.14.186.138 193.383ms asymm 13
12: 218.30.41.234 209.543ms asymm 13
13: 66.102.251.33 163.224ms reached
Resume: pmtu 1500 hops 13 back 14
查看设备物理连接的状态
[root@CentOS7 ~]# ip a
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN qlen 1000
如果在连接禁用 onboot=no 以上的信息不真实
[root@CentOS7 ~]# ethtool enp1s0
Link detected: no
ports and services
以下为示例服务:
[root@aliyun ~]# yum -y install httpd vsftpd
[root@aliyun ~]# systemctl start httpd
[root@aliyun ~]# systemctl start vsftpd
http 80/tcp
https 443/tcp
ssh 22/tcp
ftp 21/tcp
1. Show TCP sockets (LISTEN)
[root@aliyun ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:8080 *:*
LISTEN 0 10 114.215.71.214:53 *:*
LISTEN 0 10 10.29.89.165:53 *:*
LISTEN 0 10 127.0.0.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
LISTEN 0 128 *:443 *:*
LISTEN 0 32 :::21 :::*
LISTEN 0 10 :::53 :::*
[root@aliyun ~]# ss -tnl |grep :80
LISTEN 0 128 *:80 *:*
[root@aliyun ~]# ss -tnl |grep :21
LISTEN 0 32 :::21 :::*
[root@aliyun ~]# ss -atn
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
LISTEN 0 10 114.215.71.214:53 *:*
LISTEN 0 10 10.29.89.165:53 *:*
LISTEN 0 10 127.0.0.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:953 *:*
LISTEN 0 128 127.0.0.1:6010 *:*
ESTAB 0 52 114.215.71.214:22 123.120.38.233:49603
ESTAB 0 0 114.215.71.214:40962 140.205.140.205:80
LISTEN 0 32 :::21 :::*
LISTEN 0 10 :::53 :::*
[root@aliyun ~]# ss -atn |grep :22
LISTEN 0 128 *:22 *:*
ESTAB 0 52 114.215.71.214:22 123.120.38.233:49603
[root@aliyun ~]# ss -atn |grep :80
LISTEN 0 128 *:80 *:*
ESTAB 0 0 114.215.71.214:40962 140.205.140.205:80
a 所有状态,包括 l LISTEN
2. Show UDP sockets (所有状态)
[alice@CentOS7 ~]$ ss -anu
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 114.215.71.214:53 *:*
UNCONN 0 0 10.29.89.165:53 *:*
UNCONN 0 0 127.0.0.1:53 *:*
UNCONN 0 0 114.215.71.214:123 *:*
UNCONN 0 0 10.29.89.165:123 *:*
UNCONN 0 0 127.0.0.1:123 *:*
UNCONN 0 0 *:123 *:*
UNCONN 0 0 :::53 :::*
UNCONN 0 0 :::123 :::*
[kiosk@foundation0 ~]$ ss -tan |grep :5910
LISTEN 0 5 *:5910 *:*
ESTAB 0 0 172.25.254.250:5910 172.25.254.44:51435
ESTAB 0 0 172.25.254.250:5910 172.25.254.6:40546
ESTAB 0 0 172.25.254.250:5910 172.25.254.18:37780
ESTAB 0 0 172.25.254.250:5910 172.25.254.13:55841
ESTAB 0 0 172.25.254.250:5910 172.25.254.35:36984
ESTAB 0 0 172.25.254.250:5910 172.25.254.9:47342
ESTAB 0 0 172.25.254.250:5910 172.25.254.2:40955
ESTAB 0 0 172.25.254.250:5910 172.25.254.12:50833
ESTAB 0 0 172.25.254.250:5910 172.25.254.36:50854
ESTAB 0 0 172.25.254.250:5910 172.25.254.1:52444
ESTAB 0 0 172.25.254.250:5910 172.25.254.47:39335
ESTAB 10 0 172.25.254.250:5910 172.25.254.14:55833
CentOS7修改网卡为eth0
1. 修改网卡配置文件
# mv ifcfg-eno16777728 ifcfg-eth0
# vim ifcfg-eth0
NAME=eth0
2. GRUB添加kernel参数
# vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="...... net.ifnames=0"
# grub2-mkconfig -o /boot/grub2/grub.cfg
3. reboot
# reboot
在KVM虚拟机添加全虚拟化的网卡
也可在安装系统时添加kernel参数 net.ifnames=0
KVM安装Centos7:
临时配置网络信息
ip/netmask
# ip addr add dev eth1 3.3.3.3/24
# ip addr del dev eth1 3.3.3.3/24
gateway
# ip route del default
# ip route add default via 192.168.122.3
# ip route add 10.10.10.0/24 via 192.168.122.5
hostname
# hostname CentOS7.cc.com