- 查看ip命令
- 网络配置管理
- 文件配置
- nmcli命令配置
- nmtui/setup
计算机网络可以简单分为局域网和广域网。国际标准组织ISO制定了一个层次化的网络通信参考模型--OSI(open system interconnection),每一层定义了其实现的功能以实现设备间网络通信。 但在实际中使用的是TCP/IP协议,(本身包含TCP传输控制协议,IP互联网络协议),tcp?ip模型范围4层将多个网络进行无缝连接。 IP协议:在相互连接的网络之间传递IP数据报、分配唯一IP地址。 IP地址:网络号+主机号
- 查看ip命令
[root@xt ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:20:b5:fd brd ff:ff:ff:ff:ff:ff
inet 192.168.0.112/24 brd 192.168.0.255 scope global dynamic eno16777736
valid_lft 83592sec preferred_lft 83592sec
inet6 fe80::20c:29ff:fe20:b5fd/64 scope link
valid_lft forever preferred_lft forever
[root@xt ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.112 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fe20:b5fd prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:20:b5:fd txqueuelen 1000 (Ethernet)
RX packets 11796 bytes 926808 (905.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7634 bytes 5484873 (5.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 网络管理配置
- ifconfig命令:配置网络接口 用法: ifconfig [-v] [-a] [-s] [interface] ifconfig [-v] interface [aftype] options | address ... 第一种用法:查看接口地址,-v:显示详细信息,-a:显示所有接口地址 第二种用法:配置接口地址 ifconfig IFACE IP/MASK [up|down] 激活|停止,配置IP ifconfig IFACE IP netmask NETMASK
[root@xt ~]# ifconfig ens36 192.168.175.10/24 up #配置IP并激活
[root@xt ~]# ifconfig ens36
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.175.10 netmask 255.255.255.0 broadcast 192.168.175.255
inet6 fe80::20c:29ff:fe20:b507 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:20:b5:07 txqueuelen 1000 (Ethernet)
RX packets 4 bytes 989 (989.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20 bytes 2076 (2.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@xt ~]# ifconfig ens36 down #关闭后网卡信息
[root@xt ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
......
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
....
[root@xt ~]# systemctl restart network #重启网络服务
[root@xt ~]# ifconfig
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.175.133 netmask 255.255.255.0 broadcast 192.168.175.255
inet6 fe80::20c:29ff:fe20:b507 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:20:b5:07 txqueuelen 1000 (Ethernet)
RX packets 5 bytes 1331 (1.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 3252 (3.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
注:这种方式修改,立即生效,只是临时有效,重启服务后失效
- route命令:路由查看管理,即将被ip route替代
查看:route -n
添加用法:
route add [-net|-host] target [netmask Nm] [gw GW] [[dev] Interface]
-net:target是网段
-host:目标为主机
route add -net 10.0.0.0/8 gw 192.168.1.1 dev eth1
route add -net 0.0.0.0/0.0.0.0 gw 192.168.1.1
route add default gw 192.168.1.1
删除路由:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] Interface]
- netstat命令:显示网络连接,路由表,接口状态等
-显示路由表
netstat -rn #-r显示内核路由 -n:不解析
-显示网络连接
netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp协议相关链接
-u: udp协议连接
-l: 处于监听状态连接
-a: 所有状态
-n:以数字方式显示ip和port,不解析服务名
-p:显示相关进程及pid
[root@xt ~]# netstat -tunlp
Active Internet connections (only servers)
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 1168/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1246/master
tcp6 0 0 :::22 :::* LISTEN 1168/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1246/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 3069/dhclient
udp 0 0 0.0.0.0:68 0.0.0.0:* 2717/dhclient
-显示接口的统计数据
显示所有接口:netstat -i
指定接口:netstat -I<INTERFACE>
[root@xt ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eno16777 1500 15549 0 0 0 10242 0 0 0 BMRU
ens36 1500 18 0 0 0 51 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 LRU
[root@xt ~]# netstat -Iens36
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens36 1500 18 0 0 0 51 0 0 0 BMRU
[root@xt ~]#
- iproute服务提供的ip管理工具
- - ip命令显示管理路由、设备
用法:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddr | mroute |
mrule | monitor | xfrm | netns | l2tp | tcp_metrics }
ip link:网络设备配置
ip link set:修改设备属性
ip link set { dev DEVICE | group DEVGROUP } [ { up | down } ] [ arp { on | off } ]
[ dynamic { on | off } ]
[ multicast { on | off } ]
[ allmulticast { on | off } ]
[ promisc { on | off } ]
[ trailers { on | off } ]
[ txqueuelen PACKETS ]
[ name NEWNAME ]
[ address LLADDR ]
[ broadcast LLADDR ]
[ mtu MTU ] #默认1500
[ netns PID ] #用于将接口移动到指定的网络名称空间
[ netns NAME ]
[ alias NAME ]
ip link show : 显示设备的属性
ip link help :查看命令帮助
[root@xt ~]# ip addr show ens36
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:20:b5:07 brd ff:ff:ff:ff:ff:ff
inet 192.168.175.133/24 brd 192.168.175.255 scope global dynamic ens36
valid_lft 1672sec preferred_lft 1672sec
inet6 fe80::20c:29ff:fe20:b507/64 scope link
valid_lft forever preferred_lft forever
[root@xt ~]# ip link set ens36 down
[root@xt ~]# ip addr show ens36
3: ens36: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:0c:29:20:b5:07 brd ff:ff:ff:ff:ff:ff
inet 192.168.175.133/24 brd 192.168.175.255 scope global dynamic ens36
valid_lft 1648sec preferred_lft 1648sec
[root@xt ~]# ip addr li ens36
3: ens36: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:0c:29:20:b5:07 brd ff:ff:ff:ff:ff:ff
ip netns:网络名称空间管理
ip netns list:
ip netns add Name
ip netns del Name
ip [-all] netns exec [NAME] cmd ...#在指定名称空间中运行命令
设置网络名称步骤:在云计算中使用
1.设置名称
ip netns add mynet
2.添加至每个网卡
ip link set ens36 netns mynet
3.运行查看
ip netns exec mynet ip llink show
ip address :协议地址管理
ip addr add :添加地址
ip addr {add|change|replace} if_address/prefix dev STRING [scope ..] [...] #[broadcast address]: 广播地址,会根据ip和netmask自动计算 [scope scope_value]: 值有global、link、host
ip addr del :删除IP地址
ip addr del if_address dev IFACE
ip addr show :查看地址
ip addr show dev IFACE
ip addr flush :清空地址
ip addr flush dev IFACE
[root@xt ~]# ip addr show ens36
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:20:b5:07 brd ff:ff:ff:ff:ff:ff
inet 192.168.175.133/24 brd 192.168.175.255 scope global dynamic ens36
valid_lft 1049sec preferred_lft 1049sec
inet 172.16.0.10/32 scope global ens36
valid_lft forever preferred_lft forever
[root@xt ~]# ip addr del 172.16.0.10 dev ens36 #删除ip操作
[root@xt ~]# ip addr show ens36 #查看ip
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:20:b5:07 brd ff:ff:ff:ff:ff:ff
inet 192.168.175.133/24 brd 192.168.175.255 scope global dynamic ens36
valid_lft 1703sec preferred_lft 1703sec
[root@xt ~]# ip addr add 172.16.0.11 dev ens36 #添加ip地址
[root@xt ~]# ip addr list ens36
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:20:b5:07 brd ff:ff:ff:ff:ff:ff
inet 192.168.175.133/24 brd 192.168.175.255 scope global dynamic ens36
valid_lft 1647sec preferred_lft 1647sec
inet 172.16.0.11/32 scope global ens36
valid_lft forever preferred_lft forever
[root@xt ~]# ip addr flush dev ens36 #清空ens36ip地址
[root@xt ~]# ip addr list ens36
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:20:b5:07 brd ff:ff:ff:ff:ff:ff
ip route:路由管理
ip route add - add new route
ip route change - change route
ip route replace - change or add new one
ip route add [TYPE] PREFIX via gw_ip [dev IFACE] [src src_ip]
ip route del ip_addr - delete route 删除路由
ip route show - list routes 查看路由
ip route flush - flush routing tables清空路由表
# ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100
# ip route add default via 192.168.0.1
# ip route del 192.168.0.0/24
- ss命令:可以取代netstat来查看链接状态
用法:
ss [options] [filter]
选项:
-t:TCP协议的相关连接
-u:UDP相关的连接
-w:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
filter= [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
All standard TCP states: established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait,
closed, close-wait, last-ack, listen and closing.
EXPRESSION:
dport =
sport =
[root@xt ~]# ss -tan state ESTABLISHED
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 192.168.0.112:22 192.168.0.106:55499
0 0 192.168.0.112:22 192.168.0.106:54701
0 0 192.168.0.112:22 192.168.0.106:55573
0 52 192.168.0.112:22 192.168.0.106:55575
0 0 192.168.0.112:22 192.168.0.106:54864
[root@xt ~]# ss -tan '( sport = :22 )'
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
ESTAB 0 0 192.168.0.112:22 192.168.0.106:55499
ESTAB 0 0 192.168.0.112:22 192.168.0.106:54701
ESTAB 0 0 192.168.0.112:22 192.168.0.106:55573
ESTAB 0 52 192.168.0.112:22 192.168.0.106:55575
ESTAB 0 0 192.168.0.112:22 192.168.0.106:54864
LISTEN 0 128 :::22 :::*
```
-----
以上使用ifconfig/ip配置IP地址等只是对当前有效,关机或者重启服务等操作配置失效,若需要永久生效则可以通过文件配置、nmcli/nmtui有NetworkManage提供的工具配置。
- 文件配置
- 配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE,大量参数来定义接口的属性
DEVICE:此设备文件对应的设备名称
NAME:可以与device同样,主要在图形界面显示
ONBOOT:在开机启动过程是否激活
UUID:此设备的唯一ID号
BOOTPROTO:接口的协议:dhcp、static、none
TYPE:接口类型,常见:Ethernet、Bridge
DNS1:第一DNS服务器指向
DNS2:备用DNS服务指向
DNS3:一共可以有三个DNS服务指向
IPADDR:ipv4地址
NETMASK:子网掩码,centos支持PREFIX以长度方式指明子网掩码
GATEWAY:网关
HWADDR:设备Mac地址
NM_CONTROLLED:是否使用NetworkManager服务管理
查看设备的所有信息:dmesg命令
手动配置一般指定这几个参数即可:
![](https://s1.51cto.com/images/blog/201901/04/b7cf1ade1ed8ab3d2e969b9645e14dda.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
device网络接口的命名:
centos6之前:主要以ethX,如eth1,eth2...
centos7:根据Firmware或BIOS所提供的索引信息来命名:
名称类型:
o<index>:集成设备的设备索引号;
s<slot>:扩展槽的索引号;
x<MAC>:基于MAC地址的命名;
p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;
常见有:eno16777736,ens33...
- 例如添加一块网卡,网卡信息如下:通过配置文件方式
IP地址:192.168.1.77
子网掩码:255255.255.0
网关:192.168.1.254
DNS:192.168.1.254
要求:重启网卡后生效,分别查看IP,网关和DNS是否配置成功
注:以下内容是通过新添加一块网卡ens36来实现,但新添加网卡并没有配置文件,通过复制原有的文件来实现:
```
[root@xt network-scripts]# cp ifcfg-eno16777736 ifcfg-ens36
[root@xt network-scripts]#vim ifcfg-ens36
BOOTPROTO="none"
NAME="ens36"
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.1.77
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=192.168.1.254
[root@xt network-scripts]# systemctl restart network
[root@xt network-scripts]# ifconfig
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.77 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe20:b507 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:20:b5:07 txqueuelen 1000 (Ethernet)
RX packets 4 bytes 989 (989.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20 bytes 2076 (2.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@xt network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eno16777736
0.0.0.0 192.168.1.254 0.0.0.0 UG 101 0 0 ens36
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens36
[root@xt network-scripts]# cat /etc/resolv.conf
# Generated by NetworkManager
search xt.com
nameserver 221.7.128.68
nameserver 221.7.136.68
nameserver 192.168.1.254
```
- nmcli命令:nmcli - command‐line管理NetworkManage服务,命令参数可以补齐,创建或修改 的会话配置信息会自动保存为网卡配置文件,无需手动编辑,重启依然生效。
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
- 查看网卡信息:
[root@xt tmp]# nmcli connection show
NAME(网卡名称) UUID TYPE(网卡类型) DEVICE(设备)
gongsi 86370ae8-b9ed-45b2-9b34-73a6477151fc 802-3-ethernet ens36
eno16777736 2361aff4-2de8-4868-9fd6-5d30ccdada02 802-3-ethernet eno16777736
home b0569674-eee5-4622-b5d1-861b828d289d 802-3-ethernet -
如果想查看某个网卡详细信息:...show [id|uuid]即可
- 查看网卡连接状态
[root@xt tmp]# nmcli device status
DEVICE TYPE STATE CONNECTION
eno16777736 ethernet connected eno16777736
ens36 ethernet connected gongsi
lo loopback unmanaged --
- OBJECT:agent 、 connection 、 device 、 general 、 help 、 networking、 radio
device:显示和管理网络接口
-device command :={ status | show | connect | disconnect | delete | wifi | wimax }
connection:开始停止和管理网络连接,NetworkManager存储所有的网络配置信息保存在会话中,如L2详细信息,ip地址等,这些信息描述了创建、连接、或激活设备的过程。
-connection command:= { show | up | down | add | edit | modify | delete | reload | load }
modify [--temporary] [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>
add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS IP_OPTIONS:添加会话
修改ip地址等属性:
ip的配置方法 :auto默认、manual、link-local
[root@xt ~]# nmcli connection modify home ipv4.addresses 192.168.10.10 ipv4.gateway 192.168.10.1 ipv4.method manual
Examples:
nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.2/24, 10.10.1.5/8" #添加多个ip
nmcli con mod em1-1 +ipv4.dns 8.8.4.4 **+表示添加 ,-表示删除**
nmcli con mod em1-1 -ipv4.dns 1
nmcli con mod em1-1 -ipv6.addr "abbe::cafe/56"
nmcli con mod bond0 +bond.options mii=500
nmcli con mod bond0 -bond.options downdelay
-----
- nmcli配置实例
- 添加以太网连接手动配置ip
$ nmcli con add con-name my-con-em1 ifname em1 type ethernet [ ip4 192.168.100.100/24 gw4 192.168.100.1 ip 4 1.2.3.4 ip6 abbe::cafe] $ nmcli con mod my-con-em1 ipv4.dns "8.8.8.8 8.8.4.4" $ nmcli con mod my-con-em1 +ipv4.dns 1.2.3.4 $ nmcli con mod my-con-em1 ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844" $ nmcli -p con show my-con-em1 #-p更友好格式输出
注:
-1、第一条命令表示添加一个以太网连接别名为my-con-em1(自己命名),绑定到em1网卡,手动配置ip4 192.168.100.100 24位掩码,第二个Ip4 1.2.3.4没指定掩码默认32位,可以配置多个ip、gw、ip6,如果【】这部分不指定表示dhcp自动获取,当然也可以使用下一条命令修改配置。
-2、之后的命令表示修改ip4/dns/参数,最后显示配置信息
- Adding a bonding master and two slave connection profiles
$ nmcli con add type bond ifname mybond0 mode active-backup $ nmcli con add type bond-slave ifname eth1 master mybond0 $ nmcli con add type bond-slave ifname eth2 master mybond0
注:
1、bond-slave: master <master (ifname, or connection UUID or name)>
2、bond: [mode balance-rr (0) | active-backup (1) | balance-xor (2) | broadcast (3) | 802.3ad (4) | balance-tlb (5) | balance-alb (6)]
7种绑定驱动模式:常用
mode=0 |balance-rr:平衡负载,同时工作且自动备援,但需要”Switch”支援及设定
mode=1:自动备援模式,只有一块网卡工作,故障后自动切换
mode=6:平均负载均衡模式,且自动备援,但无需”Switch”支援及设定
-----
- setup/nmtui
centos7开始使用nmtui图形化管理,之前6的可以使用setup管理,比较简单,配置完重启服务即可。
![](https://s1.51cto.com/images/blog/201901/04/e73268921e05c63d74ea43ef66458e19.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)