我们在进行对CentOS的网络配置时,一般会从IP地址(IPADDR)、子网掩码(NETMASK)、网关(Gateway)、主机名(HOSTNAME)、DNS服务器等方面入手。而在CentOS中,又有着不同的命令或配置文件可以完成这些配置操作,接下来,我们将从ifcfg系命令,iproute2系命令以及配置文件3个方面来简析网络配置的方法。
一、ifcfg系命令
ifcfg系命令包括ifconfig,route,netstat和hostname。
1、ifconfig命令
用来配置一个网络接口。它的使用格式如下:
a):ifconfig[-a][interface]
-a:表示显示所有的网络接口信息,包括inactive状态的接口
~]#ifconfig-a
b):ifconfigIFACE(网络接口名,下同)IPADDRnetmaskNETMASK[up|down]
表示通过ifconfig命令直接修改接口的ip地址和netmask,并可启停该接口。
该命令会将配置参数立即送往内核中的TCP/IP协议栈,所以会立即生效,但是重启服务后会无效。
~]#ifconfigeth1172.16.7.14netmask255.255.0.0~]#ifconfigeth1172.16.7.14/16down
2、route命令
显示和配置ip路由表。它的使用格式如下:
a):route[-n]
表示查看全部的路由表,并以数字显示ip地址
~]#route-n
b):routeadd[-net|-host]target[netmaskNm][gwGw][[dev]If]
添加相应接口的路由
~]#routeadd-host172.16.7.14gw172.16.0.1deveth1#主机路由~]#routeadd-net172.16.7.0/24gw172.16.0.1deveth1#网段路由~]#routeadddefaultgw172.16.0.1deveth1#默认路由
c):routedel[-net|-host]target[netmaskNm][[dev]If]
删除路由
~]#routedel-host172.16.7.14deveth1~]#routedel-net172.16.7.0/24deveth1~]#routedeldefaultdeveth1
3、netstat命令
显示网络连接,路由表,接口状态等。它的使用格式如下:
netstat[-n][-r][-p][-e][-a][--tcp|-t][--udp|-u][--raw|-w][--listening|-l][-i][-I<IFACE>]
-n:以数字格式显示ip和端口号,不做地址转换;
-r:显示内核路由表
-p:显示相关的进程和PID
-e:显示扩展格式
-a:显示所有的连接状态
-t:显示tcp协议的相关连接的状态
-u:显示udp协议的相关连接的状态
-w:显示rawsocket相关连接的状态
-l:显示处于监听状态的连接
-i:显示所有接口状态
-I<IFACE>:显示特定的接口状态
以上个选项可组合使用,常用组合有-tan,-uan,-tln,-uln,-tunlp等
~]#netstat-tan~]#netstat-Ieth1
4、hostname命令
显示配置主机名。它的使用格式如下:
hostname:显示当前主机名
hostnameHOSTNAME:修改当前主机名为HOSTNAME,仅当前有效,重启无效。
~]#hostname~]#hostnameTEST
5、hostnamectl命令(CentOS7新增)
显示配置主机名。它的使用格式如下:
hostnamectl[status]:显示当前主机名信息
hostnamectlset-hostname:设定主机名,永久有效
~]#hostnamectlset-hostnameCentOS7
二、iproute2系命令
iproute2系命令有iplink,ipaddr,iproute,ipnetns和ss等。
1、iplink命令
配置网络接口属性。它的使用格式如下:
a):iplinkset[dev]IFACE[up|down][multicaston|off][nameIFACE][mtuNUMBER]
upanddown:启动或禁止选定的网络接口
multicastonormulticastoff:启动或禁止组播功能
nameNAME:重命名接口(命名前需先down掉接口)
mtuNUMBER:设置接口的mtu大小,默认为1500
~]#iplinkseteth1nameeth2up~]#iplinkseteth2multicastoffmtu1000
b):iplink[show|list]
显示全部网络接口的属性。
~]#iplinkshow
2、ipaddr命令
配置网络接口的ip地址。它的使用格式如下:
a):ipaddraddIPADDRdevIFACE[labelNAME][broadcastADDRESS][scopeSCOPE_VALUE]
增加一个ip地址。
[labelNAME]:为额外添加的地址指明接口别名
[broadcastADDRESS]:会根据ip和netmask自动计算,不用填
[scopeSCOPE_VALUE]:gloal全局可用;link接口可用;host:本机可用
~]#ipaddradd172.16.7.14/24deveth1labeleth1:0
b):ipaddrdeleteIPADDRdevIFACE
删除一个ip地址。
~]#ipaddrdel172.16.7.14/24deveth1:0
c):ipaddrshow[devIFACE|labelIFACE:#]
仅显示指定的接口地址。
~]#ipaddrshowlabeleth1:0~]#ipaddrshoweth1
d):ipaddrflush[dev]{IFACE|labelIFACE:#}
清空指定的所有地址或别名的地址。
~]#ipaddrflushlabeleth1:0~]#ipaddrflusheth1
3、iproute命令
配置接口的路由表信息。它的使用格式如下:
a):iprouteaddTYPEPREFIX(目标网络)viaGateWay[devIFACE][srcSOURCE_IP]
添加路由表。
~]#iprouteadd172.16.7.14via172.16.0.1deveth1~]#iprouteadd172.16.7.0/24via172.16.0.1deveth1~]#iprouteadddefaultvia172.16.0.1deveth1
b):iproutedelTYPEPREFIX
删除路由表。
~]#iproutedel172.16.7.14~]#iproutedel172.16.7.0/24
c):iprouteshow
显示路由表。
~]#iprouteshow
d):iprouteflushdevIFACE
清空指定接口的所有路由表。
~]#iprouteflushdeveth1
4、ss命令
和netstat命令一样用来查看网络状态,其选项参数和netstat命令基本相同,但是其查询速度比netstat命令要快。它的使用格式如下:
ss[options][filter]
filter:过滤器FILTER:=[stateTCP-STATE][EXPRESSION]
选项:
-t:TCP协议的相关连接
-u:UDPF相关的连接
-w:rawsocket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示IP和Port
-e:扩展格式
-p:显示相关的进程及PID
-m:内存用量
-o:计时器信息
EXPRESSION:
dport:目标端口
sport:源端口
‘(dport=:22orsport=:22)’
~]#ss-tan#查看当前网络所以tcp的连接状态
三、网络配置文件
在CentOS系统上我们可以通过对修改不同的网络配置文件来使得配置网络接口的各种属性,不过要使其永久有效,还需使内核重读修改后的配置文件。
1、IP/NETMASK/GW/DNS等属性的配置文件:
其路径为:/etc/sysconfig/network-scripts/ifcfg-IFACE
其格式为:
DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
NETBOOT:是否支持网络引导;
UUID:设备的唯一标识;
IPv6INT:是否初始化IPv6;
BOOTPROTO:激活此接口时使用什么协议来配置属性,常用dhcp、bootp、static、none
TYPE:接口类型,常见的有ethernet、bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
GATEWAY:默认网关;
IPADDR:本机ip地址;
NETMASK:子网掩码;CentOS7支持使用PREFIX以长度指明子网掩码;
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为dhcp,是否运行dhcpserver分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许
HWADDR:设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
network-scripts]#catifcfg-eth1DEVICE="eth1"ONBOOT=yesNETBOOT=yesIPADDR=172.16.7.14DNS=172.16.0.1GATEWAY=172.16.0.1NETMASK=255.255.0.0IPV6INIT=noBOOTPROTO=noneTYPE=Ethernet
2、路由的相关配置文件:
其路径为:/etc/sysconfig/network-scripts/route-IFACE
其格式为:(不可混用)
a):每行一个路由条目:
TARGETviaGW
b):每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
network-scripts]#catroute-eth1172.16.7.0/24via172.16.0.1
3、主机名的相关配置文件:
其路径为:/etc/sysconfig/network
其格式为:
HOSTNAME=<HOSTNAME>
sysconfig]#catnetwork#CreatedbyanacondaHOSTNAME=centos7.1
4、DNS服务器指向配置文件:
其路径为:/etc/resolv.conf
其格式为:
nameserverDNS_SERVER_IP
etc]#catresolv.conf
#GeneratedbyNetworkManager
searchmagelinux.com
nameserver172.16.0.1
四、结语
在学习Linux的路上,网络是非常重要的一环,其命令也在不断改进着,很多命令有着相同的作用,可以选择先记忆比较简单和高效的命令和参数。除上述命令之外,在CentOS7中也有着如nmtui这样直接显示图形界面的还用命令。