1. 程式人生 > 實用技巧 >Linux網路屬性配置管理及其相關命令

Linux網路屬性配置管理及其相關命令

TCP/IP協議:

網路訪問層(Network Access Layer)在TCP/IP參考模型中並沒有詳細描述,只是指出主機必須使用某種協議與網路相連。

網際網路層(Internet Layer)是整個體系結構的關鍵部分,其功能是使主機可以把分組發往任何網路,並使分組獨立地傳向目標。這些分組可能經由不同的網路,到達的順序和傳送的順序也可能不同。高層如果需要順序收發,那麼就必須自行處理對分組的排序。網際網路層使用因特網協議(IP,Internet Protocol)。TCP/IP參考模型的網際網路層和OSI參考模型的網路層在功能上非常相似。

傳輸層(Tramsport Layer)使源端和目的端機器上的對等實體可以進行會話。在這一層定義了兩個端到端的協議:傳輸控制協議(TCP,Transmission Control Protocol)和使用者資料報協議(UDP,User Datagram Protocol)。TCP是面向連線的協議,它提供可靠的報文傳輸和對上層應用的連線服務。為此,除了基本的資料傳輸外,它還有可靠性保證、流量控制、多路複用、優先權和安全性控制等功能。UDP是面向無連線的不可靠傳輸的協議,主要用於不需要TCP的排序和流量控制等功能的應用程式。

應用層(Application Layer)包含所有的高層協議,包括:虛擬終端協議(TELNET,TELecommunications NETwork)、檔案傳輸協議(FTP,File Transfer Protocol)、電子郵件傳輸協議(SMTP,Simple Mail Transfer Protocol)、域名服務(DNS,Domain Name Service)、網上新聞傳輸協議(NNTP,Net News Transfer Protocol)和超文字傳送協議(HTTP,HyperText Transfer Protocol)等。TELNET允許一臺機器上的使用者登入到遠端機器上,並進行工作;FTP提供有效地將檔案從一臺機器上移到另一臺機器上的方法;SMTP用於電子郵件的收發;DNS用於把主機名對映到網路地址;NNTP用於新聞的釋出、檢索和獲取;HTTP用於在WWW上獲取主頁。

wKioL1XlnXTgipPjAAN9VAtESbk388.jpg

傳輸層協議:

tcp, udp, sctp


網路層協議:

ip

IPv4 地址分類:

點分十進位制:0-255

0000 0000 - 1111 1111

0.0.0.0-255.255.255.255

A類:

0 000 0000 - 0 111 1111: 1-127

網路數:126, 127

每個網路中的主機數:2^24-2

預設子網掩碼:255.0.0.0

私網地址:10.0.0.0/8

B類:

10 00 0000 - 10 11 1111:128-191

網路數:2^14

每個網路中的主機數:2^16-2

預設子網掩碼:255.255.0.0

私網地址:172.16.0.0/16-172.31.0.0/16

C類:

110 0 0000 - 110 1 1111: 192-223

網路數:2^21

每個網路中的主機數:2^8-2

預設子網掩碼:255.255.255.0

私網地址:192.168.0.0/24-192.168.255.0/24

D類:組播

1110 0000 - 1110 1111: 224-239

E類:

240-255


子網掩碼:

172.16.100.100/255.255.0.0, 172.17.1.1


跨網路通訊:路由(一般按照最少路徑或最小網路匹配)

主機路由:從一臺主機到另一主機經過的路由

網路路由:從主機發出的資料包通過該路由連線到網路

預設路由:從主機發出的所有資料包都經該路由發出

wKiom1XsQX7yFxsmAADhky-vWhs155.jpg

將Linux主機接入到網路中:wKioL1XsRVLSkwy2AAJrttpydTQ861.jpg

IP/mask

路由:預設閘道器

DNS伺服器

主DNS伺服器

次DNS伺服器

第三DNS伺服器







wKiom1Xupvqi_ZueAADigJONuyc462.jpg

配置方式:

靜態指定:

ifcfg: ifconfig, route, netstat

ip: object {link, addr, route}, ss, tc

配置檔案

system-config-network-tui (setup)

CentOS 7:

nmcli, nmtui(tui:test user interface)

動態分配:

DHCP: Dynamic Host Configuration Protocol


配置網路介面:

介面命名方式:

CentOS 6:根據MAC地址識別

乙太網:eth[0,1,2,...]

ppp:ppp[0,1,2,...](撥號點對點網路)


ifconfig命令

ifconfig [interface]

# ifconfig IFACE [up|down] [啟用|禁用]指定介面

如: ifconfig eth0 顯示指定網路介面資訊

wKiom1XlqayjhTtGAAIasBwhIgE038.jpg

wKioL1Xlq9DQ9LH_AALzEcDU2Nk813.jpg

wKioL1XsTgLA3izAAAFvpSiL6XE891.jpg

ifconfig interface [aftype] options | address ...

# ifconfig IFACE IP/mask [up]

[[email protected] ~]# ifconfig eth0 172.16.33.16/16 給指定介面配置IP/掩碼

wKiom1Xtf6bC1dVjAAJW2NpPtt0905.jpg

# ifconfig IFACE IP netmask MASK

[[email protected] ~]# ifconfig eth0 172.16.33.13 netmask 255.255.0.0

wKiom1XtgB3xEhV9AAIC-R751wA505.jpg

注意:立即生效,重啟失效;

[禁用]啟用混雜模式:[-]promisc (一般用於網路監控)

混雜模式表示即便目標MAC不是自己也會接收

route命令

路由管理命令

檢視:route -n

wKiom1Xlrr7TjXZnAAFtfs58iHY867.jpg

新增:route add

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

網路|主機 掩碼 閘道器

目標:192.168.1.3 閘道器:172.16.0.1

~]# route add -host 192.168.1.3[/32] gw 172.16.0.1

如果目標是主機則掩碼為32位,如下圖

wKioL1XsU3CjPeBZAAE8l8LlUv0811.jpg

目標:192.168.0.0 閘道器:172.16.0.1

~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0

~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

wKioL1XsVFGRfAr8AAFKknnsM5U605.jpg

預設路由,閘道器:172.16.0.1

~]# 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

wKiom1XsUzfz80QzAAE2Pp5CVSI861.jpg

刪除:route del

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]


目標:192.168.1.3 閘道器:172.16.0.1

wKioL1XsVbOivWXGAAEG4sa53X0388.jpg

目標:192.168.0.0 閘道器:172.16.0.1

~]# route del -net 192.168.0.0 netmask 255.255.255.0

wKiom1XsVPmwrwhLAADjr7nqz98151.jpg

DNS伺服器指定

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

wKiom1XltKuhoIuyAADixrbrkDk422.jpg


正向解析:FQDN-->IP

# dig -t A FQDN(完全合格域名)

# host -t A FQDN

wKiom1XltX-jEPLMAAMNsKB96fI790.jpg

反解:IP-->FQDN

# dig -x IP

# host -t PTR IP

FQDN: www.magedu.com.

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相關 裸套接字相關

-l: 處於監聽狀態

-a: 所有狀態

-n: 以數字顯示IP和埠;

-e:擴充套件格式

-p: 顯示相關程序及PID


常用組合:

-tan, -uan, -tnl, -unl

wKioL1XlvfrAdR_ZAANPcB5BDzc179.jpg

wKiom1XlvJrSTJXAAAF5nR0RN3Q641.jpg

wKiom1XlvU7DvGTmAAHgr2YhLQE589.jpgwKiom1XlvejwIFX8AAICSp47PbU722.jpg

顯示路由表:

netstat {--route|-r} [--numeric|-n]

-r: 顯示核心路由表

-n: 數字格式

wKiom1XlvvyTOnd9AAI9ikTqJss313.jpg

顯示介面統計資料:

netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]


# netstat -i

# netstat -I IFACE

wKiom1XlwFjwNc1eAAE9AvXtVdQ753.jpg

配置Linux網路屬性:ip命令


ip命令:

ip - show / manipulate routing, devices, policy routing and tunnels

顯示或者配置路由,裝置,策略路由和隧道

ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT := { link | addr | route }

link OBJECT:

ip link - network device configuration 網路裝置配置

set:

dev IFACE

可設定屬性:

up and down:啟用或禁用指定介面;

[[email protected] ~]#ip link set eth0 down

[[email protected] ~]#ip link set eth0 up

show:

[dev IFACE]:指定介面

[up]:僅顯示處於啟用狀態的介面

wKioL1XtlsGhgDjJAAG5wfBtugw188.jpg

wKiom1XtlVXzpOvBAAFxzkUIvKc778.jpg

ip address - protocol address management

ip addr { add | del } IFADDR dev STRING

[label LABEL]:新增地址時指明網絡卡別名

[scope {global|link|host}]:指明作用域

global: 全域性可用;

link: 僅連結可用;

host: 本機可用;

[broadcast ADDRESS]:指明廣播地址

wKioL1Xtne_xxaFdAAE1pqTaC1c964.jpg

[[email protected] ~]# ip addr del 172.16.33.100/16 dev eth0

wKioL1XtoDuQgJ32AAJe71MVblU955.jpg

[[email protected] ~]# ip addr flush dev eth0 label 'eth0:0'

ip address show - look at protocol addresses

[dev DEVICE]

[label PATTERN]

[primary and secondary]

wKiom1Xtmi3TFG46AALM3mv3iRg753.jpg

ip address flush - flush protocol addresses

使用格式同show

ip route - routing table management

ip route add

新增路由:ip route add TARGET via GW dev IFACE src SOURCE_IP

TARGET:

主機路由:IP(不可指掩碼)

網路路由:NETWORK/MASK

新增閘道器:ip route add defalt via GW dev IFACE

wKiom1Xto0rx4X9nAAC36K30gP8941.jpg

[[email protected] ~]# ip route del 192.168.0.0/24 via 172.16.0.1[ dev eth0]

[[email protected] ~]# ip route add default via 172.16.0.1 #新增預設閘道器

ip route delete

刪除路由:ip route del TARGET

[[email protected] ~]# ip route del default #刪除預設閘道器

ip route show

ip route flush

[dev IFACE] 與某介面相關

[via PREFIX] 與指定閘道器相關


ss命令:網路狀態檢視工具

格式:ss [OPTION]... [FILTER]

選項:

-t: tcp協議相關

-u: udp協議相關

-w: 裸套接字相關

-x:unix sock相關 unix套接字相關,一種基於本機記憶體的快速資料交換

-l: listen狀態的連線

-a: 所有

-n: 數字格式

-p: 相關的程式及PID

-e: 擴充套件的資訊

-m:記憶體用量

-o:計時器資訊

FILTER := [ state TCP-STATE ] [ EXPRESSION ]

wKioL1XtqF6TUfDQAAHI6T3SpwM842.jpg

TCP的常見狀態:

tcp finite state machine:

LISTEN: 監聽

ESTABLISHED:已建立的連線

FIN_WAIT_1

FIN_WAIT_2

SYN_SENT

SYN_RECV

CLOSED

wKiom1Xtq4fiNNhlAAB7ScpnGy4186.jpg

EXPRESSION:

dport =

sport =

示例:’( dport = :ssh or sport = :ssh )’


常用組合:

-tan, -tanl, -tanlp, -uan


修改配置檔案:

IP、MASK、GW、DNS相關配置檔案:/etc/sysconfig/network-scripts/ifcfg-IFACE

路由相關的配置檔案:/etc/sysconfig/network-scripts/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檔案中;

wKioL1XlqYjyD52tAAEp9k1J-YE049.jpg

[[email protected] ~]# service network restart #立即生效

/etc/sysconfig/network-scripts/route-IFACE

兩種風格:(不能混合使用)

(1) TARGET via GW

(2) 每三行定義一條路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

wKioL1XusWjSaVPVAALfZ_ShAhI617.jpg

wKiom1XusdiDbsOeAAITjHLq65A851.jpg

給網絡卡配置多地址:

ifconfig:

ifconfig IFACE_ALIAS(網絡卡別名)

[[email protected] ~]# ifconfig eth0:0 192.168.0.20/24 up

ip

ip addr add

配置檔案:

ifcfg-IFACE_ALIAS

DEVICE=IFACE_ALIAS

注意:閘道器別名不能使用dhcp協議引導;

wKioL1XutvuA6t8kAACgCuZzL28662.jpg

Linux網路屬性配置的tui(text user interface):

[[email protected] network-scripts]# system-config-network-tui

也可以使用setup找到;

注意:記得重啟網路服務方能生效;


配置當前主機的主機名:

hostname [HOSTNAME]

/etc/sysconfig/network

HOSTNAME=

[[email protected] network-scripts]# hostname www.mageedu.com

wKiom1Xut0yC_0hGAACgjOSKn3w557.jpg

網路介面識別並命名相關的udev配置檔案:

/etc/udev/rules.d/70-persistent-net.rules

立即生效需解除安裝網絡卡後重新裝載

解除安裝網絡卡驅動:

modprobe -r e1000

裝載網絡卡驅動:

modprobe e1000

wKioL1XuurajtAWWAAFvdddLzqI865.jpg

CentOS 7網路屬性配置


傳統命名:乙太網eth[0,1,2,...], wlan[0,1,2,...]


可預測功能

udev支援多種不同的命名方案:

Firmware, 拓撲結構


(1) 網絡卡命名機制

systemd對網路裝置的命名方式:

(a) 如果Firmware或BIOS為主機板上整合的裝置提供的索引資訊可用,且可預測則根據此索引進行命名,例如

eno1;

(b) 如果Firmware或BIOS為PCI-E擴充套件槽所提供的索引資訊可用,且可預測,則根據此索引進行命名,例如

ens1;

(c) 如果硬體介面的物理位置資訊可用,則根據此資訊進行命名,例如enp2s0;

(d) 如果使用者顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56;

(e) 上述均不可用時,則使用傳統命名機制;

上述命名機制中,有的需要biosdevname程式的參與;


(2) 名稱組成格式

en: ethernet

wl: wlan

ww: wwan


名稱型別:

o<index>: 整合裝置的裝置索引號;

s<slot>: 擴充套件槽的索引號;

x<MAC>: 基於MAC地址的命名;

p<bus>s<slot>: enp2s1


網絡卡裝置的命名過程:

第一步:

udev, 輔助工具程式/lib/udev/rename_device會根據/usr/lib/udev/rules.d/60-net.rules查

詢/etc/sysconfig/network-scripts/ifcfg-*檔案,根據MAC讀取device指向的名稱

第二步:

biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules

第三步:

通過檢測網路介面裝置,根據/usr/lib/udev/rules.d/75-net-description當中的裝置屬性資訊命名

ID_NET_NAME_ONBOARD, ID_NET_NAME_SLOT, ID_NET_NAME_PATH


迴歸傳統命名方式:

(1) 編輯/etc/default/grub配置檔案

GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"

wKioL1XuzZiCVwW5AADoS3j_rR8011.jpg

(2) 為grub2生成其配置檔案

[[email protected] ~]#grub2-mkconfig -o /etc/grub2.cfg

(3) 重啟系統


地址配置工具:nmcli

nmcli [ OPTIONS ] OBJECT { COMMAND | help }

device - show and manage network interfaces

connection - start, stop, and manage network connections

wKiom1Xu1oqxgfCrAAHdOYhDfa8814.jpg

如何修改IP地址等屬性:

#nmcli connection modify IFACE [+|-]setting.property value

setting.property:

ipv4.addresses

ipv4.gateway

ipv4.dns1

ipv4.method

manual

[[email protected] ~]#nmcli connection modify eth0 +ipv4.addresses 172.16.100.12/16

wKioL1Xu4KbzL5Q7AARGmsFPjf8580.jpgwKiom1Xu3rPAL2xWAALvWgnpjLI803.jpg

網路介面配置tui工具:nmtui


主機名稱配置工具:hostnamectl

status

set-hostname






轉載於:https://blog.51cto.com/chaochao3/1692896