A. CentOS的網路配置的命令詳解
我們在進行對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):ifconfig IFACE(網路介面名,下同) IPADDR netmask NETMASK [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):route add [-net|-host] target [netmask Nm] [gw Gw][[dev] If]
添加相應介面的路由
~]#routeadd-host172.16.7.14gw172.16.0.1deveth1#主機路由 ~]#routeadd-net172.16.7.0/24gw172.16.0.1deveth1#網段路由 ~]#routeadddefaultgw172.16.0.1deveth1#默認路由
c):route del [-net|-host] target [netmask Nm][[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]
-n:以數字格式顯示ip和埠號,不做地址轉換;
-r:顯示內核路由表
-p:顯示相關的進程和PID
-e:顯示擴展格式
-a:顯示所有的連接狀態
-t:顯示tcp協議的相關連接的狀態
-u:顯示udp協議的相關連接的狀態
-w:顯示raw socket相關連接的狀態
-l:顯示處於監聽狀態的連接
-i:顯示所有介面狀態
-I:顯示特定的介面狀態
以上個選項可組合使用,常用組合有-tan,-uan,-tln,-uln,-tunlp等
~]#netstat-tan ~]#netstat-Ieth1
4、hostname命令
顯示配置主機名。它的使用格式如下:
hostname:顯示當前主機名
hostname HOSTNAME:修改當前主機名為HOSTNAME,僅當前有效,重啟無效。
~]#hostname ~]#hostnameTEST
5、hostnamectl命令(CentOS7新增)
顯示配置主機名。它的使用格式如下:
hostnamectl [status]:顯示當前主機名信息
hostnamectl set-hostname:設定主機名,永久有效
~]#hostnamectlset-hostnameCentOS7
二、iproute2系命令
iproute2系命令有ip link,ip addr,ip route,ip netns和ss等。
1、ip link命令
配置網路介面屬性。它的使用格式如下:
a):ip link set [dev] IFACE [up|down] [multicast on|off] [name IFACE] [mtu NUMBER]
up and down:啟動或禁止選定的網路介面
multicast on or multicast off:啟動或禁止組播功能
name NAME:重命名介面(命名前需先down掉介面)
mtu NUMBER:設置介面的mtu大小,默認為1500
~]#iplinkseteth1nameeth2up ~]#
b):ip link [show|list]
顯示全部網路介面的屬性。
~]#iplinkshow
2、ip addr命令
配置網路介面的ip地址。它的使用格式如下:
a):ip addr add IPADDR dev IFACE[label NAME][broadcast ADDRESS][scope SCOPE_VALUE]
增加一個ip地址。
[label NAME]:為額外添加的地址指明介面別名
[broadcast ADDRESS]:會根據ip和netmask自動計算,不用填
[scope SCOPE_VALUE]:gloal全局可用;link介面可用;host:本機可用
~]#ipaddradd172.16.7.14/24deveth1labeleth1:0
b):ip addr delete IPADDR dev IFACE
刪除一個ip地址。
~]#ipaddrdel172.16.7.14/24deveth1:0
c):ip addr show [dev IFACE|label IFACE:#]
僅顯示指定的介面地址。
~]#ipaddrshowlabeleth1:0 ~]#ipaddrshoweth1
d):ip addr flush [dev] {IFACE|label IFACE:#}
清空指定的所有地址或別名的地址。
~]#ipaddrflushlabeleth1:0 ~]#ipaddrflusheth1
3、ip route命令
配置介面的路由表信息。它的使用格式如下:
a):ip route addTYPE PREFIX(目標網路)via GateWay [dev IFACE] [src SOURCE_IP]
添加路由表。
~]#iprouteadd172.16.7.14via172.16.0.1deveth1 ~]#iprouteadd172.16.7.0/24via172.16.0.1deveth1 ~]#iprouteadddefaultvia172.16.0.1deveth1
b):ip route del TYPE PREFIX
刪除路由表。
~]#iproutedel172.16.7.14 ~]#iproutedel172.16.7.0/24
c):ip route show
顯示路由表。
~]#iprouteshow
d):ip route flush dev IFACE
清空指定介面的所有路由表。
~]#iprouteflushdeveth1
4、ss命令
和netstat命令一樣用來查看網路狀態,其選項參數和netstat命令基本相同,但是其查詢速度比netstat命令要快。它的使用格式如下:
ss [options][filter]
filter:過濾器 FILTER := [ state TCP-STATE ] [ EXPRESSION ]
選項:
-t:TCP協議的相關連接
-u:UDPF相關的連接
-w:raw socket相關的連接
-l:處於監聽狀態的連接
-a:所有狀態
-n:以數字格式顯示IP和Port
-e:擴展格式
-p:顯示相關的進程及PID
-m:內存用量
-o:計時器信息
EXPRESSION:
dport:目標埠
sport:源埠
『( dport = :22 or sport = :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」,是否運行dhcp server分配的dns伺服器指向覆蓋本地手動指定的DNS伺服器指向;默認為允許
HWADDR:設備的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服務來控制介面;
network-scripts]#catifcfg-eth1 DEVICE="eth1" ONBOOT=yes NETBOOT=yes IPADDR=172.16.7.14 DNS=172.16.0.1 GATEWAY=172.16.0.1 NETMASK=255.255.0.0 IPV6INIT=no BOOTPROTO=none TYPE=Ethernet
2、路由的相關配置文件:
其路徑為:/etc/sysconfig/network-scripts/route-IFACE
其格式為:(不可混用)
a):每行一個路由條目:
TARGET via GW
b):每三行一個路由條目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
network-scripts]#catroute-eth1 172.16.7.0/24via172.16.0.1
3、主機名的相關配置文件:
其路徑為:/etc/sysconfig/network
其格式為:
HOSTNAME=
sysconfig]#catnetwork #Createdbyanaconda HOSTNAME=centos7.1
4、DNS伺服器指向配置文件:
其路徑為:/etc/resolv.conf
其格式為:
nameserver DNS_SERVER_IP
etc]#catresolv.conf
#GeneratedbyNetworkManager
searchmagelinux.com
nameserver172.16.0.1
四、結語
在學習Linux的路上,網路是非常重要的一環,其命令也在不斷改進著,很多命令有著相同的作用,可以選擇先記憶比較簡單和高效的命令和參數。除上述命令之外,在CentOS7中也有著如nmtui這樣直接顯示圖形界面的還用命令。