Linux系統網絡管理

本機索引:

一、基本網絡配置

二、主機、網卡名稱管理

三、網卡別名

四、Bonding技術

五、實現網絡組

六、Linux網絡管理常用命令

 

timg_image&quality=80&size=b9999_10000&sec=1525350267731&di=3075ec3ab062503ee92e

一、基本網絡配置:

將Linux主機接入網絡,需要配置網絡相關設置

一般包括以下內容:

主機名

IP/netmask

路由:默認網關

DNS服務器:

主DNS服務器

次DNS服務器

 

網絡配置文件:

IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/networkscripts/ifcfg-IFACE

DEVICE=eth0 ????????????????? 針對網卡名稱(必須有)

ONTBOOT=yes???????????????? yes表示開機自動啟動網卡,默認yes

BOOTPROTO=dhcp???????? 自動獲取,生產中一般改為手動配置static|none(必須有)

IPADDR=172.20.0.6??????? 設置IP(必須有)

NETMASK=255.255.0.0? 傳統方式配置掩碼(必須有)

PREFIX=16?????? ???????? CIDR法設置掩碼(必須有)

DEFROUTE=yes ? ? ? ? ? ?是否將此配置的網關設為默認路由

GATEWAY=172.20.0.1??? 設置網關

DNS1=114.114.114.114 設置DNS1

DNS2=8.8.8.8????????? 設置DNS2

TYPE????????????????????????? 接口類型,常見有Ethernet,Bridge

UUID???????????????????????? 設備唯一表示

 

路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE

注意:需service network restart生效

兩種風格:

(1) TARGET via GW

如:10.0.0.0/8 via 172.16.0.1

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

? ? ? ? ?ADDRESS#=TARGET

???????? NETMASK#=mask

???????? GATEWAY#=GW

 

網絡配置方式:

靜態指定:

ifconfig,route,netstat

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

system-config-network-tui,setup ???? 圖形工具

直接修改配置文件

動態分配:

DHCP: Dynamic Host Configuration Protocol

 

二、主機、網卡名稱管理

CentOS6網卡名稱

接口命名方式:

以太網:eth[0,1,2…]

ppp:ppp[0,1,2…]

網絡接口識別并命名相關的udev配置文件:

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

查看網卡:

dmesg |grep –i eth

ethtool -i eth0

卸載網卡驅動:

modprobe -r e1000

rmmod e1000

裝載網卡驅動:

modprobe e1000

 

修改主機名:

hostname [NEWNAME] 臨時生效,重啟恢復

永久生效:

CentOS6:

修改/etc/sysconfig/network

CentOS7:

修改/etc/hostname

或:hostnamectl set-hostname [NEWNAME]

hostname [NEWNAME] 使配置文件生效

 

修改CentOS7網卡命名為傳統命名方式,實現自動化運維

(1) 編輯/etc/default/grub配置文件

GRUB_CMDLINE_LINUX=”rhgb quiet net.ifnames=0″

或:修改/boot/grub2/grub.cfg?? linux 16 行尾添加 net.ifnames=0

(2) 為grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

(3) 重啟系統

 

 

修改本地解析器:

/etc/hosts

本地主機名數據庫和IP地址的映像

對小型獨立網絡有用

通常,在使用DNS前檢查

一般建議在127.0.0.1的行尾加上本機的hostname

注:如果hostname發生更改,一定要記得同時更改/etc/hosts里的原添加內容

搭建網站也建議將網站地址與網頁名稱對應寫入到/etc/hosts文件中,避免解析出錯

 

設置DNS:

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

 

 

 

三、網卡別名

對虛擬環境有用,可將多個IP地址綁定到一個網卡

eth0:1、eth0:2、eth0:3

 

ifconfig命令:

ifconfig eth0:0 192.168.1.100/24 up

ifconfig eth0:0 down

ip命令:

ip addr add 172.16.1.2/16 dev eth0

ip addr add 172.16.1.1/16 dev eth0 label eth0:0

ip addr add 172.16.1.2/16 dev eth0 label eth0:0

ip addr del 172.16.1.1/16 dev eth0 label eth0:0

ip addr flush dev eth0 label eth0:0

 

為別名設備添加配置文件,永久生效

(1)service NetworkManager stop????? 關閉圖形界面網絡管理

(2)ifctg-ethX:xxx

(3)必須使用靜態IP配置

DEVICE=eth0:0

IPADDR=10.10.10.10

NETMASK=255.0.0.0

ONPARENT=yes

(4)最后重啟網絡服務

service network restart

 

四、網絡接口配置bonding

Bonding是將多個網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。直接給兩塊網卡

設置同一IP地址是不可以的。通過bonding,虛擬一塊網卡對外提供鏈接,物理網卡被修改為相同的MAC

地址

 

Bonding工作模式:

Mode 0 (balance-rr)

輪轉(Round-robin)策略:從頭到尾順序的在每個slave接口上發送數據包。提供負載均衡和容錯的能力

 

Mode 1 (active-backup)

活動-備份(主備)策略:只有一個slave被激活,當且僅當活動的slave接口失敗時才會激活其他slave。

為了避免交換機發生混亂此時綁定的MAC地址只有一個外部端口上可見

 

Mode 3 (broadcast)

廣播策略:在所有的slave接口上傳送所有的報文,提供容錯能力

 

查看bond0主備狀態:/proc/net/bonding/bond0

 

創建bonding設備的配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

BONDING_OPTS= “miimon=100 mode=0”

 

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

USERCTL=no

 

也可使用nmcli實現bonding

添加bonding接口

nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup

添加從屬接口

nmcli con add type bond-slave ifname ens7 master mybond0

nmcli con add type bond-slave ifname ens3 master mybond0

注:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構成,要啟動綁定,則必須

首先啟動從屬接口

nmcli con up bond-slave-eth0

nmcli con up bond-slave-eth1

啟動綁定

nmcli con up mybond0

 

 

取消bonding

1.卸載驅動模塊

lsmod??????????????????????? 顯示所有已加載的驅動模塊

lsmod | grep bond

ifconfig bond0 down????? 禁用網卡

modproble -r bonding

 

2.刪除和修改文件

rm -r ifcfg-bond0

vim ifcfg-eth{0,1}

service???? network restart?????? 重啟網絡服務

 

五、實現網絡組

代替bonding的一種技術

網絡組:將多個網卡聚合在一起的方法,從而實現冗錯和提高吞吐量

多種方式運行:

broadcast ? ? ? ? ? ? ? ? 廣播模式

roundrobin ? ? ? ? ? ? ? 輪播模式

activebackup ? ? ? ? ? 主備模式

loadbalance ? ? ? ? ? ? ?負載均衡模式

lacp (implements the 802.3ad Link Aggregation Control Protocol)

 

創建網絡組Network Teaming(RHCE)

nmcli con add type team con-name team0 ifname team0 config

‘{“runner”: {“name”: “loadbalance”}}’

nmcli con mod team0 ipv4.addresses 192.168.1.100/24

nmcli con mod team0 ipv4.method manual

nmcli connection show

nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0

nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0

nmcli con up team0

nmcli con up team0-eth1

nmcli con up team0-eth2

nmcli connection show

teamdctl team0 state

 

刪除網絡組:

第一種方法:刪除network-scripts下配置文件

第二種方法:nmcli connection delete team0 team0-eth1 team0-eth2

 

 

 

六、Linux網絡管理常用命令:

 

ifconfig 命令 ? ? ? ? ?配置網絡接口

-a?????????????????????? 查看所有接口信息

interface up|down 禁用|啟用接口

設置IP地址

ifconfig IFACE IP/netmask????? 支持兩種掩碼設置IP

IP netmask

注意:此命令執行將立即生效

 

route ?命令 ? ? ? ? ? ? ? ? ? ? ? 路由管理命令

-n?????????????????????? 查看路由表

添加路由:

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 gw 172.16.0.1 dev eth0

添加目標: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

添加默認路由,網關: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

刪除路由:

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

 

 

配置動態路由

通過首行進程獲取動態路由

安裝quagga包

支持多種路由協議:RIP(根據跳數)、OSPF(綜合帶寬、跳數等)和BGP

命令vtysh配置

 

 

netstat ? 命令 ? ? ? ? ? ? ? ? ? 查看網絡連接,路由表,接口統計等信息

option:

-t?????????????????????? tcp協議相關

-u?????????????????????? udp協議相關

-w????????????????????? raw socket相關

-l??????????????????????? 處于監聽狀態

-a?????????????????????? 所有狀態

-n?????????????????????? 以數字顯示所有IP和端口

-e?????????????????????? 擴展格式

-p?????????????????????? 顯示相關進程及PID

常用組合選項:

-nr???????????????????? 查看路由表

-nt???????????????????? 查看TCP進程

-ntu?????????????????? 查看TCP及UDP進程

-ntul?????????????????????????? 查看處于監聽狀態LISTEN的服務

-tul??????????????????? 端口程序不進行名稱解析顯示

-ntua???????????????????????? 查看所有狀態的服務

-ntuap?????????????????????? 查看哪個進程打開的此端口

-ntuape???????????????????? 擴展信息,包括使用用戶UID

統計端口數據

-i??????????????????????? 查看網卡收發包信息

-I=eth0????????????????????? 只顯示eth0網卡收發包信息等同于ifconfig -s eth0

 

 

 

ss 命令

格式:ss [option]…[FILTER]

用來代替netstat的新命令,netstat通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag

模塊通信獲取socket信息。

option:

-t?????????????????????? tcp協議相關

-u?????????????????????? udp協議相關

-w????????????????????? 裸套接字相關

-x?????????????????????? unix sock相關

-l??????????????????????? listen狀態的鏈接

-a?????????????????????? 所有鏈接

-n?????????????????????? 以數字格式顯示

-p?????????????????????? 相關的程序及PID

-e?????????????????????? 擴展的信息

-m???????????????????? 內存用量

-o????????????????????? 計時器信息

TCP常見狀態:

LISTEN????????????????????? 監聽

ESTABLISHED?????????? 已建立的鏈接

FIN_WAIT_1

FIN_WAIT_2

SYN_SENT

CLOSED

支持EXPRESSION:

dport=?????????????????????? 目標端口

sport=?????????????????????? 源端口

常用組合用法與netstat類似

-tan,-tanl等

常見用法:

ss -l ????????????????????????? 顯示本地打開的所有端口

ss -pl ??????????????????????? 顯示每個進程具體打開的socket

ss -t -a ??????????? 顯示所有tcp socket

ss -u -a ?????????? 顯示所有的UDP Socekt

ss -o state established ‘( dport = :ssh or sport = :ssh )’ 顯示所有已建立的ssh連接

ss -o state established ‘( dport = :http or sport = :http )’ 顯示所有已建立的HTTP連接

ss -s 列出當前socket詳細信息

 

 

 

ip ?命令 ? ?配置Linux網絡屬性

格式:ip [OPTIONS] OBJECT {COMMAND|help}

?????? OBJECT={link|addr|route}

 

網絡設備配置:

ip link?????? set IFACE down|up 禁用|啟用網卡

ip link?????? show [up]???????????????? 顯示數據鏈路層信息[僅顯示處于激活狀態接口]

 

ip地址設置:

ip addr {add|del} IP dev IFACE

ip address add IP dev IFACE label ALIASIFACE?????? ?????? 添加地址時指定網卡別名

ip address add IP dev IFACE scpe{global|link|host} ?? 指明作用域

global:全局可用

link:僅鏈接可用

host:本機可用

ip address flush dev IFACe? 清空IP地址

 

路由管理:

ip r|route [show|list]?????????????????????????????? 查看路由表

ip route add|del TARGET via GW dev IFACE 添加|刪除路由

ip route flush dev IFACE? ?????????????????????? 清空路由表

 

常用命令:

ip help???????????????????????????????????????????????? 查看ip命令使用幫助

ip link?????????????????????????????????????????????????? 查看數據鏈路層信息

ip link set eth1 up|down????????????????????????? 設置eth1網卡啟用|禁用

ip address|a?????????????????????????????????????? 查看網卡信息

ip route|r??????????????????????????????????????????? 查看路由信息

ip route add|del IP/24 via gateway??????????????? 添加路由

ip address add 2.2.2.2/24 dev eth0??????????????? 添加IP地址

ip address add 2.2.2.2/24 dev eth0 label eth0:2添加別名網卡IP地址

ip address flush dev eth0???????????????????????? 清空eth0網卡上所有ip地址

 

nmcli???????????????? 管理網絡管理器的命令行工具

格式:nmcli [OPTIONS] OBJECT COMMAND

OBJECT:

device?????????????????????? 顯示和管理網絡接口

connection|con?????????????? 管理網絡連接

 

修改IP地址等屬性:

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

setting.property:

ipv4.addresses

ipv4.gateway

ipv4.dns1

ipv4.method manual | auto

修改配置文件執行生效:

systemctl restart network

nmcli con reload

設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,

但同時只有一個連接配置生效

使連接配置生效|失效:

nmcli con up|down eth0

顯示所有包括不活動連接

nmcli con show

顯示所有活動連接

nmcli con show –active

顯示網絡連接配置

nmcli con show “System eth0“

顯示設備狀態

nmcli dev status

顯示網絡接口屬性

nmcli dev show eth0

創建新連接default,IP自動通過dhcp獲取

nmcli con add con-name default type Ethernet ifname eth0

刪除連接

nmcli con del default

創建新連接static ,指定靜態IP,不自動連接

nmcti con add con-name static ifname eth0 autoconnect no type

Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254

啟用static連接配置

nmcli con up static

啟用default連接配置

nmcli con up default

查看幫助

nmcli con add help

修改連接設置

nmcli con mod“static” connection.autoconnect no

nmcli con mod “static” ipv4.dns 172.25.X.254

nmcli con mod “static” +ipv4.dns 8.8.8.8

nmcli con mod “static” -ipv4.dns 8.8.8.8

nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”

nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

DNS設置,存放在/etc/resolv.conf文件中

PEERDNS=no 表示當IP通過dhcp自動獲取時,dns仍是手動設置,不自動獲取。等價于下

面命令:

nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

修改連接配置后,需要重新加載配置

nmcli con reload

nmcli con down “system eth0” 可被自動激活

nmcli con up “system eth0”

nmcli dev dis eth0 禁用網卡,訪止被自動激活

圖形工具

nm-connection-editor

字符工具

nmtui

nmtui-connect

nmtui-edit

nmtui-hostname

 

測試網絡

在命令行下測試網絡的連通性

顯示主機名

hostname

測試網絡連通性

ping

mtr

顯示正確的路由表

ip route

確定名稱服務器使用:

nslookup

host

dig

跟蹤路由

traceroute

tracepath

 

網絡客戶端工具

ftp,lftp:子命令:get、mget、ls、help

ftp [-p port] [-u user[,password]] SERVER

lftpget URL????? 直接跟URL地址下載

 

wget [option]… [URL]…

-q: 靜默模式

-c: 斷點續傳

-P:保存在指定目錄

-O: 保存為指定的文件名

–limit-rate=: 指定傳輸速率,單位K,M等,生產中最好限速

links URL????????? 圖形界面瀏覽器

–dump ?????????? 只顯示文字

–source ???????? 查看網頁源碼

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/97416

(0)
wangxczwangxcz
上一篇 2018-05-03
下一篇 2018-05-03

相關推薦

欧美性久久久久