Linux中主要使用三类网络管理命令: 1.ifconfig, route和netstat属于传统的功能单一类网络命令; 2.ip和ss属于综合类网络命令; 3.nmcli适用于RHEL7中的综合网络命令, 还可以通过配置文件来实现网络管理.

本文主要讲解这三类网络管理命令和相关配置文件.

注: 通过命令修改的网络参数在网络服务重新启动后就会丢失, 只有通过配置文件修改的网络参数才能永久有效.


1-1. ifconfig命令

作用: 查看或配置网络接口参数

格式:

ifconfig [interface] [up|down]       查看指定网络接口参数, 设置网络接口状态

常用选项:

-a: 显示所有网络接口信息

-s: 显示网络接口统计信息Linux网络管理--网络管理基本命令_基础











默认ifconfig只显示活动网络接口, 不消失关闭网络接口参数

Linux网络管理--网络管理基本命令_网络基本操作_02


ifconfig INT address        配置指定网络接口的IP地址

ifconfig INT IP/MASK 或 ifconfig INT IP netmask MASK 修改指定设备的IP地址

# 配置IP地址时, 如果掩码使用点分十进制表示就必须使用关键字network

Linux网络管理--网络管理基本命令_Linux_03


1-2. route命令

作用: 查看或配置本机的路由条目

格式:

route        查看路由条目

选项:

-n: 对域名不进行解析, 以IP地址进行显示

Linux网络管理--网络管理基本命令_基础_04


route add -net|-host|default TARGET [netmask MASK] [gw GW] [mertic N] [dev INT]

route del -net|-host|default TARGET [netmask MASK] [gw GW] [dev INT]

添加或删除路由条目

主机路由条目时使用关键字-host, 网络路由条目使用关键字-network, 默认路由条目使用关键字default

mertic N: 用于指定路由条目度量值

dev INT: 指定出战接口


添加主机路由条目 route add -host 1.1.1.1 gw 10.10.10.1 metric 15 dev eth1

下一跳地址为: 10.10.10.1, 路由条目度量值为15, 出站接口为eth1

网络路由条目 route add -net 3.3.3.0/24 metric 7 dev eth0

度量值为7, 出站接口为eth0

Linux网络管理--网络管理基本命令_Linux_05

删除网络路由条目

Linux网络管理--网络管理基本命令_Linux_06


1-3. netstat命令

作用: 通过指定选项查看本机的网络属性

格式: netstat [options]

常用选项:

-n: 以数字显示IP和端口

-t: 显示tcp连接

-u: 显示udp连接

-l: 处于监听状态端口

-a: 所有状态

-e: 扩展格式

-p: 显示相关进程及PID

-r: 显示内核路由表

-I INT: 显示指定接口的统计信息


Linux网络管理--网络管理基本命令_网络基本操作_07

=============================================================

2-1. ip命令

作用: 配置本机的接口状态, 网络参数和路由条目

格式: ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT为link时, 用于配置本机的二层链路属性配置

对应COMMAND为:

ip link set DEVICE { up | down | arp { on | off }: 设置二层链路接口状态

ip link show [ DEVICE ]: 查看设备属性

Linux网络管理--网络管理基本命令_网络基本操作_08


OBJECT为address时, 用于设置本机IP地址

对应COMMAND为:

ip addr { add | del } IFADDR dev STRING: 对指定网络接口添加或删除IP地址

ip addr { show | flush } [ dev STRING ]: 查看或清空指定设备的IP地址

add IP/MASK: 为设备添加地址

delete IP: 删除设备配置的地址

flush: 清空指定设备中的配置

show: 查看IP地址配置


通过add命令添加指定IP地址

Linux网络管理--网络管理基本命令_Linux_09


通过flush情况指定网络接口的所有IP地址

Linux网络管理--网络管理基本命令_基础_10


OBJECT为route时, 用于设置本机路由条目

对应COMMAND为:

ip route { list | flush } SELECTOR: 查看或清空路由条目

ip route { add | del | change | append | replace | monitor } ROUTE: 修改路由条目


通过add命令添加路由条目

Linux网络管理--网络管理基本命令_Linux_11


通过change命令修改路由条目

Linux网络管理--网络管理基本命令_Linux_12


2-2. ss命令

作用: 指定选项显示本机的网络参数

# ss命令与netstat命令作用相同, 但是执行效率更高, 系统繁忙时建议使用ss命令

格式: ss [options]

常用选项:

-n: 以数字显示IP和端口

-t: 显示tcp连接

-u: 显示udp连接

-l: 处于监听状态端口

-a: 所有状态

-e: 扩展格式

-p: 显示相关进程及PID

-r: 显示内核路由表

-I INT: 显示指定接口的统计信息

Linux网络管理--网络管理基本命令_网络基本操作_13

=============================================================

3-1. nmcli命令

nmcli命令是在RHEL7中对于NetworkManager进行管理的命令行工具, nmcli是一个功能强大, 使用灵活的命令, 但是也非常复杂. 这里只对nmcli的connection和device两种对象进行简要介绍.

作用: 用于创建, 显示, 编辑, 删除, 激活和关闭网络连接

格式: nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

# nmcli 对于 OBJECT 和 COMMAND 输入时支持Tab补齐功能, 比较人性化, 而且在各级OBJECT中都有相应help选项, 在使用时带来了很大便利.


OBJECT为connection

对应COMMAND := { show | up | down | add | edit | modify | delete | reload | load }

主要实现对于本地网络连接状态的查看, 管理等操作

通过connection实现对本地网络连接的管理

Linux网络管理--网络管理基本命令_网络基本操作_14


通过modify子命令可以对网络连接的多种参数进行修改

Linux网络管理--网络管理基本命令_基础_15


OBJECT为device时

对应COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }

用于对本地网络接口设备实现查看和管理


通过show子命令可以查看网络接口的详细配置信息

Linux网络管理--网络管理基本命令_基础_16

=============================================================

4. 通过配置文件修改网络参数

4-1. IP地址配置文件: /etc/sysconfig/network-scripts/ifcfg-INT

Linux网络管理--网络管理基本命令_网络基本操作_17


字段解释:

# cat ifcfg-eth0
DEVICE=        指定设备名称
BOOTPROTO=        指定IP地址获取方式: dhcp或static
HWADDR=        指定硬件网卡MAC地址
NM_CONTROLLED=        NM表示NetworkManager脚本, 用来替换network协议

PEERDNS=        表示如果通过dhcp方式获取IP地址时, 通过服务器收到的DNS是否覆盖至DNS配置文件中

ONBOOT=           指定是否开机自动启动网卡设备
TYPE=        显示网络接口类型
UUID=        指定设备的UUID
IPV6INIT=        是否启用IPv6功能
USERCTL=        指定普通用户是否控制该设备


静态IP地址时需要配置以下字段:
IPADDR=      指明IP地址
NETMASK=      子网掩码
GATEWAY=         默认网关
DNS#=        DNS服务器地址, 可以同时配置3个DNS服务器地址, 优先级高于/etc/resilov.conf中的DNS配置


4-2. 路由配置文件: /etc/sysconfig/network-scripts/route-INT

# 配置文件需要手工创建

Linux网络管理--网络管理基本命令_Linux_18


文件格式

1. 单条语句格式

TARGET via GW

EX: 192.168.50.128/28 via 10.10.10.11

2. 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

EX: 

ADDRESS0=192.168.50.128

NETMASK0=255.255.255.224

GATEWAY0=10.10.10.11


# 同一文件中只能使用一种格式


4-3. DNS配置文件: /etc/resolove.conf

Linux网络管理--网络管理基本命令_基础_19


通过 nameserver DNS_IP 来指定DNS服务器


本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!