本次操做的環境實在CentOS6和7的平臺上。
linux
在linux系統上,對於網絡屬性的配置命令有不少。各有各的喜好,本人就對目前linux系統上一些經常使用配置linux網絡屬性的命令進行簡單總結。經常使用的命令有ifcfg,ip,ss,nmclivim
等命令。centos
網絡屬性配置之ifconfig服務器
先對linux的老貴族網絡屬性管理的命令ifcfg進行簡析說明。對於這個命令只要接觸linux系統,應該都會有所瞭解。雖然它年代久遠,可是仍舊不要抹去它給你們帶來的便捷。對於ifconfig(configure a network interface)命令,我我的的解釋是配置網絡接口。Ifconfig命令所經常使用的選項參數其實很少。經常使用的以下。網絡
ifconfig [interface]app
#ifconfig iface [up|down]ssh
ifconfig interface [aftype] options | address ...socket
# ifconfig iface ip/mask [up]tcp
# ifconfig iface ip netmask mask ide
對上面的一些面料進行簡單的演示說明使用方法。以下:
[root@www ~]# ifconfig -a———顯示系統上全部網絡服務的使用狀況。
eth0 Link encap:Ethernet HWaddr 00:0C:29:D9:CC:36
inet addr:10.1.1.238 Bcast:10.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed9:cc36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:506005 errors:0 dropped:0 overruns:0 frame:0
TX packets:102167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:348119379 (331.9 MiB) TX bytes:39244293 (37.4 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:20 errors:0 dropped:0 overruns:0 frame:0
TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1470 (1.4 KiB) TX bytes:1470 (1.4 KiB)
[root@www ~]# ifconfig eth0——顯示單個網絡的使用狀態
eth0 Link encap:Ethernet HWaddr 00:0C:29:D9:CC:36
inet addr:10.1.1.238 Bcast:10.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed9:cc36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:506060 errors:0 dropped:0 overruns:0 frame:0
TX packets:102186 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:348124441 (331.9 MiB) TX bytes:39248151 (37.4 MiB)
此外ifconfig命令還能夠爲網卡配置IP地址,可是ifconfig命令配置的ip地址是零時的,只能零時生效,一丹服務器重啓,配置的ip地址就會消失。格式以下:
ifconfig interface [aftype] options | address ...
# ifconfig iface ip/mask [up]
# ifconfig iface ip netmask mask
實際演示以下:
[root@www ~]#ifconfig eth0 10.1.1.248/24 up
[root@www ~]# ifconfig eth0
\eth0 Link encap:Ethernet HWaddr 00:0C:29:D9:CC:36
inet addr:10.1.1.248 Bcast:10.1.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed9:cc36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:506603 errors:0 dropped:0 overruns:0 frame:0
TX packets:102390 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:348182070 (332.0 MiB) TX bytes:39264902 (37.4 MiB)
爲ip地址建立多個IP地址:以下
[root@www ~]# ifconfig eth0:0 192.168.1.2/24
[root@www ~]#
[root@www ~]#
[root@www ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:D9:CC:36
inet addr:172.16.249.253 Bcast:172.16.255.255 Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fed9:cc36/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:41402 errors:0 dropped:0 overruns:0 frame:0
TX packets:21063 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3707658 (3.5 MiB) TX bytes:2713673 (2.5 MiB)
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:D9:CC:36
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
能夠發現,IP地址配置已經完成生效了。對於ifconfig命令其實很簡單,沒過多的使用要求。
網絡屬性配置之ip
對於ip(show / manipulate routing, devices, policy routing and tunnel)命令我我的的翻譯是顯示路由器設備,策略路由等配置信息。Ip命令,我我的認爲它很是的強大。它擁有不少的選項參數。接下來,對它一些經常使用的選項參數進行簡單的說明。
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | rule | neigh | tunnel | maddr | mroute | monitor }
OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | inet | ipx link }
一、首先,先說說link可以跟的options.對於ip link(network device configuration),我我的的翻譯是網絡服務配置。接下對其一些經常使用的進行簡單的解釋說明,以下:
ip [ OPTIONS ] link { COMMAND | help }
ip link delete DEVICE type TYPE [ ARGS ]——刪除連接
ip link set { DEVICE } { up | down }
alias NAME ——設備添加別名
ip link show [ DEVICE | group GROUP ]——查看設備鏈接狀況。
接下來對上面的簡單解析,演示一下。
[root@localhost ~]# ip link show——顯示全部設備的使用狀況
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:1c:70:8e brd ff:ff:ff:ff:ff:ff
[root@www ~]# ip link set eth0 alias eth0:0
[root@www ~]#
[root@www ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d9:cc:36 brd ff:ff:ff:ff:ff:ff
alias eth0:0——設備的別名建立成功。
[root@www ~]#
二、接下來講明ip OBJECT 之addr的一些經常使用選項參數。想來ip命令使用最多也就是ipaddr的配置等一下操做,由於對其要重點的掌握。Ip addr(ip address - protocol address management.)我的翻譯的意思是地址配置協議管理。
首選說明其添加網絡屬性的一些命令的解釋,以下:
ip addr { add | del } IFADDR dev STRING
ip addr { show | flush } [ dev STRING ] [ scope SCOPE-ID ][ label PATTERN]
[ scope SCOPE-ID ]有四個做用域:
global - the address is globally valid.——應用於全局
site - (IPv6 only) the address is site local, i.e. it is valid inside this site.
這項是對ipv6纔有效,因此不必去過多瞭解。
link - the address is link local, i.e. it is valid only on this device.——僅鏈接有效
host - the address is valid only inside this host.——僅對主機自己有效
接下來對上面的命令進行簡單的演示:
[root@www ~]# ip addr add 192.168.1.22/32 dev eth0——添加ip地址。
[root@www ~]#
[root@www ~]# ip addr show eth0——查看ip地址命令
1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d9:cc:36 brd ff:ff:ff:ff:ff:ff
inet 172.16.249.253/16 brd 172.16.255.255 scope global eth0
inet 172.16.30.2/32 scope global eth0——可以發現,在沒有指定做用域的時候,默認是屬於全局的。
inet6 fe80::20c:29ff:fed9:cc36/64 scope link
valid_lft forever preferred_lft forever
既然能添加IP地址,那麼相對應的也能刪除ip地址。使用格式以下;
ip addr del IPDDR dev eth0
[root@www tmp]# ip addr del 172.16.249.253 dev eth0
Warning: Executing wildcard deletion to stay compatible with old scripts.
Explicitly specify the prefix length (172.16.249.253/32) to avoid this warning.
This special behaviour is likely to disappear in further releases,
fix your scripts!
Ip地址刪除以後,原來的主要ip就會被刪除。以前配置的全局IP地址就會被頂上。
[root@www ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d9:cc:36 brd ff:ff:ff:ff:ff:ff
inet 172.16.30.2/32 scope global eth0
inet6 fe80::20c:29ff:fed9:cc36/64 scope link
valid_lft forever preferred_lft forever
對於刪除IP地址的命令除了del以外,還可使用flush選項參數。它也是刪除命令之意。執行這條命令以後,對應網絡接口的ip地址都會被清楚。使用而是以下:
ip addr flush IPADDR
[root@www ~]#ip addr flush dev eth0 secondary
三、既然能能夠管理端口的ip地址,那麼相對應的也能夠管理route。可以爲服務器指定路由條路。其命令的使用格式以下:
ip route add TARFET via GW dev IFACE SRC SOURCE_IP
[root@www ~]# ip route add 192.168.1.1/32 via 172.16.0.1 dev eth0
[root@www ~]# 實際使用格式如上
[root@www ~]#
[root@www ~]# ip route show——查看route詳細信息
192.168.1.1 via 172.16.0.1 dev eth0
172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.249.253 metric 1
default via 172.16.0.1 dev eth0 proto static
[root@www ~]#
其實除了可以配置路由以外,還能夠爲網絡端口指定默認網絡。使用格式以下:
ip route add default via GW dev IFACE
[root@www ~]# ip route add default via 172.16.0.1 dev eth0
[root@www ~]# 實際使用格式如上
[root@www ~]# ip route show
192.168.1.1 via 172.16.0.1 dev eth0
172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.249.253 metric 1
default via 172.16.0.1 dev eth0——添加默認路由成功。
既然能添加ip地址和路由地址,那麼也能夠刪它們。接下來就去刪除它們。
[root@www ~]# ip add del 192.168.1.1 dev eth0
Warning: Executing wildcard deletion to stay compatible with old scripts.
Explicitly specify the prefix length (192.168.1.1/32) to avoid this warning.
This special behaviour is likely to disappear in further releases,fix your scripts!
[root@www ~]#
[root@www ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d9:cc:36 brd ff:ff:ff:ff:ff:ff
inet 172.16.249.253/16 brd 172.16.255.255 scope global eth0
經過查看IP地址表,就能很好的發現。已經被刪除了,至於路由刪除其實也ip地址刪除相似。其實ip命令還有不少選項參數,這裏只顯示了一部分,其餘能夠經過man命令查看其使用狀況。
網絡屬性配置之查看命令ss
接下來講說網絡狀態查看工具,其實工具也有幾個。如netstat和ss命令。其實這另個命名的使用方法很接近。Netstat只早先用的命令,ss後起之秀。接下我主要說說ss的命令簡單使用方法。
先來對ss - another utility to investigate sockets命令解釋下。翻譯成中文的意思是
另外設備控制顯示工具。
格式:ss [option]...[FILTER]
選項:
-t TCP
-u UDP
-a ALL
-l LISTEN
-n 數字格式
-p 全部進程PID
-m 內存
下面是ss一些經常使用格式
ss -t -a
Display all TCP sockets.
顯示全部的tcp套接字信息
ss -u -a
Display all UDP sockets.
顯示全部的UDP套接字信息
ss -o state established ’( dport = :ssh or sport = :ssh )’
Display all established ssh connections.
顯示全部的鏈接到ssh源端口或者目的端套接字信息
接下來對上面簡單說明的進行演示:
[root@www etc]# ss -tan
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*
LISTEN 0 52 172.16.249.253:22 172.16.250.168:52871
LISTEN 0 0 172.16.249.253:22 172.16.250.168:52713
對於ss的用法其實和netstat很想死,二者掌握一個便可。
網絡屬性配置之配置文件
就我的而言,其實網絡屬性的配置很簡單。可是仍是對其裏面的參數作簡單的說明介紹。網絡配置文件的所在位置以下:
[root@www network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@www network-scripts]# ll ifcfg-eth0
-rw-r--r--. 3 root root 174 Aug 15 18:31 ifcfg-eth0
在centOS6上,網絡屬性的配置文件是ifcfg-eth0,可是在centOS7上,文件名不同。這裏就不過多介紹。接下來對其裏面的配置進行簡單說明:
[root@www network-scripts]# vim ifcfg-eth0
DEVICE=eth0——設備名稱
BOOTPROTO=dhcp——網卡以dhcp協議的方式獲取IP,有三種選擇{static|none|dhcp}
HWADDR=00:0c:29:d9:cc:36——網卡的物理地址
NM_CONTROLLED=yes——NM是NetworkManager的簡寫;此網卡是否接受NM控制;
ONBOOT=yes——開機是否啓動網卡服務
TYPE=Ethernet——網絡類型
UUID="c6c05d52-767a-47cc-9e5d-59a8e4cd8b7c"——網卡的ID號
IPV6INIT=no——是否開啓ipv6的功能
USERCTL=no——普通用戶是否能夠控制;
PEERDNS=yes——是否容許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
除此以外,如何bootproto採起的是none或者static的時候,配置文件中還會有一些其餘的選項。以下
IPADDR=192.168.10.10——手動配置的ip地址
NETMASK=255.255.255.0——ip地址的子網掩碼
GATEWAY=192.168.10.1——默認網關
DNS1=202.106.0.20——第一DNS:
DNS2=8.8.8.8——備用DNS
若是在網絡屬性的配置文件裏設置了DNS,那麼在/etc/resolv.conf就不會生效。由於它的優先級沒有網卡的高
[root@www network-scripts]# ll /etc/resolv.conf
-rw-r--r-- 1 root root 103 Aug 25 15:57 /etc/resolv.conf
既然網卡的IP地址配置解釋了,順帶把路由的配置文件也簡單的提下。默認狀況下,centos6上是沒有提供路由的配置文件,須要本身去建立。/etc/sysconfig/network-scripts/route-IFACE
兩種風格:
(1) TARGET via GW
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
[root@www ~]# ip route show
192.168.0.0/24 via 172.16.0.1 dev eth0 proto static