Linux之網絡管理
在學習linux的過程中,Linux網絡的管理和配置中是很重要的,幾乎學習的后期都離不開網絡的概念和配置,如集群中的使用,學習好Linux網絡至關重要。
Linux網絡IP地址有兩種配置方式:靜態指定和動態分配
動態分配就是利用DHCP服務器,動態的給linux主機分配IP地址。靜態指定可以通過命令配置臨時的IP和相應的NETMASK,GATEWAY,DNS等,也可以通過修改配置文件做相應的配置。
一.通過命令暫時配置linux網絡
CentOS6網絡接口命名方式:
以太網:eth[0,1,2,…]
1.ifconfig命令:
ifconfig – configure a network interface
ifconfig [interface]
ifconfig:顯示當前系統上激活的網絡接口信息
ifconfig interface:顯示指定的網絡接口信息
ifconfg -a:顯示系統上的網絡接口信息
ifconfig interface up|down:啟動或關閉一個網絡接口
ifconfig interface [aftype] options | address …
ifconfig interface IP/mask [up]
ifconfig interface IP netmask MAKE
這些修改只是暫時的,重啟系統之后就會失效。
2.route命令:
route – show / manipulate the IP routing table
route:顯示和操作IP路由表
a.查看路由:route -n
b.添加路由:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
c.刪除路由:route del
route del [-net|-host] target [gw Gw] [net-mask Nm] [[dev] If]
eg:route del -host 192.168.1.8
或者:route del -host 192.168.1.8 gw 172.16.0.1 dev eth1
routedel -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
d.將linux主機接入到網絡中,需要用到IP/MASK、路由設備和DNS服務器。而Linux系統中的DNS服務器指定是在一個文件中:
/etc/resolv.conf
nameserver NDS_SERVERIP
nameserver NDS_SERVERIP
nameserver NDS_SERVERIP
可以指定多個DNS服務器的IP。查看DNS服務器的域名解析命令有:dig和host
正向解析:FQDN:完全合格域名–>IP
dig -t A FQDN
host -t A FQDN
反向解析:IP–>FQDN
dit -x IP
host -t PTR IP
3.netstat命令:
netstat – Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
顯示網絡連接上的一些選項和參數:
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相關(raw socket原始套接字,和其他套接字不同之處在于它工作在網絡層和數據層,而其他套接字工作在傳輸層,只能進行傳輸層數據操作。常使用raw socket 進行數據監聽)
-l:處于監聽狀態
-a:所有連接狀態
-n:以數字顯示IP和端口
-e:擴展格式
-p:顯示相關進行的PID:
顯示路由表:
netstat {–route|-r} [–verbose|-v] [–numeric|-n] [–continuous|-c]
-r:顯示內核路由
-n:數字格式顯示
-c:一直循環顯示路由表
顯示接口信息:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n] [–continuous|-c]
-i:顯示所有接口的信息
-Iiface:顯示指定接口的信息
4.ip命令:
ip – show / manipulate routing, devices, policy routing and tunnels
ip [OPTIONS] OBJECT {COMMAND|help}
學習中常用到的OBJECT有:link,addr,route
(1)ip link :
ip link set DEVICE {up|down|arp{on|off}
ip link set DEVICE | dev DEVICE up|down :表示啟用戶關閉此接口設備。
ip link show [DEVICE|dev DEVICE]:顯示所有網絡接口設備或顯示指定接口設備。
(2)ip addr:
ip addr {add|del}IFADDR dev STRING:添加和刪除網卡設備
[label LABEL]:添加地址時指明網卡別名
[scope {global|link|host}]:指明網卡ip作用域
global:全局可用
link:僅連接可用
host:本機可用
[broadcast ADDRESS]:指明廣播地址:
ip addr {show|flush} [devSTRING] [scope COPE-ID ]
(3)ip route:
添加路由:ip route add TARGET via GW dev IFACE src
添加主機路由:
ip route add IP via GW dev IFACE
添加網絡路由:
ip route add NEWORK/MASK via GW dev IFACE
eg:
刪除路由:
ip route del TARGET via GW del IFACE
顯示路由:
ip route show
清空路由:
ip route flush
[dev IFACE]
[via PREFIX]
5.ss命令:
ss命令與netstat的功能相似,但是比netstat功能更強大
ss – another utility to investigate sockets
ss [options] [ FILTER ]
常用選項:
-a:display all sockets:顯示所有
-t:tcp協議相關
-u:udp協議相關
-w:裸套接字相關
-x:Unix socket相關
-l:listen狀態的連接
-n:以數字格式顯示
-p:顯示相關的程序和PID
-e:擴展內容
-m:內存用量
-o:計時器信息
常用組合選項:
-atn -tanl -tanlp -uan等
FILTER := [ state TCP_STATE ] [EXPRESSION]
Tcp常見的狀態:
tcp finite state machine:
listen:監聽
established:已建立的連接
fin_wait_1
fin_wait_2
syn_sent
syn_recv
closed
[EXPRESSION]:
dport =
sport =
二.修改配置文件配置linux網絡
Linux 中的網路配置要想永久有效,需要修改相應的配置文件。其中IP,MASK,GW,DNS相關的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE,路由相關的配置文件為:/etc/sysconfig/network-scripts/route-IFACE 這個文件默認是不存在的,要手動添加。先查看配置文件:
1.網絡地址配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE中的各個參數的含義:
DEVICE:此配置文件應用到的設備
HWADDR:對應設備的MAC地址
BOOTPROTO:激活此設備時使用的地址配置協議,常用的有:dhcp,static,none,bootp
NM_CONTROLLED:NM是NetworkManager的縮寫,表示此網卡是否接受NM的控制,CentOS建議關閉
ONBOOT:系統在引導時是否激活此設備;
TYPE:接口類型:常見的有:Ethernet,Bridge
UUID:設備的唯一標識:
當BOOTPROTO的值為static時,要指定設備的IP,NETMASK,GATEWAY和DNS,分別指設備的IP地址,子網掩碼,默認網關,DNS服務指向
USERCTL:普通用戶是否可控制此設備
PEERDNS:如果BOOTPROTO的值為dhcp ,是否允許dhcp server分配的DNS服務指向信息直接覆蓋至/etc/resolv.conf文件中。
2.路由配置文件:
/etc/sysconfig/network-scripts/route-IFACE,這編寫路由規則時有兩種方法:
(1)TARGET via GW:如:
192.168.1.6 via 172.16.0.1
(2)每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
如:
ADDRESS0=192.168.1.6
NETMASK0=255.255.255.0
GATEWAY0=172.16.0.1
3.通過命令和配置文件進行配置網絡外還可以通過一個工具進行配置就是tui(text user interface)
system-config-network-tui即可打開此工具,或者使用setup也可打開。此種方法配置的網絡必須重啟網絡服務方能生效。
4.配置當前主機的主機名:
配置主機名的方法也有兩種:通過命令配置,臨時有效。修改配置進行配置,永久有效。
(1)使用hostname命令:
hostnam [HISTNAME]
hostname:查看當前系統的主機名
hostname HOSTNAME:修改主機名為HOSTNAME
(2)修改配置文件:/etc/syconfig/network
HOSTNAME=NAME
5.給網絡接口重命名:
網絡接口識別并命名相關的udev配置文件為:
/etc/udev/rules.d/70-presistent-net.roules
在此文件中只需修改NAME項,修改成自己指定接口名。如我們把NAME=”eth1” 修改為eth0 把NAME=”eth2” 修改為eth1
再在網絡配置文件中/etc/sysconfig/network-scripts/ifcfg-IFACE分別進行修改DEVICE=eth0 和DEVICE=eth1
三.CentOS 7 的網絡屬性配置:
從CentOS 7開始網絡設備的命名方式不再遵循傳統的命名方式(eth[0,1,2..]),而接口名稱被自動基于固件,拓撲機構和位置信息來確定?,F在即使添加移除網絡設備,接口名稱仍然保持固定,而無需重新枚舉,和壞掉的硬件可以無縫替換。
CentOS 7網絡設備名稱的組成格式:
en:Ethernet
wl:wlan
ww:wwan
名稱類型:
o<index>:集成設備的設備索引號命名:
s<slot>:擴展槽的索引號
x<MAC>:基于MAC地址命名
p<bus>s<slot>:enp2s1
修改網卡名稱:
1.編輯網絡配置文件:/etc/sysconfig/network-scripts/ifcfg-eno16777736將NAME項修改為eth0.
2.重命名改配置文件:
# mv ifcfg-eno16777736 ifcfg-eth0
3.編輯/etc/default/grub/配置文件:加入“net.ifname=0 bisodevname=o”到GRUB_CMDLINE_LINUX。如:
4.運行grub2-mkconfig -o /boot/grub2/grub.cfg 重新生成GRUB配置并更新內核參數
5.重啟系統
CentOS 7 網絡地址配置工具:nmcli
CentOS 7 中的默認網絡服務由NetworkManager提供,可以用命令工具nmcli來控制NetworkManager
nmcli – command?line tool for controlling NetworkManager
命令格式:
nmcli [OPTIONS]OBJECT{COMMAND|help}
OBJECT
g[eneral] NetworkManager's general status and operations
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
1.general:
COMMAND := {status|hostname}
nmcli general status:顯示NM的所有狀態
nmcli general hostname:顯示系統當前的主機名
2.device:
device – show and manage network interfaces
COMMAND := {status|show|delete}
nmcli device status:顯示當前系統網絡設備處于的狀態
nmcli device show [ifname]:顯示系統上的網絡設備詳細信息或指定網卡信息
nmcli device delete:刪除系統上的一個設備。此設備只能是工作在系統上的軟件設備,如bonds,bridges,teams
3.connection:
connection – start, stop, and manage network connections
COMMAND := {show|up|down|add|edit|modify|delete|reloa|load}
nmcli connection show :顯示指定網絡接口的詳細信息
nmcli connection up:激活一個網絡接口
nmcli connection down:關閉一個網絡接口
modify修改IP地址等屬性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
pv4.addresses
pv4.gateway
ipv4.dns1
ipv4.method
添加一個dns服務器指向:
# nmcli connection modify eth0 + ipv4.dns 8.8.8.8
給網絡設備添加一個ip地址:
# nmcli connection modify eth0 +ipv4.address 172.16.99.6
移除一個網絡設備上的ip地址:
# nmcli connection modify eth0 -ipv4.address 172.16.99.6
CentOS 7 的網絡配置也可以工具nmtiu:他顯示的是一個圖形化操作界面。
CentOS7 配置主機名:hostnamectl
hostnamectl status:顯示當前系統的主機名以及相應信息
hostnamctl set-hostname:設置主機名
原創文章,作者:dengjian,如若轉載,請注明出處:http://www.www58058.com/43296
文章對網絡管理相關命令總結的很詳細,但是缺少了實操部分,同時建議對top命令顯示結果中的意義進行分析。