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<IFACE>]
-n:以數字格式顯示ip和連接埠號碼,不做地址轉換;
-r:顯示核心路由表
-p:顯示相關的進程和PID
-e:顯示擴充格式
-a:顯示所有的串連狀態
-t:顯示tcp協議的相關串連的狀態
-u:顯示udp協議的相關串連的狀態
-w:顯示raw socket相關串連的狀態
-l:顯示處於監聽狀態的串連
-i:顯示所有介面狀態
-I<IFACE>:顯示特定的介面狀態
以上個選項可組合使用,常用組合有-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~]#iplinkseteth2multicastoffmtu1000
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-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):每行一個路由條目:
TARGET via GW
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
其格式為:
nameserver DNS_SERVER_IP
etc]#catresolv.conf#GeneratedbyNetworkManagersearchmagelinux.comnameserver172.16.0.1四、結語
在學習Linux的路上,網路是非常重要的一環,其命令也在不斷改進著,很多命令有著相同的作用,可以選擇先記憶比較簡單和高效的命令和參數。除上述命令之外,在CentOS7中也有著如nmtui這樣直接顯示圖形介面的還用命令。
參考:www.magedu.com
http://letitbe1028.blog.51cto.com/7901525/1699061
http://kgdbfmwfn.blog.51cto.com/5062471/1691067