Linux中主要使用三类网络管理命令: 1.ifconfig, route和netstat属于传统的功能单一类网络命令; 2.ip和ss属于综合类网络命令; 3.nmcli适用于RHEL7中的综合网络命令, 还可以通过配置文件来实现网络管理.
本文主要讲解这三类网络管理命令和相关配置文件.
注: 通过命令修改的网络参数在网络服务重新启动后就会丢失, 只有通过配置文件修改的网络参数才能永久有效.
1-1. ifconfig命令
作用: 查看或配置网络接口参数
格式:
ifconfig [interface] [up|down] 查看指定网络接口参数, 设置网络接口状态
常用选项:
-a: 显示所有网络接口信息
默认ifconfig只显示活动网络接口, 不消失关闭网络接口参数
ifconfig INT address 配置指定网络接口的IP地址
ifconfig INT IP/MASK 或 ifconfig INT IP netmask MASK 修改指定设备的IP地址
# 配置IP地址时, 如果掩码使用点分十进制表示就必须使用关键字network
1-2. route命令
作用: 查看或配置本机的路由条目
格式:
route 查看路由条目
选项:
-n: 对域名不进行解析, 以IP地址进行显示
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
删除网络路由条目
1-3. netstat命令
作用: 通过指定选项查看本机的网络属性
格式: netstat [options]
常用选项:
-n: 以数字显示IP和端口
-t: 显示tcp连接
-u: 显示udp连接
-l: 处于监听状态端口
-a: 所有状态
-e: 扩展格式
-p: 显示相关进程及PID
-r: 显示内核路由表
-I INT: 显示指定接口的统计信息
=============================================================
2-1. ip命令
作用: 配置本机的接口状态, 网络参数和路由条目
格式: ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT为link时, 用于配置本机的二层链路属性配置
对应COMMAND为:
ip link set DEVICE { up | down | arp { on | off }: 设置二层链路接口状态
ip link show [ DEVICE ]: 查看设备属性
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地址
通过flush情况指定网络接口的所有IP地址
OBJECT为route时, 用于设置本机路由条目
对应COMMAND为:
ip route { list | flush } SELECTOR: 查看或清空路由条目
ip route { add | del | change | append | replace | monitor } ROUTE: 修改路由条目
通过add命令添加路由条目
通过change命令修改路由条目
2-2. ss命令
作用: 指定选项显示本机的网络参数
# ss命令与netstat命令作用相同, 但是执行效率更高, 系统繁忙时建议使用ss命令
格式: ss [options]
常用选项:
-n: 以数字显示IP和端口
-t: 显示tcp连接
-u: 显示udp连接
-l: 处于监听状态端口
-a: 所有状态
-e: 扩展格式
-p: 显示相关进程及PID
-r: 显示内核路由表
-I INT: 显示指定接口的统计信息
=============================================================
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实现对本地网络连接的管理
通过modify子命令可以对网络连接的多种参数进行修改
当OBJECT为device时,
对应COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }
用于对本地网络接口设备实现查看和管理
通过show子命令可以查看网络接口的详细配置信息
=============================================================
4. 通过配置文件修改网络参数
4-1. IP地址配置文件: /etc/sysconfig/network-scripts/ifcfg-INT
字段解释:
# 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
# 配置文件需要手工创建
文件格式
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
通过 nameserver DNS_IP 来指定DNS服务器
本人水平有限, 如有理解不当的地方, 请大家给予指正, 非常感谢!