本機索引:
一、基本網絡配置
二、主機、網卡名稱管理
三、網卡別名
四、Bonding技術
五、實現網絡組
六、Linux網絡管理常用命令
一、基本網絡配置:
將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