一、配置方式

网络配置可以通过命令和修改配置文件两种方式进行,命令方式可立即生效,但是重启服务或重启服务器之后配置失效,而修改配置文件的方式需要重启服务才能生效,但重启后配置不会丢失,即永久生效

1.1 命令方式

1、ifcfg家族
ifconfig:配置IP、NETMASK
route:路由
netstat:状态以及统计数据查看工具
2、iproute2家族
ip OBJECT:
addr:地址和掩码
link
route
ss:状态以及统计数据查看
3、CentOS7:nm(Network Manager)家族
nmcli:命令行工具
nmtui:text window工具

1.2 配置文件

1、DNS服务器指定

配置文件:/etc/resolv.conf
image.png
注意:可以添加三个
如何测试DNS是否生效(host/nslookup/dig)
#dig -t A FDQDN
FQDN—>IP
#dig -x IP
IP—>FQDN

2、主机名配置

hostname,重启生效
image.png
配置文件:/etc/sysconfig/network
HOSTNAME=
CentOS7:hostnamectl ,立即生效
image.png

3、网卡配置文件

RedHat系列
/etc/sysconfig/network-scripts/ifcfg-xxxx

二、网卡名称命名方式

2.1 传统命名方式

以太网:ethX[0~N]),如eth0,eth1
ppp网络:pppx[0~N),如ppp0,ppp1

2.2 可预测命名方案

支持多种不同的命名机制
Fireware,拓扑机构
1)如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2..
2)如果Firmware或BIOS为PCI-E扩展槽提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2,…
3)如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0,…
4)如果用户显示定义,也可根据MAC地址命名,如enx122161ab210,…
上述均不可用时,则仍使用传统方式命名
命名格式的组成:
en:ethernet
wl:wlan
ww:wwan
名称类型:
o:集成设备的设备索引号;
s:扩展槽的索引号;
x:基于MAC地址的命名
ps:基于总线以及槽的拓扑结构进行命名

三、网络配置命令家族

3.1 ifcfg命令家族

ifcfg家族命令是我们平常比较常用的命令,提供了有ifconfig,route,netstat三个基本命令

1、ifconfig命令:状态查看和IP配置

ifconfig命令,接口地址查看和管理
ifconfig Interface [aftype] options | address…
1)查看接口状态
ifconfig [INTERFACE] 所有处于活动状态的接口信息
[root@localhost ~]# ifconfig eno1
ifconfig -a :显示所有接口,包括非活动状态的接口
[root@localhost ~]# ifconfig -a
2) 配置IP
#ifconfig INTERFACE ADDRESS/PREFIX [up|down]
[root@localhost ~]# ifconfig eno2 192.168.100.1/24 up
#ifconfig INTERFACE ADDRESS netmask NETMASK
[root@localhost ~]# ifconfig eno2 192.168.100.2 netmask 255.255.255.0 up
3) 属性配置
选项options
[-]promisc 关闭or开启混杂模式
[root@localhost ~]# ifconfig eno1 promisc 开启混杂模式
[root@localhost ~]# ifconfig eno1 -promisc 关闭混杂模式
4) 管理IPV6地址
add addr/prefixlen
del addr/prefixlen

2、route命令:路由查看和管理

1) 路由条目分类
主机路由:目标地址为单个IP
网络路由:目标地址为IP网路
默认路由:目标为任意主机,0.0.0.0/0
2) 路由查看
# route -n
image.png
3) 路由添加
# route add [-net | host ] target [netmask Nm] [gw GW(next-hop)] [dev INTERFACE]
image.png
4) 删除路由
route del [-net | -host] target [gw GW] [netmask Nm] [[dev] INTERFACE]
image.png

3、netstat命令:查看链接状态

Print network connections, routing tables, Interface statistics, masquerade connections, and multicast memberships
1)查看路由
netstat -rn
-r:显示内核中路由表
-n:数字格式
image.png
2)显示网络连接
netstat [—tcp |t ] [—udp| -u] [—udplite | -u] [—sctp |-S] [—raw|-w][—listening|-l] [—all|-a] [—numeric|-n] [— exten|-e] [—program|-p]
-t : TCP协议的相关连接,连接均有其状态,FSM(Finate state Machine),有限有状态机
-u : UDPF相关的连接
-W : raw socket相关的连接
-l :处于监听状态的连接
-a :所有状态
-n :以数字格式显示IP和Port
-e :扩展格式
-p :显示相关的进程及PID
常用组合
-tan,-uan,-tnl,-tanl,-tanp,-tanpe
[root@localhost ~]# netstat -talp
[root@localhost ~]# netstat -ualp
[root@localhost ~]# netstat -tunap
[root@localhost ~]# netstat -tunape
[root@localhost ~]# netstat -ape
image.png显示接口的统计数据
netstat {-Interfaces|-I|-} [face] [-lI-a] [-extend|-e] [—verbose|-V] [-program|-p] [-numerlc|-n]
查看所有接口统计数据
netstat i
image.png
查看指定接口统计数据
netstat -I
image.png
ifup/ifdown
此命令通过配置文件/etc/sysconfig/network-scripts/ifcfg-INTERFACE来识别接口并完成配置,当不存在配置文件时,会报错
[root@localhost ~]# ifup ens224
[root@localhost ~]# ifdown ens224

3.2 iproute命令家族

1、ip link命令:网卡属性配置管理

show / manlpulate routing, devlces, pollicy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link| addr | route | netns }
注意:OBJECT可以简写,各个OBJECT的子命令也可以简写
ip link set 更改设备属性
#ip link set eht1 {down|up},关闭or开启网卡,dev关键字可以省略
#ip link set eth1 {multicast on|multicast off} 开启or关闭多播
#ip link set eth1 name eno6666 重命名为eno6666
#ip link set mtu 1518,设置MTU值,默认1500
#ip link set netns,ns为namespace名称空间,用于将接口移动到指定的网络名称空间
#ip link show 查看设备属性
#ip link help 显示简要使用帮助
image.png

2、ip netns:网络名称空间管理

ip netns: 网络名称空间管理
#ip netns list 列出所有的netns
#ip netns add NAME 创建指定的netns
#ip netns del NAME 删除指定的netns
#ip netns exec NAME COMMAND 在指定的netns中运行命令
示例创建一个网络名称空间,并添加网卡到此命名空间
#ip netns add testnet 创建netns名为testnet
#ip link set netns testnet dev ens37 将网卡ens37添加到此netns中
#ip netns exec testnet ip link show 在此netns中查看网卡信息
image.png

3、ip address:ip配置与查看

add:添加
ip address-protocol address management
#ip address add 添加地址
#ip addr add ADDRESS/PREFIX dev INTERFACE [label NAME]
[label NAME]:为额外添加的地址别名
[broadcast ADDRESS] :广播地址,会根据IP和NETMASK自动计算得到
[scope SCOPE_VALUE]
global:全局可用
link:接口可用
host:仅本机可用
image.png
del:删除
ip address delete 删除地址
ip addr del ADDRESS/PREFIX dev INTERFACE
ip address show 查看地址
ip address flush 清空地址
ip addr flu dev INTERFACE
image.png

4、ip route:路由管理

ip route add 添加路由
ip route change 修改路由
ip route replace 修改路由
ip route add NETWORK/PREFIX via NET_HOP [dev INTERFACE] [src SOUCRCE_IP]
# ip route add 192.168.10.0/24 via 192.168.10.2 dev ens33 src 10.0.0.1
ip route delete 删除路由
ip route del NETWORK/PREFIX
# ip route del 192.168.10.0/24
ip route show 显示路由
ip route show [NETWORK/PREFIX]
ip route flush 清空路由
ip route flush [NETWORK/PREFIX]
ip route get 获取指定路由
ip route get NETWORK/PREFIX
# ip route get 192.168.10.0/24

5、ss命令,同netstat功能一样

选项:
-t TCP协议相关的连接
-u UDP相关的连接
-w raw socket相关的连接
-l 监听 状态的连接
-a 所有状态的连接
-n 数字格式
-p 相关程序及其PID
-e 扩展格式的信息
-m 内存用量
-o 计时器信息
FILTER:=[state TCP-STATE] [EXPRESSION]
TCP的常见状态:TCP FSM、LISTEN :监听、ESTABLISHED 建立连接、FIN_WAIT_1、FIN_WAIT_2、SYN_SENT、SYN_RECV、CLOSED:
EXPRESION:
dport=
sport=
示例:’( dport =: 22 or sport =: 22 )’
#ss -tan state ESTABLISHED
#ss -tan ‘( dport = :22 or sport = :22 )’
image.png

6、通过修改配置文件

  1. 网卡基本配置文件:/etc/sysconfig/network-scripts/ifcfg-INTERFACE<br /> 路由的相关配置文件:/etc/sysconfig/network-scripts/route-INTERFACE<br /> 配置文件/etc/sysconfig/network-scripts/ifcfg-INTERFACE通过大量参数来定义接口的属性,其可通过vim等文本编辑器直接修改,也可以使用专用的命令进行修改(CentOS 6system-config-network(setup),CentO S7:nmtui)<br />**配置文件参数说明:**<br />DEVICE:此配置文件对应的设备的名称<br />ONBOOT:在系统引导过程中,是否激活此接口<br />UUID:此设备的唯一标识<br />IPV6INIT:是否初始化IPV6<br />BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有DHCPbootpstaticnone<br />TYPE:指明接口类型,常见的有ETthernetBridge<br />DNS1DNS服务器指向<br />DOMAIN:DNS搜索域<br />GATEWAY:网关<br />IPADDRIP地址<br />NETMASK:掩码,CentOS7支持PREFIX以长度方式指明掩码<br />USERTCTl:是否允许普通用户控制此设备<br />PEERDNS:如果BOOTPROTO的值为"DHCP",是否允许dhcp server分配的额DNS服务器指向覆盖本地手动指 定的DNS服务器指向,默认为允许<br />NM_CONTROLLED:是否使用NetworkManager服务来控制接口<br />HWADDRMAC地址<br />**给接口配置多个地址:**<br />ip addr之外,ifconfig或配置文件都可以<br />1ifconfig INTERFACE_LABEL IPADDR/PREFIX<br />INTERFACE_LABEL:eth0:0,eth0:1,....<br />2) 为别名添加配置文件;<br />DEVICE=INTERFACE_LABEL<br />BOOTPROTO:网卡别名不支持动态获取地址<br />**网络服务:**<br /> network<br /> NetworkManager<br />**管理网络服务:**<br />CentOS6service network {status|start|stop|restart}<br />CentOS7systemctl {status|start|stop|restart} network.service<br />配置文件修改之后,如果要生效,需要重启网络服务<br /> 用到非默认网关路由时:/etc/sysconfig/network-scripts/route-INTERFACE<br />**配置文件配置路由:**<br />配置文件的方式可以使路由永久生效<br />支持两种配置方式,但不可混用<br /> 1)一行一个路由条目<br /> TARGET via GW<br /> 2)每三行一个路由条目<br /> ADDRESS#=TRARGET<br /> NTEMASK#=MASK<br /> GATEWAY#=NEXTHOP

3.3 nm(NetworkManger)命令家族

nmcli命令:CentOS7才有此命令
nmcli [OPTIONS] OBJECTS {COMMAND | help}

1、device 查看和管理接口

命令 {status|show|connect |disconnect|wifi|wimax}
如nmcli device show
nmcli device disconnect ens37
nmcli device connect ens37
image.png

2、connection 管理网络连接

命令 nmcli connection {show | up | down | modify | add | edit | delete | reload | load}
如何修改IP地址等属性
#nmcli conn modify INTERFACE [+|-]setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
manual
image.png

四 配置永久路由

编辑配置文件 /etc/sysconfig/static-routes
实例:any -net 192.56.76.0 netmask 255.255.255.0 dev eth0