一、简述
ifcfg家族主要命令:ifconfig(配置IP,NETMASK),route(配置路由),netstat(状态及统计数据查看)。
二、使用
1.ifconfig命令
配置网络接口
A)格式
~]# ifconfig [接口] [down up -allmulti -arp -promisc] [add<地址>] [del<地址>] [<硬件地址>] [media<网络媒介类型>] [mem_start<内存地址>] [metric<数目>] [mtu<字节>] [netmask<子网掩码>] [tunnel<地址>] [-broadcast<地址>] [-pointopoint<地址>]
[接口] # 网络设备的名称。
down # 关闭指定的网络设备。
up # 启动指定的网络设备。
arp # 打开指定接口上使用的ARP协议。前面加上一个负号(-arp)用于关闭该选项。
allmuti # 启动指定接口的无区别模式。前面加上一个负号(-allmuti)用于关闭该选项。
promisc # 启动指定网络设备的promiscuous(混杂模式)模式。前面加上一个负号(-promisc)用于关闭该选项。
add <地址> # 设置网络设备IPv6的IP地址。
del <地址> # 删除网络设备IPv6的IP地址。
media <网络媒介类型> # 设置网络设备的媒介类型。
mem_start <内存地址> # 设置网络设备在主内存所占用的起始地址。
metric <数目> # 指定在计算数据包的转送次数时,所要加上的数目。
mtu <字节> # 设置网络设备的MTU(最大传输单元)。
netmask <子网掩码> # 设置网络设备的子网掩码。
tunnel <地址> # 建立IPv4与IPv6之间的隧道通信地址。
-broadcast <地址> # 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint <地址> # 与指定地址的网络设备建立直接连线,此模式具有保密功能。
混杂模式:时候为嗅探到网络上的数据,需要将网卡设置到混杂模式,进入该模式后会将网络上的数据一并抓获。
B)案例
[root@wybaron_host1015 ~]# ifconfig # 显示当前所有启动的网络接口
[root@wybaron_host1015 ~]# ifconfig -a # 显示所有网络接口(无论开启或关闭的状态)
[root@wybaron_host1015 ~]# ifconfig 接口 up # 开启“接口”
[root@wybaron_host1015 ~]# ifconfig 接口 down # 关闭“接口”
[root@localhost ~]# ifconfig 接口 192.168.20.4 # 设置“接口”的ip地址
[root@localhost ~]# ifconfig 接口 192.168.20.4 netmask 255.255.255.0 # 设置“接口”的ip地址、子网掩码
[root@localhost ~]# ifconfig 接口 192.168.20.4 netmask 255.255.255.0 broadcast 192.168.20.255# 设置“接口”的ip地址、子网掩码、广播地址
[root@wybaron_host1015 ~]# ifconfig 接口 mtu # # 设置能通过的最大数据包大小为#(默认为1500)bytes
[root@wybaron_host1015 ~]# ifconfig 接口 hw ether xx:xx:xx:xx:xx:xx:xx # 修改“接口”的MAC地址为“xx:xx:xx:xx:xx:xx:xx”
# 同一网卡添加多个ip地址
[root@wybaron_host1015 ~]# ifconfig ens36:0 192.168.20.4 netmask 255.255.255.0 broadcast 192.168.20.255
[root@wybaron_host1015 ~]# ifconfig ens36:1 172.30.16.4 netmask 255.255.0.0 broadcast 172.30.255.255
2.route命令
查看或修改路由表,主要设置的是静态路由,用于实现两个不同子网之间的通信,需要一台连接两个子网网络的路由器,或者同时定位于两个网络的网关来实现。
直接在命令行模式下使用route命令添加的路由不会永久保存,网卡或机器重启后,通过route命令设置的路由就失效了,永久有效需要在文件中进行修改和保存。
[root@wybaron_host1015 ~]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
A)格式
route(选项)(参数)
选项
-A:设置地址类型;
-C:打印将Linux核心的路由缓存;
-v:详细信息模式;
-n:不执行DNS反向查找,直接显示数字形式的IP地址;
-e:netstat格式显示路由表;
-net:到一个网络的路由表;
-host:到一个主机的路由表。
参数
add:增加指定的路由记录;
del:删除指定的路由记录;
target:目的网络或目的主机;
gw:设置默认网关;
mss #:设置TCP的最大区块长度(MSS),单位MB;
window #:指定通过路由表的TCP连接的TCP窗口大小;
dev:路由记录所表示的网络接口。
B)案例
# 显示当前路由
[root@wybaron_host1015 ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens33
172.30.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens36
192.168.20.0 0.0.0.0 255.255.255.0 U 101 0 0 ens36
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.100.1 0.0.0.0 UG 100 0 0 ens33
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens33
172.30.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens36
192.168.20.0 0.0.0.0 255.255.255.0 U 101 0 0 ens36
# 路由表各项释义
Destination 目标网络或目标主机。
Gateway 网关地址或'*'(如未设)。
Genmask 目标网络的子网掩码;'255.255.255.255'为主机路由,'0.0.0.0'为默认路由,其它一般为网络路由。
Flags 可能出现的标志有:
U (route is up) 路由正常
H (target is a host) 主机路由(命令使用时为:-host)
G (use gateway) 使用网关的间接路由(命令使用时为:-net)
R (reinstate route for dynamic routing) 为动态选路恢复路由
D (dynamically installed by daemon or redirect) 该路由由选路进程或重定向动态创建
M (modified from routing daemon or rederict) 该路由已由选路进程或重定向修改
! (reject route) 阻塞路由(命令使用时为:reject)
Metric 通向目标的距离(通常以跳来计算)。新内核不使用此概念,而选路进程可能会用。
Ref 使用此路由的活动进程个数(Linux内核并不使用)。
Use 查找此路由的次数。根据-F和-C的使用,此数值是路由缓存的损失数或采样数。
Iface 使用此路由发送分组的接口。
# 添加一条拒绝路由,目的是10.0.0.0网络的均被拒绝
[root@wybaron_host1015 ~]# route add -net 10.0.0.0 netmask 255.0.0.0 reject
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
10.0.0.0 - 255.0.0.0 ! 0 - 0 -
...
# 添加一条主机路由(目的为主机192.168.2.3的都必须经由172.30.16.1到达)
[root@wybaron_host1015 ~]# route add -host 192.168.2.3 gw 172.30.16.1 dev ens36
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
192.168.2.3 172.30.16.1 255.255.255.255 UGH 0 0 0 ens36
...
# 添加一条网络路由(目的为网络192.168.0.0的都必须经由172.30.16.1)
[root@wybaron_host1015 ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.30.16.1 dev ens36
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
192.168.0.0 172.30.16.1 255.255.255.0 UG 0 0 0 ens36
...
# 添加一条默认路由(当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口172.30.16.1)
[root@wybaron_host1015 ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.30.16.1
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.30.16.1 0.0.0.0 UG 0 0 0 ens36
...
[root@wybaron_host1015 ~]# route add default gw 172.30.16.2
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.30.16.2 0.0.0.0 UG 0 0 0 ens36
...
# 删除以上建立的拒绝路由、主机路由、网络路由、默认路由
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.30.16.2 0.0.0.0 UG 0 0 0 ens36
0.0.0.0 172.30.16.1 0.0.0.0 UG 0 0 0 ens36
0.0.0.0 172.16.100.1 0.0.0.0 UG 100 0 0 ens33
10.0.0.0 - 255.0.0.0 ! 0 - 0 -
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens33
172.30.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens36
172.30.0.0 0.0.0.0 255.255.0.0 U 101 0 0 ens36
192.168.0.0 172.30.16.1 255.255.255.0 UG 0 0 0 ens36
192.168.2.3 172.30.16.1 255.255.255.255 UGH 0 0 0 ens36
# 删除拒绝路由
[root@wybaron_host1015 ~]# route del -net 10.0.0.0 netmask 255.0.0.0 reject
# 删除主机路由
[root@wybaron_host1015 ~]# route del -host 192.168.2.3
# 删除网络路由
[root@wybaron_host1015 ~]# route del -net 192.168.0.0 gw 172.30.16.1 netmask 255.255.255.0
# 删除默认路由
[root@wybaron_host1015 ~]# route del default gw 172.30.16.1
[root@wybaron_host1015 ~]# route del default gw 172.30.16.2
[root@wybaron_host1015 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.100.1 0.0.0.0 UG 100 0 0 ens33
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens33
172.30.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens36
172.30.0.0 0.0.0.0 255.255.0.0 U 101 0 0 ens36
3.netstat命令
显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组。
A)格式
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
--tcp|-t tcp协议相关
--udp|-u udp协议相关
--raw|-w raw socket相关
--listening|-l 处于监听状态
--all|-a 所有状态
--numeric|-n 以数字显示IP和端口
--extend|-e[--extend|-e] 扩展格式
--program|-p 显示相关进程及PID
# 常用组合
-tan 所有tcp端口
-uan 所有udp端口
-tnl 处于监听的tcp端口
-unl 处于监听的udp端口
# 查看路由表
netstat {--route|-r} [--numeric|-n]
{--route|-r} 显示内核路由表
--numeric|-n 数字格式(输出更快)
# 查看接口统计数据
netstat {--interfaces|-i|I} [iface] [--all|-a] [--extend|-e[--extend|-e]] [--program|-p] [--numeric|-n]
{--interfaces|-i|I} 显示所有网络接口列表
--interfaces=iface 显示指定的网络接口信息列表
--extend|-e[--extend|-e] 显示网卡信息(类似于“ifconfig”命令)
--program|-p --numeric|-n --all|-a 等效于“-i”
B)案例
# 列出所有正在监听的tcp端口
[root@wybaron_host1015 ~]# netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:pptp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:sunrpc [::]:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
# 列出所有正在监听的udp端口
[root@wybaron_host1015 ~]# netstat -ul
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 localhost:323 0.0.0.0:*
udp 0 0 0.0.0.0:787 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp6 0 0 localhost:323 [::]:*
udp6 0 0 [::]:787 [::]:*
udp6 0 0 [::]:sunrpc [::]:*
# 列出所有监听的UNIX端口
[root@wybaron_host1015 ~]# netstat -lx
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 13330 /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 22489 private/proxywrite
unix 2 [ ACC ] STREAM LISTENING 22492 private/smtp
unix 2 [ ACC ] STREAM LISTENING 22495 private/relay
unix 2 [ ACC ] STREAM LISTENING 18715 /var/run/vmware/guestServicePipe
unix 2 [ ACC ] STREAM LISTENING 8730 /run/systemd/journal/stdout
unix 2 [ ACC ] STREAM LISTENING 22501 private/error
...
# 显示所有TCP端口的统计信息
[root@wybaron_host1015 ~]# netstat -ts
IcmpMsg:
InType0: 8
InType3: 30
OutType3: 62
OutType8: 8
Tcp:
90 active connections openings
26 passive connection openings
0 failed connection attempts
...
UdpLite:
TcpExt:
84 TCP sockets finished time wait in fast timer
...
IpExt:
InNoRoutes: 16
...
# 显示所有UDP端口的统计信息
[root@wybaron_host1015 ~]# netstat -us
IcmpMsg:
InType0: 8
InType3: 30
OutType3: 62
OutType8: 8
Udp:
932 packets received
31 packets to unknown port received.
0 packet receive errors
974 packets sent
0 receive buffer errors
0 send buffer errors
UdpLite:
IpExt:
InNoRoutes: 16
InMcastPkts: 1565
InBcastPkts: 314051
InOctets: 154751957
OutOctets: 6957615
InMcastOctets: 50080
InBcastOctets: 28766052
InNoECTPkts: 438034
4.DNS设置
4.1)配置文件与格式
# 配置文件
[root@wybaron_host1015 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 61.139.2.69
nameserver 8.8.8.8
# 格式
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
4.2)解析方式
FQDN(Fully Qualified Domain Name,即是域名)
# 案例:
域名wybaron.com。若有一台主机名为web,则可以使用web.wybaron.com得到这个主机IP。若还有两台提供邮件和OA服务的主机cmail,oa,则这时候可以用以下FQDN:cmail.wybaron.com,oa.wybaron.com得到对应主机的IP。
# Linux上查看相关信息
hostname, 查看主机名
hostname -f 查看FQDN
dnsdomainname 查看域
A)正向解析(FQDN-->IP)
~]# dig -t A FQDN
~]# host -t A FQDN
-t Type 指定要查询的记录类型。有效类型为:
A 主机的网际地址
CNAME 别名的规范名称
HINFO 主机 CPU与操作系统类型
KEY 安全密钥记录
MINFO 邮箱或邮件列表信息
MX 邮件交换器
NS 指定范围的名称服务器
PTR 如果查询的是一个网际地址则为主机名;否则,为其他信息的指针
SIG 签名记录
SOA 域的"授权开始"信息
TXT 文本信息
UINFO 用户信息
WKS 所支持的众所周知的服务
B)反向解析(IP-->FQDN)
~]# dig -x IP
~]# host -t PTR IP
-t Type 指定要查询的记录类型。有效类型为:
A 主机的网际地址
CNAME 别名的规范名称
HINFO 主机 CPU与操作系统类型
KEY 安全密钥记录
MINFO 邮箱或邮件列表信息
MX 邮件交换器
NS 指定范围的名称服务器
PTR 如果查询的是一个网际地址则为主机名;否则,为其他信息的指针
SIG 签名记录
SOA 域的"授权开始"信息
TXT 文本信息
UINFO 用户信息
WKS 所支持的众所周知的服务
5.ifup/ifdown命令
用于激活/禁用指定的网络接口。
ifup(参数)
# 参数
网络接口:要激活的网络接口。
# 实例
[root@wybaron_host1015 ~]# ifup ens36
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/15)0
ifdown(参数)
# 参数
网络接口:要禁用的网络接口。
# 实例
[root@wybaron_host1015 ~]# ifdown ens36
成功断开设备 'ens36'。
三、补充
CentOS 6、CentOS 7网络接口命名规则
# CentOS 6及6以前的版本
网卡命名方式会根据情况有所改变,不是唯一的、固定的。网络接口使用连续号码命名:eth0、eth1等。当增加或删除网卡时,名称可能会发生变化。
# CentOS 7(一致性命名规则)
方式一: 如果从BIOS中能够取到可用的,板载网卡的索引号,则使用这个索引号命名,例如: eno1,如不能则尝试方式二
方式二: 如果从BIOS中能够取到可以用的,网卡所在的PCI-E热插拔插槽的索引号,则使用这个索引号命名,例如: ens1,如不能则尝试方式三
方式三:如果能拿到设备所连接的物理位置信息,则使用这个信息命名,例如:enp2s0,如不能则尝试方式五
方式五:传统的kernel命名方法,例如: eth0,这种命名方法的结果不可预知的,即可能第二块网卡对应eth0,第一块网卡对应eth1。
方式四:使用网卡的MAC地址来命名,这个方法一般不使用。
####################################################
# CentOS 7中有如下约定
## enX(X常见有下面3种类型):
#### o:主板半载网卡,集成设备的设备索引号
#### p:独立网卡,PCI网卡
#### s:热插拔网卡,USB之类
#### nnn(数字):MAC地址+主板信息计算得出的唯一序列
####################################################
ifocnfig各项的解释
[root@wybaron_host1015 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.22.4 netmask 255.255.0.0 broadcast 172.16.255.255
inet6 fe80::5de2:9ce2:316e:50ba prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d8:cf:8e txqueuelen 1000 (Ethernet)
RX packets 5441478 bytes 461474503 (440.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34766 bytes 8846983 (8.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 网卡名称
ens33
# UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
# IPV4地址、子网掩码、广播地址
inet 172.16.22.4 netmask 255.255.0.0 broadcast 172.16.255.255
# IPV6地址相关
inet6 fe80::5de2:9ce2:316e:50ba:
prefixlen 64 scopeid 0x20<link>
# 网卡地址
ether 00:0c:29:d8:cf:8e
# 用来传输数据的缓冲区的储存长度
txqueuelen 1000 (Ethernet)
# RX 表示网络由启动到目前为止的数据包接收情况,packets 代表数据包数、errors 代表数据包发生错误的数量、dropped 代表数据包由于有问题而遭丢弃的数量等;RX Bytes:传送的字节总量
RX packets 5441478 bytes 461474503 (440.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
# TX 表示网络由启动到目前为止的传送情况,packets 代表数据包数、errors 代表数据包发生错误的数量、dropped 代表数据包由于有问题而遭丢弃的数量等;TX Bytes:接收的字节总量;collisions:代表数据包碰撞的情况,如果发生太多次,表示网络状况不太好。
TX packets 34766 bytes 8846983 (8.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
参考
https://www.cnblogs.com/zyd112/p/8143464.html