Linux網絡屬性的管理服務器
網絡屬性大體包括IP地址的配置,mask(子網掩碼),路由(也就是默認網關)的配置,DNS服務器的配置等。 網絡
配置方式有:ssh
靜態指定:
socket
(1)使用命令ifcfg家族的命令:ifconfig,route,netstat
tcp
(2)ip家族的命令: ip object{link,addr,route},ss,tc等ide
(3)編輯配置文件,直接編輯不是很好看懂,系統就本身提供了工具來對配置文件進行工具
編輯ui
CentOS6下使用system-config-network-tui或者setup,而後會出現一個圖形文spa
本界面,而後按提示就能夠進行設置了
3d
CentOS7中使用nmcli, nmtui,而後會出現一個圖形文本界面,而後按提示就
能夠進行設置了
前兩種方式的配置能夠當即生效,可是不能永久保存一旦重啓就會失效;只有編輯配
置文件這個方法才能永久有效
動態分配:使用DHCP協議
(1)ipcfg家族的命令 (演示是在CentOS6下進行的)
ifconfig命令
(a)ifconfig [interface]
# ifconfig -a 顯示多有接口的信息
# ifconfig IFACE [up|down] 顯示指明的接口的信息
ifconfig 直接回車是顯示主機全部處於活動接口的信息
顯示指定的接口信息
(b)ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up|down] 配置ip地址,若是接口禁用的話,後面跟上up或down可直接啓用關閉接口(CentOS6,7可以使用,其餘版本不肯定,能不能用)
例:ifconfig eth0 172.16.108.108/16
# ifconfig IFACE IP netmask MASK
例:ifconfig eth0 172.16.108.108 netmask 255.255.0.0
注意:設置之後當即生效,但不會永久有效;IFACE表示接口名
啓用混雜模式:[-]promisc,還有其餘選項,若是用到使用man進行查看
更改IP地址
關閉和開啓接口
route命令:路由管理的命令
route -n :查看本機路由表
route add :添加路由表
命令格式:route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] IFACE]
route del:刪除路由表
命令格式:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] IFACE]
查看,添加
添加,刪除
"[]"內的參數能夠省略
還有一個經常使用的路由叫默認路由,就是目的ip地址爲0.0.0.0 掩碼也爲0.0.0.0 指明網關就能夠了
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
或者 route add default gw 172.16.0.1
netstat命令:是網絡狀態查看命令,能夠顯示網絡鏈接,路由表,接口信息等
顯示網絡鏈接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp協議相關
-u: udp協議相關
-w: raw socket相關
-l: 處於監聽狀態
-a: 全部狀態
-n: 以數字顯示IP和端口;
-e:擴展格式
-p: 顯示相關進程及PID
經常使用組合: -tan, -uan, -tnl, -unl
查看tcp相關的信息
顯示擴展信息
顯示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 顯示內核路由表
-n: 數字格式
顯示接口統計數據:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i 表明全部接口
# netstat -I IFACE 指定一個接口,但I後面不能有空格直接跟接口名
DNS服務器的指定,在/etc/resolv.conf中添加就能夠了
格式:nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
DNS的做用,是實現域名與IP地址之間轉換的
正解:FQDN-->IP
# dig -t A FQDN
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
(2)ip命令:
主要做用,顯示或配置 路由、設備、策略路由等
ip命令的使用格式:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link - network device configuration 對設備的管理
set dev IFACE {up|down} 可設置屬性,up and down:激活或禁用指定接口;
show
[dev IFACE]:指定接口
[up]:僅顯示處於激活狀態的接口
ip address - protocol address management
ip addr { add | del } IFADDR dev STRING 添加或刪除ip地址
[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明做用域,通常默認,默認爲global
global: 全局可用;link: 僅連接可用;host: 本機可用;
[broadcast ADDRESS]:指明廣播地址
ip address show - look at protocol addresses 查看地址
[dev DEVICE]
[label PATTERN]
[primary(主地址) and secondary(輔助地址)]
ip address flush - flush protocol addresses 清空地址
使用格式同show
ip addr add 172.16.100.123/16 dev eth0 是添加一個ip地址,不刪除原有ip地址
添加地址時,還能夠指定標籤;刪除這個地址時也要指明標籤
ip route - routing table management
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:目的網絡,或目的IP
主機路由:IP 要麼不加掩碼,要加了就是/32即255.255.255.255
網絡路由:NETWORK/MASK
添加默認路由(網關):ip route add defalt via GW dev IFACE
ip route delete
刪除路由:ip route del TARGET
ip route show 查看路由信息
ip route flush 清空路由表
[dev IFACE]
[via PREFIX]
ss命令:網絡狀態的命令,與netstat命令同樣,使用格式也是相似的,但當鏈接的主機多的狀況下使用ss查看效率更高
格式:ss [OPTION]... [FILTER]
選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的鏈接
-a: 全部
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ] 能夠指明格式查看
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
(3)編輯配置文件
IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE,默認不存在,須要手動建立route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件應用到的設備;
HWADDR:對應的設備的MAC地址;
BOOTPROTO:激活此設備時使用的地址配置協議,經常使用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議爲「no」;
ONBOOT:在系統引導時是否激活此設備;
TYPE:接口類型;常見有的Ethernet, Bridge;
UUID:設備的唯一標識;
IPADDR:指明IP地址;
NETMASK:子網掩碼;
GATEWAY: 默認網關;
DNS1:第一個DNS服務器指向;
DNS2:第二個DNS服務器指向;
USERCTL:普通用戶是否可控制此設備;
PEERDNS:若是BOOTPROTO的值爲「dhcp」,是否容許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;
/etc/sysconfig/network-scripts/ifcfg-eth0 原有的信息
手動編輯後
修改完,遠程鏈接會中斷,而後進入虛擬機中,使用service network reastart重啓網絡服務後就會生效
查看下DNS的配置文件,會發現咱們修改的生效了
/etc/sysconfig/network-scripts/route-IFACE
兩種風格:
(1) TARGET via GW
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
在/etc/sysconfig/network-scripts這個目錄下,建立並編輯一個名爲route-eth0
而後保存退出,使用route -n查看發現也沒有生效,須要重啓下網絡服務就能夠生效了
配置文件能夠寫成下面那種形式,(在遠程鏈接下,修改很容易掉線,建議在虛擬機下配置)
從新啓動網絡服務,就能夠上生效了
給網卡配置多地址:
ifconfig:
ifconfig IFACE_ALIAS
ip
ip addr add
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
IFACE_ALIAS:網卡別名
使用ifconfig爲一個網卡設置所個地址,
不會永久有效,要想永久有效,須要編輯配置文件
也可使用命令system-config-network-tui或者setup命令
system-config-network-tui
顯示出這樣的界面,而後根據提示就能夠修改或者建立網絡配置
setup
而後選擇Network configuration,進入就是system-config-network-tui命令進入的界面了
CentOS7上的網絡配置工具處了ifcfg,ip 還有nmcli命令,CentOS7中的圖形配置tui工具使用nmtui命令,
根據提示就能夠配置網絡
CentOS7下的網絡設備的命名不一樣,修改下/etc/default/grub 在裏面GRUB_CMDLINE_LINUX這一行里加入net.ifnames=0;而後使用grub2-mkconfig -o /etc/grub2.cfg而後重啓系統就能夠了,設備名成爲eth0了
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
管理設備的相似於ip的link
nmcli device show eth0顯示eth0的信息,裏面的參數要使用到
使用nmcli device help查看就能夠了,
connection - start, stop, and manage network connections
ip地址的添加等,相似於ip的addr
顯示設備的信息,
查看eth0網絡設備的信息
connection可簡寫爲c
修改IP地址等屬性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
'+'表示增長一個,'-'表示刪除,不帶表示替換原來的配置
ipv4.addresses 修改地址
ipv4.gateway 修改網關
ipv4.dns1 修改DNS
ipv4.method IP地址的配置方式(dhcp,manual手動)
使用命令修改網絡屬性時會出錯,這是咱們讓網絡設備從新使用名稱時,沒有修改/etc/sysconfig/network-scripts/目錄下的ifcfg-eno16777736,須要重命名爲ifcfg-eth0而後進行修改爲下圖的內容,而後重啓網絡服務就好了
CentOS7下使用這個命令重啓網絡服務systemctl restart network,(若是你裏面配置的地址和你遠程鏈接的地址不一樣,遠程鏈接會斷掉)
使用這個nmcli connection modify eth0 +ipv4.addresses 172.16.100.12/16命令增長地址
這個時候還不會生效,須要把接口斷開再鏈接就能夠了
斷開重啓,使用nmcli con down eth0;nmcli con up eth0
添加網關和DNS