计算机网络可以简单分为局域网和广域网。国际标准组织ISO制定了一个层次化的网络通信参考模型--OSI(open system interconnection),每一层定义了其实现的功能以实现设备间网络通信。
但在实际中使用的是TCP/IP协议,(本身包含TCP传输控制协议,IP互联网络协议),tcp?ip模型范围4层将多个网络进行无缝连接。
IP协议:在相互连接的网络之间传递IP数据报、分配唯一IP地址。
IP地址:网络号+主机号
- 查看ip命令
[[email protected] ~]# 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
[[email protected] ~]# 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[[email protected] ~]# ifconfig ens36 192.168.175.10/24 up #配置IP并激活 [[email protected] ~]# 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 [[email protected] ~]# ifconfig ens36 down #关闭后网卡信息 [[email protected] ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ...... lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 .... [[email protected] ~]# systemctl restart network #重启网络服务 [[email protected] ~]# 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[[email protected] ~]# 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>[[email protected] ~]# 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 [[email protected] ~]# 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 [[email protected] ~]#
- 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 :查看命令帮助[[email protected] ~]# 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 [[email protected] ~]# ip link set ens36 down [[email protected] ~]# 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 [[email protected] ~]# 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[[email protected] ~]# 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 [[email protected] ~]# ip addr del 172.16.0.10 dev ens36 #删除ip操作 [[email protected] ~]# 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 [[email protected] ~]# ip addr add 172.16.0.11 dev ens36 #添加ip地址 [[email protected] ~]# 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 [[email protected] ~]# ip addr flush dev ens36 #清空ens36ip地址 [[email protected] ~]# 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
- ip命令显示管理路由、设备
- 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 =[[email protected] ~]# 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 [[email protected] ~]# 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命令:配置网络接口
以上使用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命令
手动配置一般指定这几个参数即可:
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来实现,但新添加网卡并没有配置文件,通过复制原有的文件来实现:[[email protected] network-scripts]# cp ifcfg-eno16777736 ifcfg-ens36 [[email protected] 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 [[email protected] network-scripts]# systemctl restart network [[email protected] 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 [[email protected] 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 [[email protected] 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
- 配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE,大量参数来定义接口的属性
- nmcli命令:nmcli - command‐line管理NetworkManage服务,命令参数可以补齐,创建或修改 的会话配置信息会自动保存为网卡配置文件,无需手动编辑,重启依然生效。
nmcli [ OPTIONS ] OBJECT { COMMAND | help }- 查看网卡信息:
[[email protected] 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]即可 - 查看网卡连接状态
[[email protected] 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
[[email protected] ~]# 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
- 查看网卡信息:
- setup/nmtui
centos7开始使用nmtui图形化管理,之前6的可以使用setup管理,比较简单,配置完重启服务即可。
原文地址:http://blog.51cto.com/12580678/2339122