Linux网络相关属性配置管理


Linux中的网络配置一般分为两种配置方式,一种是命令的配置方式,一般情况下,利用命令配置网络是立即生效,但是在重启系统后之前命令的配置信息则再无作用;另一种是对网络相关的配置文件的修改来实现网络的配置,其配置不会立即生效,在系统重启后会永久有效。一般对网络的配置包含:网络接口的配置、路由的配置、DNS的配置等。下面我们分别介绍通过命令和配置文件对网络的配置。

命令相关的配置

ifcfg命令家族

ifconfig:对网络接口进行管理
route:显示或管理路由表
netstat:输出显示网络的连接、路由表、接口统计信息等

ifconfig命令

命令用法:

ifconfig [-v] [-a] [-s] [interface]

ifconfig [-v] interface [aftype] options | address …

常用选项及使用方法:

Options/UsingFunction
-a显示所有接口信息,包括inactive状态的接口
-s显示接口的简要信息
-v显示一些更加详细的错误信息
# ifconfig IFACE IP/MASK [up]配置某个接口的IP地址
# ifconfig IFACE IP netmask NETMASK配置某个接口的IP地址
IFACE up启动指定接口
IFACE down禁用指定接口
add addr/preficlen添加IPv6地址
del addr/preficlen删除IPv6地址

示例

  1. 添加/修改一个IPv4地址:

ifconfig命令添加/修改指定的接口的IPv4地址:方式一
ifconfig命令添加/修改指定的接口的IPv4地址:方式二

  1. 添加/删除IPv6地址:

ifconfig命令给指定的网络接口添加一个IPv6的地址
ifconfig命令删除指定的网络接的IPv6地址

route命令

路由条目的类型:

  • 主机路由:目标为单个IP
  • 网络路由:目标地址为IP网络
  • 默认路由:目标为任意主机,0.0.0.0/0.0.0.0
查看路由表

命令格式:

route -n (以数字的形式显示地址信息)

添加一个路由信息

命令格式:

route add [-net | -host] target [netmask Nm] [gw GW] [[dev] If]

添加路由信息命令下常用的选项:

OptionsFunction
-net添加一条网络路由
-host添加一条主机路由

示例:
route命令添加一条路由信息
route命令添加一条默认路由信息

删除一个路由信息

命令格式:

route del [-net | -host] target [gw GW] [netmask Nm] [[dev] If]

示例:
删除指定的路由条目
删除默认路由信息

netstat命令
显示路由表

命令格式:

netstat -rn

常用选项:

OptionsFunction
-r显示内核路由表
-n数字格式显示
显示网络连接

命令格式:

netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]

常用选项:

OptionsFunction
-tTCP协议的相关连接,连接均有其状态;FSM(Finate State Machine)
-uUDP相关的连接
-wraw socket相关的连接
-l处于监听状态的连接
-a显示所有状态的连接
-n以数字格式显示IP和Port
-e扩展格式
-p显示相关的进程及PID

常用组合:

OptionsFunction
-tan以数字格式显示TCP相关的所有连接
-uan以数字格式显示UDP相关的所有连接
-tnl以数字格式显示TCP相关的处于监听状态连接
-tunlp以数字格式显示TCP和UDP相关的处于监听状态连接的进程及PID
显示接口的统计数据

命令格式:

netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–verbose|-v] [–program|-p] [–numeric|-n]

常用选项:

OptionsFunction
-i查看所有处于活动状态的接口的统计数据,相当于ifconfig -s命令
-I<IFACE>指定接口的统计数据

示例:
nestat命令查看接口的统计数据

ifup/ifdown命令:

该两个命令通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置。如果某个接口没有其对应的接口配置文件,那么这两个命令就不能使用。
在CentOS 6中当配置好一个接口的配置文件时,利用ifup命令启动该程序时可能出现以下状况:
ifup命令启用网卡出现的状况
重启网络服务也出现下面的问题:
重启网络服务出现的问题
这是由于在CentOS 6中使用了NetworkManager服务对网络进行管理,可能是该技术在CentOS 6上还不是很成熟,在运行的过程中会出现一些问题,遇上上面的问题时,可以禁用NetworkManager服务完成操作,操作如下:
列出系统上所有服务状态
禁用指定的服务
完成以上步骤即可使用ifup命令通过配置文件来启用指定网卡。

iproute2命令家族

ip命令:显示或管理网络设备、路由、路由策略
ss命令:显示网络层的数据统计

ip命令
ip link

ip link: 网络设备管理

  1. ip link set: 设置网络设备的属性
AttributesIntroduction
dev NAME (default)指明要管理的设备,dev关键字可省略
up and down启用或关闭指定的网络设备
multicast on/off启用或禁用多播功能
mtu NUMBER设置MTU的大小,默认为1500
netns PIDns为namespace,用于将接口移动到指定的网络名称空间
  1. ip link show: 显示网络设备属性信息
  2. ip link help: 显示简要帮助信息
ip netns

ip netns: 网络命名空间管理

OptionsFunction
list列出所有的netns
add NAME创建指定的netns
del NAME删除指定的netns
exec NAME COMMAND在指定的netns中运行命令

示例:
ip netns命令的示例
ip netns命令示例

ip address

ip address: 网络协议地址管理

OptionsFunctionExample
add添加新的协议地址ip addr add IFADDR dev IFACE ;IFADDR := label NAME(为额外添加的地址指明接口别名);broadcast ADDRESS(广播地址,会根据IP和NETMASK自动计算得到);scope SCOPE_VALUE(SCOPE_VALUE的值有global: 全局可用;link: 接口可用;host: 仅本机可用)
delete删除地址协议ip addr delete IFADDR dev IFACE
show查看接口的属性及地址信息ip addr show [IFACE]
flush清除地址协议ip addr flush dev IFACE

示例:
一个网卡设置多个IP地址
**注意:**利用命令设置的一个网络设备的多个地址,会立即生效,但是系统或者网络服务重启后则失效。

ip route

ip route: 路由表管理

OptionsFunctionsExample
add | change | replace添加/修改/添加或者修改路由ip route add TYPE PRIFIX via GW [dev IFACE] [src SOURCE_IP]
delete删除指定的路由ip route del TYPE PRIFIX
show显示路由表信息ip route show TYPE PRIFIX
flush清空路由表信息ip route flush TYPR PRIFIX
get查看单个指定的路由信息ip route get TYPE PRIFIX

示例:
ip route命令示例
ip route命令添加默认路由

ss命令

ss命令是和netstat基本相似的一个程序,可以显示和netstat命令相似的信息,也可以更多的显示TCP状态信息

命令使用格式

ss [options] [ FILTER ]

常用选项

OptionsFunction
-tTCP协议的相关连接
-uUDP相关的连接
-wraw scoket相关的连接
-l监听状态的连接
-a所有状态的连接
-n数字格式
-p相关的程序及其PID
-e扩展格式信息
-m内存用量
-o计时器信息

FILTER的写法

FILTER := [state STATE-FILTER] [EXPRESSION]

TCP的状态

stateIntrouduction
established代表一个打开的连接,数据可以传送可以传送给用户
syn-sent在发送连接请求后等待匹配的连接请求
syn-recv在接收和发送一个连接请求后等待对连接请求的确认
fin-wait-1等待远程TCP的连接中断请求,或先前的连接中断请求的确认
fin-wait-2从远程TCP等待连接中断请求
time-wait等待足够的时间以确保远程TCP接收到连接中断请求的确认
closed没有任何连接状态
close-wait等待从本地用户发来的连接中断请求
last-ack等待原来发向远程TCP的连接中断请求的确认
listen侦听来自远方TCP端口的连接请求
closing等待远程TCP对连接中断的确认

STATE-FILTER

STATE-FILTER可以是以上的TCP的状态,也可以是以下的字段:

FieldIntroduction
allTCP所有的状态
connected除listen和closed状态外的所有状态
synchronized所有已连接的状态除了syn-sent
bucket显示状态为maintained as minisockets,如:time-wait和syn-recv
big与bucket相反

EXPRESSION

ss命令下的EXPRESSION可以匹配本地和远程的地址以及端口号,还可以将本地或远程的端口和一个端口号或者协议相比较。即就是EXPRESSION支持OP操作。支持的OP操作有:

OPIntroduction
<= or le小于或等于端口号
>= or ge大于或等于端口号
== or eq等于端口号
!= or ne不等于端口号
< or gt小于端口号
> or lt大于端口号

下面是EXPRESSION相关的例子:

1、~]# ss '( sport <= :22 or dport <= :22 )'      显示源端口或者目标端口大于等于22的连接
2、~]#  ss  sport = :http    显示源端口为http的连接
3、~]# ss  state connected sport = :http    显示TCP除listen和closed状态外的所有状态的源端口为80的连接
nmcli命令(CentOS 7)

nmcli是CentOS 7上面完成网卡所有配置的命令,并可以将执行的命令直接写入配置文件中,永久有效。下面介绍nmcli的基本用法:

命令使用的方法
~]# nmcli [OPTIONS…] { help | connection | device} [COMMAND] [ARGUMENTS…]

管理网络连接
~]# nmcli connection {show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export} [ARGUMENTS…]

显示和管理网络接口
~]# nmcli device {status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp} [ARGUMENTS…]

网卡信息的查看
  1. 查看所有网络连接

    ~]# nmcli connection show
    查看所有网络连接

  2. 查看活动的网络连接

    ~]# nmcli connection show -active
    查看活动的网络连接

  3. 查看指定的网卡的详细信息

    ~]# nmcli connection show DEVICE
    查看指定的网卡详细信息

  4. 显示设备的连接状态

    ~]# nmcli device status
    显示设备的连接状态

  5. 显示所有网络设备的详细信息

    ~]# nmcli device show
    显示所有网络设备的详细信息

  6. 显示指定设备的详细信息

    ~]# nmcli device DEVICE显示指定设备的详细信息

网卡状态的修改
  1. 启用网络连接

    ~]# nmcli connection up DEVICE_NAME
    启用网络连接

  2. 关闭网络连接(可被自动激活)

    ~]# nmcli connection down DEVICE
    关闭网络设备

  3. 禁止网卡连接

    ~]# nmcli device disconnetc DEVICE
    禁止网络连接

  4. 删除网络连接的配置文件

~]# nmcli connection delete DEVICE_NAME

删除网络连接的配置文件

  1. 重新读取网络配置文件
~]# nmcli connection reload

重新读取网络配置文件

网卡配置的修改

网卡配置的修改命令格式

如何修改IP地址属性:
~]# nmcli conn modify IFACE 
	[+|-]setting.property value
    			ipv4.address
    			ipv4.gateway
    			ipv4.dns1
    			ipv4.method	
  1. 设置指定网卡自动启动

    ~]# nmcli connection modify ens37 connection.autoconnect yes
    设置指定网卡自动启动

  2. 设置IP地址的获取方式(手动或者DHCP)

    ~]# nmcli connection modify ens37 connection.autoconnect yes
    ~]# nmcli connection modify ens37 ipv4.method manual ipv4.addresses 172.16.20.3/16
    设置IP地址的获取方式

  3. 修改IP地址

    ~]# nmcli connection modify ens37 ipv4.addresses 192.168.237.130/24

修改IP地址

  1. 修改网关

    ~]# nmcli connection modify ens37 ipv4.gateway 192.168.237.3
    修改网关

  2. 为指定网卡添加第二个IP地址

    ~]# nmcli connection modify ens37 +ipv4.addresses 192.168.237.133/24
    为指定网卡添加第二个IP地址

  3. 添加DNS

    ~]# nmcli connection modify ens37 ipv4.dns 114.114.114.114
    在这里插入图片描述

  4. 添加备用DNS

    ~]# nmcli connection modify ens37 +ipv4.dns 8.8.8.8
    添加备用DNS

  5. 删除备用DNS

    ~]# nmcli connection modify ens37 -ipv4.dns 8.8.8.8
    删除备用DNS

配置文件相关的配置

Linux的一个重要的哲学思想是一切皆文件,其内涵就是所有的服务、设备的配置都是通过文件来管理的。而对文件的配置一般情况下不会立即生效,在重启系统或重新读取配置文件后永久生效。通过文件对网络进行配置,我们首要的是先知道网络设备相关的文件,以及网关、路由、DNS相关的配置文件。

IP/NETMASK/GW/DNS等属性的配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE 其中IFACE为接口名称

路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE

域名服务器的配置文件:
/etc/resolv.conf

下面主要介绍相关文件里的内容及如何配置

  1. /etc/sysconfig/network-scripts/ifcfg-IFACE文件中得每个字段代表的含义:
FiledIntroduction
DEVICE此配置文件对应的设备的名称
ONBOOT在系统引导过程中,是否激活此接口
UUID此设备的唯一表标识
IPV6INIT是否初始化IPv6
BOOTPROTO激活此接口时使用什么协议配置接口属性,常用的有dhcp bootp static
TYPE接口类型,常见的有Ethernet Bridge
DNS1第一DNS服务器指向
DNS2备用DNS服务器指向
DOMAINDNS搜索域
IPADDRIP地址
NETMASK子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码
GATEWAY默认网关
USERCTL是否允许普通用户控制此设备
PEERDNS如果BOOTPROTO的至为"dhcp",是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许
NM_CONTROLLED是否使用NetworkManager服务来控制接口

前面说过,通过配置文件配置的网络需要重启系统或者重新读入配置文件,也就是重新启动网络服务,那么如何重启网络服务呢?
CentOS 6管理网络服务:

~]# service SERVICE {start|stop|restart|status}

CentOS 7 管理网络服务:

~]# systemctl {start|stop|restart|status} SERVICE[.service]

所以在CentOS 6和7中分别重启网络服务的命令是:

~]# service network restart
~]# systemctl restart network.service
  1. /etc/sysconfig/network-scripts/route-IFACE对非默认网络路由的配置

    支持两种配置方式,但不可混用

  • 每行一个路由条目
TARGET via GW
  • 每三行一个路由条目
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
  1. 给接口配置多个地址

    ip addr之外,ifconfig或配置文件都可以。

  • ifconfig命令的配置
~]# ifconfig IFACE_LABEL IPADDR/NETMASK
其中IFACE_LABEL为:eth0:0, eth0:1
  • 配置文件的配置

    为别名添加配置文件:

配置文件中的两个字段不同以往文件中的字段:
DEVICE=IFACE_LABEL
BOOTPROTO: 网卡别名不支持动态获取地址,所有该项只能设置成static或none
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值