在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux網(wǎng)絡(luò)管理的關(guān)鍵技術(shù)和最佳實踐

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-07-09 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、引言

在大型互聯(lián)網(wǎng)企業(yè)中,Linux網(wǎng)絡(luò)管理是運維工程師的核心技能之一。面對海量服務(wù)器、復(fù)雜網(wǎng)絡(luò)拓撲、高并發(fā)流量,運維人員需要掌握從基礎(chǔ)網(wǎng)絡(luò)配置到高級網(wǎng)絡(luò)優(yōu)化的全套技術(shù)棧。本文將結(jié)合大廠實際場景,深入解析Linux網(wǎng)絡(luò)管理的關(guān)鍵技術(shù)和最佳實踐。

二、網(wǎng)絡(luò)基礎(chǔ)架構(gòu)與規(guī)劃

2.1 大廠網(wǎng)絡(luò)架構(gòu)設(shè)計

典型三層網(wǎng)絡(luò)架構(gòu):

┌─────────────────────────────────────────────────────────┐
│          核心層 (Core Layer)          │
│ ┌─────────────┐       ┌─────────────┐      │
│ │  Core-1  │──────────────│  Core-2  │      │
│ └─────────────┘       └─────────────┘      │
└─────────────────────────────────────────────────────────┘
             │
┌─────────────────────────────────────────────────────────┐
│         匯聚層 (Aggregation Layer)       │
│ ┌─────────────┐       ┌─────────────┐      │
│ │  Agg-1   │──────────────│  Agg-2   │      │
│ └─────────────┘       └─────────────┘      │
└─────────────────────────────────────────────────────────┘
             │
┌─────────────────────────────────────────────────────────┐
│          接入層 (Access Layer)         │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐   │
│ │  TOR-1   │ │  TOR-2   │ │  TOR-3   │   │
│ └─────────────┘ └─────────────┘ └─────────────┘   │
└─────────────────────────────────────────────────────────┘

VLAN劃分策略:

# 管理網(wǎng)絡(luò)
VLAN 100: 192.168.100.0/24 # 服務(wù)器管理接口
VLAN 101: 192.168.101.0/24 # 網(wǎng)絡(luò)設(shè)備管理

# 業(yè)務(wù)網(wǎng)絡(luò)
VLAN 200: 10.10.200.0/24  # Web前端服務(wù)
VLAN 201: 10.10.201.0/24  # 應(yīng)用服務(wù)層
VLAN 202: 10.10.202.0/24  # 數(shù)據(jù)庫層

# 存儲網(wǎng)絡(luò)
VLAN 300: 10.10.300.0/24  # 分布式存儲
VLAN 301: 10.10.301.0/24  # 備份網(wǎng)絡(luò)

2.2 網(wǎng)絡(luò)接口配置與管理

網(wǎng)絡(luò)接口配置(CentOS/RHEL):

# /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=12345678-1234-1234-1234-123456789abc
DEVICE=eth0
ONBOOT=yes
IPADDR=10.10.200.100
NETMASK=255.255.255.0
GATEWAY=10.10.200.1
DNS1=8.8.8.8
DNS2=8.8.4.4

網(wǎng)絡(luò)接口配置(Ubuntu/Debian):

# /etc/netplan/00-installer-config.yaml
network:
version:2
renderer:networkd
ethernets:
 eth0:
  addresses:
   -10.10.200.100/24
  gateway4:10.10.200.1
  nameservers:
   addresses:[8.8.8.8,8.8.4.4]
 eth1:
  addresses:
   -10.10.201.100/24

網(wǎng)絡(luò)綁定(Bonding)配置:

# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.200.100
NETMASK=255.255.255.0
GATEWAY=10.10.200.1
BONDING_OPTS="mode=802.3ad miimon=100 lacp_rate=fast"

# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

三、網(wǎng)絡(luò)性能監(jiān)控與調(diào)優(yōu)

3.1 網(wǎng)絡(luò)性能監(jiān)控工具

實時網(wǎng)絡(luò)監(jiān)控腳本:

#!/bin/bash
# 網(wǎng)絡(luò)性能監(jiān)控腳本
INTERFACE="eth0"
INTERVAL=5

echo"網(wǎng)絡(luò)接口:$INTERFACE"
echo"監(jiān)控間隔:$INTERVAL秒"
echo"時間戳     接收(MB/s) 發(fā)送(MB/s) 丟包率(%)"
echo"=================================================="

whiletrue;do
 # 獲取網(wǎng)絡(luò)統(tǒng)計信息
  RX1=$(cat/sys/class/net/$INTERFACE/statistics/rx_bytes)
  TX1=$(cat/sys/class/net/$INTERFACE/statistics/tx_bytes)
  RX_DROPPED1=$(cat/sys/class/net/$INTERFACE/statistics/rx_dropped)
  TX_DROPPED1=$(cat/sys/class/net/$INTERFACE/statistics/tx_dropped)
  RX_PACKETS1=$(cat/sys/class/net/$INTERFACE/statistics/rx_packets)
  TX_PACKETS1=$(cat/sys/class/net/$INTERFACE/statistics/tx_packets)
 
 sleep$INTERVAL
 
  RX2=$(cat/sys/class/net/$INTERFACE/statistics/rx_bytes)
  TX2=$(cat/sys/class/net/$INTERFACE/statistics/tx_bytes)
  RX_DROPPED2=$(cat/sys/class/net/$INTERFACE/statistics/rx_dropped)
  TX_DROPPED2=$(cat/sys/class/net/$INTERFACE/statistics/tx_dropped)
  RX_PACKETS2=$(cat/sys/class/net/$INTERFACE/statistics/rx_packets)
  TX_PACKETS2=$(cat/sys/class/net/$INTERFACE/statistics/tx_packets)
 
 # 計算速率
  RX_RATE=$(echo"scale=2; ($RX2-$RX1) / 1024 / 1024 /$INTERVAL"| bc)
  TX_RATE=$(echo"scale=2; ($TX2-$TX1) / 1024 / 1024 /$INTERVAL"| bc)
 
 # 計算丟包率
  TOTAL_PACKETS=$((RX_PACKETS2 - RX_PACKETS1 + TX_PACKETS2 - TX_PACKETS1))
  DROPPED_PACKETS=$((RX_DROPPED2 - RX_DROPPED1 + TX_DROPPED2 - TX_DROPPED1))
 
 if[$TOTAL_PACKETS-gt 0 ];then
    DROP_RATE=$(echo"scale=2;$DROPPED_PACKETS* 100 /$TOTAL_PACKETS"| bc)
 else
    DROP_RATE=0
 fi
 
 printf"%-15s %10s %10s %10s
"
   "$(date '+%H:%M:%S')"
   "$RX_RATE"
   "$TX_RATE"
   "$DROP_RATE"
done

高級網(wǎng)絡(luò)監(jiān)控工具使用:

# iftop - 實時網(wǎng)絡(luò)流量監(jiān)控
iftop -i eth0 -P -n

# nethogs - 按進程顯示網(wǎng)絡(luò)使用情況
nethogs eth0

# ss - 查看網(wǎng)絡(luò)連接狀態(tài)
ss -tuln | grep :80
ss -i # 顯示詳細連接信息

# nload - 實時網(wǎng)絡(luò)流量圖形化顯示
nload -m eth0

# tcpdump - 網(wǎng)絡(luò)包捕獲分析
tcpdump -i eth0 -n -c 100'port 80 or port 443'

3.2 網(wǎng)絡(luò)參數(shù)調(diào)優(yōu)

TCP參數(shù)優(yōu)化:

# /etc/sysctl.conf
# TCP緩沖區(qū)優(yōu)化
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# TCP連接優(yōu)化
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1

# 網(wǎng)絡(luò)隊列優(yōu)化
net.core.netdev_max_backlog = 5000
net.core.netdev_budget = 600

# 應(yīng)用優(yōu)化
sysctl -p

網(wǎng)絡(luò)接口隊列優(yōu)化:

#!/bin/bash
# 網(wǎng)絡(luò)接口多隊列配置
INTERFACE="eth0"
CPU_CORES=$(nproc)

# 啟用多隊列
ethtool -L$INTERFACEcombined$CPU_CORES

# 設(shè)置中斷親和性
for((i=0; i<$CPU_CORES; i++));?do
? ? IRQ=$(grep?"$INTERFACE-TxRx-$i"?/proc/interrupts | awk?'{print $1}'?|?tr?-d?':')
? ??if?[ -n?"$IRQ"?];?then
? ? ? ??echo?$((1?<< i)) > /proc/irq/$IRQ/smp_affinity
 fi
done

# 優(yōu)化網(wǎng)絡(luò)接口參數(shù)
ethtool -G$INTERFACErx 4096 tx 4096
ethtool -C$INTERFACEadaptive-rx on adaptive-tx on

四、網(wǎng)絡(luò)安全與防護

4.1 iptables防火墻配置

企業(yè)級防火墻規(guī)則:

#!/bin/bash
# 企業(yè)級iptables配置腳本

# 清空現(xiàn)有規(guī)則
iptables -F
iptables -X
iptables -Z

# 設(shè)置默認(rèn)策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 允許本地回環(huán)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# 允許已建立的連接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH訪問控制(僅允許特定IP)
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/8 -j ACCEPT

# Web服務(wù)端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 數(shù)據(jù)庫訪問控制
iptables -A INPUT -p tcp --dport 3306 -s 10.10.201.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 5432 -s 10.10.201.0/24 -j ACCEPT

# 防止SYN洪水攻擊
iptables -A INPUT -p tcp --syn -mlimit--limit1/s --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

# 防止端口掃描
iptables -A INPUT -m state --state NEW -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -m state --state NEW -p tcp --tcp-flags ALL NONE -j DROP

# 限制ICMP
iptables -A INPUT -p icmp --icmp-type echo-request -mlimit--limit1/s -j ACCEPT

# 保存規(guī)則
iptables-save > /etc/iptables/rules.v4

4.2 網(wǎng)絡(luò)入侵檢測

基于日志的入侵檢測腳本:

#!/bin/bash
# 網(wǎng)絡(luò)入侵檢測腳本
LOG_FILE="/var/log/secure"
ALERT_EMAIL="admin@company.com"
THRESHOLD=10

# 檢測SSH暴力破解
check_ssh_brute_force() {
 localfailed_attempts=$(grep"Failed password"$LOG_FILE| 
    grep"$(date '+%b %d')"| 
    awk'{print $11}'|sort|uniq-c | 
    awk -v threshold=$THRESHOLD'$1 > threshold {print $2, $1}')
 
 if[ -n"$failed_attempts"];then
   echo"SSH暴力破解檢測到:"
   echo"$failed_attempts"
   
   # 自動封禁IP
   echo"$failed_attempts"|whilereadip count;do
      iptables -A INPUT -s$ip-j DROP
     echo"已封禁IP:$ip(失敗次數(shù):$count)"
   done
 fi
}

# 檢測端口掃描
check_port_scan() {
 localscan_attempts=$(netstat -an | grep SYN_RECV | 
    awk'{print $5}'|cut-d: -f1 |sort|uniq-c | 
    awk -v threshold=50'$1 > threshold {print $2, $1}')
 
 if[ -n"$scan_attempts"];then
   echo"端口掃描檢測到:"
   echo"$scan_attempts"
 fi
}

# 執(zhí)行檢測
check_ssh_brute_force
check_port_scan

五、高可用網(wǎng)絡(luò)架構(gòu)

5.1 負載均衡配置

HAProxy配置示例:

# /etc/haproxy/haproxy.cfg
global
  daemon
  maxconn 4096
  user haproxy
  group haproxy
 
defaults
  mode http
 timeoutconnect 5000ms
 timeoutclient 50000ms
 timeoutserver 50000ms
  option httplog
  option dontlognull
  option redispatch
  retries 3

frontend web_frontend
 bind*:80
 bind*:443 ssl crt /etc/ssl/certs/server.pem
  redirect scheme httpsif!{ ssl_fc }
  default_backend web_servers

backend web_servers
  balance roundrobin
  option httpchk GET /health
  server web1 10.10.200.10:80 check
  server web2 10.10.200.11:80 check
  server web3 10.10.200.12:80 check

listen stats
 bind*:8080
  statsenable
  stats uri /stats
  stats refresh 30s

Keepalived高可用配置:

# /etc/keepalived/keepalived.conf
vrrp_script chk_haproxy {
  script"/bin/curl -f http://localhost:80/health || exit 1"
  interval 2
  weight -2
  fall 3
  rise 2
}

vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass mypassword
  }
  virtual_ipaddress {
    10.10.200.100/24
  }
  track_script {
    chk_haproxy
  }
}

5.2 網(wǎng)絡(luò)故障切換

自動故障切換腳本:

#!/bin/bash
# 網(wǎng)絡(luò)故障自動切換腳本
PRIMARY_GATEWAY="10.10.200.1"
BACKUP_GATEWAY="10.10.200.2"
TEST_HOST="8.8.8.8"
INTERFACE="eth0"

check_connectivity() {
 localgateway=$1
  ping -c 3 -W 2$gateway> /dev/null 2>&1
 return$?
}

switch_gateway() {
 localnew_gateway=$1
  ip route del default
  ip route add default via$new_gatewaydev$INTERFACE
 echo"已切換到網(wǎng)關(guān):$new_gateway"
}

# 主循環(huán)
whiletrue;do
  current_gateway=$(ip route show default | awk'{print $3}')
 
 if["$current_gateway"="$PRIMARY_GATEWAY"];then
   if! check_connectivity$PRIMARY_GATEWAY;then
     echo"主網(wǎng)關(guān)故障,切換到備用網(wǎng)關(guān)"
      switch_gateway$BACKUP_GATEWAY
   fi
 else
   ifcheck_connectivity$PRIMARY_GATEWAY;then
     echo"主網(wǎng)關(guān)恢復(fù),切換回主網(wǎng)關(guān)"
      switch_gateway$PRIMARY_GATEWAY
   fi
 fi
 
 sleep30
done

六、網(wǎng)絡(luò)故障排查與診斷

6.1 網(wǎng)絡(luò)連通性診斷

網(wǎng)絡(luò)診斷工具集:

#!/bin/bash
# 網(wǎng)絡(luò)故障診斷腳本
TARGET_HOST="$1"
TARGET_PORT="$2"

if[ -z"$TARGET_HOST"];then
 echo"用法:$0<目標(biāo)主機> [端口]"
 exit1
fi

echo"=== 網(wǎng)絡(luò)診斷報告 ==="
echo"目標(biāo)主機:$TARGET_HOST"
echo"目標(biāo)端口:${TARGET_PORT:-N/A}"
echo"診斷時間:$(date)"
echo

# 1. 基礎(chǔ)連通性測試
echo"1. PING測試:"
ifping -c 4$TARGET_HOST> /tmp/ping_result 2>&1;then
 echo"  ? PING成功"
  grep"rtt"/tmp/ping_result
else
 echo"  ? PING失敗"
 cat/tmp/ping_result
fi
echo

# 2. 路由跟蹤
echo"2. 路由跟蹤:"
traceroute$TARGET_HOST2>/dev/null |head-10
echo

# 3. DNS解析測試
echo"3. DNS解析:"
ifnslookup$TARGET_HOST> /tmp/dns_result 2>&1;then
 echo"  ? DNS解析成功"
  grep"Address"/tmp/dns_result |tail-1
else
 echo"  ? DNS解析失敗"
fi
echo

# 4. 端口連通性測試
if[ -n"$TARGET_PORT"];then
 echo"4. 端口連通性:"
 ifnc -zv$TARGET_HOST$TARGET_PORT2>&1 | grep -q"succeeded";then
   echo"  ? 端口$TARGET_PORT開放"
 else
   echo"  ? 端口$TARGET_PORT不可達"
 fi
 echo
fi

# 5. 網(wǎng)絡(luò)接口狀態(tài)
echo"5. 本地網(wǎng)絡(luò)接口狀態(tài):"
ip addr show | grep -E"inet|state"
echo

# 6. 路由表
echo"6. 路由表:"
ip route show
echo

# 7. 防火墻狀態(tài)
echo"7. 防火墻狀態(tài):"
iptables -L -n |head-20

6.2 網(wǎng)絡(luò)性能分析

網(wǎng)絡(luò)性能測試腳本:

#!/bin/bash
# 網(wǎng)絡(luò)性能測試腳本
SERVER_IP="$1"
TEST_DURATION=30

if[ -z"$SERVER_IP"];then
 echo"用法:$0<服務(wù)器IP>"
 exit1
fi

echo"=== 網(wǎng)絡(luò)性能測試 ==="
echo"服務(wù)器:$SERVER_IP"
echo"測試時長:$TEST_DURATION秒"
echo

# TCP帶寬測試
echo"1. TCP帶寬測試:"
ifcommand-v iperf3 &> /dev/null;then
  iperf3 -c$SERVER_IP-t$TEST_DURATION
else
 echo"  iperf3 未安裝,跳過帶寬測試"
fi
echo

# 延遲測試
echo"2. 網(wǎng)絡(luò)延遲測試:"
ping -c 10$SERVER_IP|tail-1
echo

# 并發(fā)連接測試
echo"3. 并發(fā)連接測試:"
foriin{1..10};do
  (timenc -zv$SERVER_IP80 2>&1) 2>&1 | grep real &
done
wait
echo

# 丟包率測試
echo"4. 丟包率測試:"
ping -c 100$SERVER_IP| grep"packet loss"

七、容器網(wǎng)絡(luò)管理

7.1 Docker網(wǎng)絡(luò)配置

Docker網(wǎng)絡(luò)管理:

#!/bin/bash
# Docker網(wǎng)絡(luò)配置腳本

# 創(chuàng)建自定義網(wǎng)絡(luò)
docker network create --driver bridge 
  --subnet=172.20.0.0/16 
  --ip-range=172.20.240.0/20 
  --gateway=172.20.0.1 
  custom_network

# 創(chuàng)建macvlan網(wǎng)絡(luò)
docker network create -d macvlan 
  --subnet=192.168.1.0/24 
  --gateway=192.168.1.1 
  -o parent=eth0 
  macvlan_network

# 容器網(wǎng)絡(luò)監(jiān)控
monitor_container_network() {
 echo"容器網(wǎng)絡(luò)使用情況:"
  docker stats --no-stream --format"table {{.Container}}	{{.NetIO}}"
 
 echo-e"
容器網(wǎng)絡(luò)詳情:"
  docker networkls
 
 echo-e"
網(wǎng)絡(luò)接口統(tǒng)計:"
 forcontainerin$(docker ps -q);do
    name=$(docker inspect --format='{{.Name}}'$container| sed's////')
   echo"容器:$name"
    dockerexec$containercat/proc/net/dev | grep -v"lo:"|tail-n +3
   echo
 done
}

monitor_container_network

7.2 Kubernetes網(wǎng)絡(luò)管理

Kubernetes網(wǎng)絡(luò)故障排查:

#!/bin/bash
# K8s網(wǎng)絡(luò)故障排查腳本

# 檢查Pod網(wǎng)絡(luò)連通性
check_pod_connectivity() {
 localpod_name=$1
 localnamespace=${2:-default}
 
 echo"檢查Pod:$pod_name(namespace:$namespace)"
 
 # 獲取Pod IP
  pod_ip=$(kubectl get pod$pod_name-n$namespace-o jsonpath='{.status.podIP}')
 echo"Pod IP:$pod_ip"
 
 # 檢查Pod網(wǎng)絡(luò)接口
  kubectlexec$pod_name-n$namespace-- ip addr show
 
 # 檢查Pod路由
  kubectlexec$pod_name-n$namespace-- ip route show
 
 # 測試DNS解析
  kubectlexec$pod_name-n$namespace-- nslookup kubernetes.default.svc.cluster.local
}

# 檢查Service網(wǎng)絡(luò)
check_service_network() {
 localservice_name=$1
 localnamespace=${2:-default}
 
 echo"檢查Service:$service_name"
 
 # 獲取Service信息
  kubectl get svc$service_name-n$namespace-o wide
 
 # 檢查Endpoints
  kubectl get endpoints$service_name-n$namespace
 
 # 檢查Service的iptables規(guī)則
  iptables -t nat -L | grep$service_name
}

# 網(wǎng)絡(luò)策略檢查
check_network_policies() {
 echo"當(dāng)前網(wǎng)絡(luò)策略:"
  kubectl get networkpolicies --all-namespaces
 
 echo-e"
網(wǎng)絡(luò)策略詳情:"
  kubectl get networkpolicies --all-namespaces -o yaml
}

# 使用示例
# check_pod_connectivity "my-pod" "default"
# check_service_network "my-service" "default"
# check_network_policies

八、網(wǎng)絡(luò)自動化管理

8.1 Ansible網(wǎng)絡(luò)自動化

網(wǎng)絡(luò)配置自動化Playbook:

# network_config.yml
---
-name:網(wǎng)絡(luò)配置自動化
hosts:servers
become:yes
vars:
 network_interfaces:
  -name:eth0
   ip:"{{ ansible_default_ipv4.address }}"
   netmask:"255.255.255.0"
   gateway:"{{ ansible_default_ipv4.gateway }}"
  -name:eth1
   ip:"10.10.201.{{ ansible_host.split('.')[3] }}"
   netmask:"255.255.255.0"
 
tasks:
 -name:配置網(wǎng)絡(luò)接口
  template:
   src:ifcfg-interface.j2
   dest:"/etc/sysconfig/network-scripts/ifcfg-{{ item.name }}"
  loop:"{{ network_interfaces }}"
  notify:restartnetwork
 
 -name:配置防火墻規(guī)則
  iptables:
   chain:INPUT
   protocol:tcp
   destination_port:"{{ item }}"
   jump:ACCEPT
  loop:
   -22
   -80
   -443
 
 -name:優(yōu)化網(wǎng)絡(luò)參數(shù)
  sysctl:
   name:"{{ item.name }}"
   value:"{{ item.value }}"
   state:present
   reload:yes
  loop:
   -{name:"net.ipv4.tcp_fin_timeout",value:"30"}
   -{name:"net.ipv4.tcp_keepalive_time",value:"1200"}
   -{name:"net.core.rmem_max",value:"16777216"}
   -{name:"net.core.wmem_max",value:"16777216"}
 
 -name:安裝網(wǎng)絡(luò)監(jiān)控工具
  package:
   name:"{{ item }}"
   state:present
  loop:
   -iftop
   -nethogs
   -tcpdump
   -nmap

handlers:
 -name:restartnetwork
  service:
   name:network
   state:restarted

8.2 網(wǎng)絡(luò)監(jiān)控自動化

Prometheus網(wǎng)絡(luò)監(jiān)控配置:

# prometheus.yml
global:
scrape_interval:15s
evaluation_interval:15s

rule_files:
-"network_rules.yml"

scrape_configs:
-job_name:'node-exporter'
 static_configs:
  -targets:['localhost:9100']
 scrape_interval:5s
 metrics_path:/metrics

-job_name:'snmp-network'
 static_configs:
  -targets:
   -192.168.1.1# 路由器
   -192.168.1.2# 交換機
 metrics_path:/snmp
 params:
  module:[if_mib]
 relabel_configs:
  -source_labels:[__address__]
   target_label:__param_target
  -source_labels:[__param_target]
   target_label:instance
  -target_label:__address__
   replacement:127.0.0.1:9116# SNMP exporter

網(wǎng)絡(luò)告警規(guī)則:

# network_rules.yml
groups:
-name:network_alerts
 rules:
  -alert:HighNetworkTraffic
   expr:rate(node_network_receive_bytes_total[5m])>100000000
   for:2m
   labels:
    severity:warning
   annotations:
    summary:"高網(wǎng)絡(luò)流量告警"
    description:"{{ $labels.instance }}網(wǎng)絡(luò)接收流量超過100MB/s"
  
  -alert:NetworkInterfaceDown
   expr:node_network_up==0
   for:1m
   labels:
    severity:critical
   annotations:
    summary:"網(wǎng)絡(luò)接口故障"
    description:"{{ $labels.instance }}網(wǎng)絡(luò)接口{{ $labels.device }}已斷開"
  
  -alert:HighPacketLoss
   expr:rate(node_network_receive_drop_total[5m])>1000
   for:2m
   labels:
    severity:warning
   annotations:
    summary:"網(wǎng)絡(luò)丟包告警"
    description:"{{ $labels.instance }}網(wǎng)絡(luò)丟包率過高"

九、網(wǎng)絡(luò)安全最佳實踐

9.1 網(wǎng)絡(luò)安全加固

網(wǎng)絡(luò)安全檢查腳本:

#!/bin/bash
# 網(wǎng)絡(luò)安全檢查腳本

echo"=== 網(wǎng)絡(luò)安全檢查報告 ==="
echo"檢查時間:$(date)"
echo

# 1. 開放端口檢查
echo"1. 開放端口檢查:"
netstat -tuln | grep LISTEN |whilereadline;do
  port=$(echo$line| awk'{print $4}'|cut-d: -f2)
  protocol=$(echo$line| awk'{print $1}')
 echo"  開放端口:$port($protocol)"
done
echo

# 2. 防火墻狀態(tài)檢查
echo"2. 防火墻狀態(tài):"
ifsystemctl is-active --quiet iptables;then
 echo"  ? iptables 服務(wù)運行中"
  rule_count=$(iptables -L | grep -c"^Chain")
 echo"  防火墻規(guī)則鏈數(shù):$rule_count"
else
 echo"  ? iptables 服務(wù)未運行"
fi
echo

# 3. SSH配置檢查
echo"3. SSH安全配置檢查:"
ssh_config="/etc/ssh/sshd_config"
if[ -f"$ssh_config"];then
 # 檢查關(guān)鍵配置項
  root_login=$(grep"^PermitRootLogin"$ssh_config| awk'{print $2}')
  password_auth=$(grep"^PasswordAuthentication"$ssh_config| awk'{print $2}')
  port=$(grep"^Port"$ssh_config| awk'{print $2}')
 
 echo"  SSH端口:${port:-22}"
 echo"  Root登錄:${root_login:-yes}"
 echo"  密碼認(rèn)證:${password_auth:-yes}"
 
 if["$root_login"="no"];then
   echo"  ? 已禁用Root登錄"
 else
   echo"  ? 建議禁用Root登錄"
 fi
fi
echo

# 4. 網(wǎng)絡(luò)連接檢查
echo"4. 可疑網(wǎng)絡(luò)連接檢查:"
netstat -an | grep ESTABLISHED | awk'{print $5}'|cut-d: -f1 |sort|uniq-c |sort-nr |head-10
echo

# 5. 失敗登錄嘗試檢查
echo"5. 失敗登錄嘗試:"
if[ -f"/var/log/secure"];then
  grep"Failed password"/var/log/secure |tail-5
else
 echo"  無法訪問登錄日志"
fi

9.2 DDoS防護

DDoS防護腳本:

#!/bin/bash
# DDoS防護腳本

# 限制連接數(shù)
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT

# 限制新連接速率
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

# SYN Flood防護
echo1 > /proc/sys/net/ipv4/tcp_syncookies
echo2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo3 > /proc/sys/net/ipv4/tcp_synack_retries

# 配置連接跟蹤
echo65536 > /proc/sys/net/netfilter/nf_conntrack_max
echo300 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established

# 自動封禁攻擊IP
monitor_ddos() {
 whiletrue;do
   # 檢測異常連接
    netstat -an | grep :80 | grep SYN_RECV | awk'{print $5}'|cut-d: -f1 |sort|uniq-c |whilereadcount ip;do
     if[$count-gt 50 ];then
       echo"檢測到DDoS攻擊,封禁IP:$ip"
        iptables -A INPUT -s$ip-j DROP
     fi
   done
   sleep10
 done
}

# 啟動監(jiān)控
monitor_ddos &

十、總結(jié)與展望

10.1 運維最佳實踐總結(jié)

1.標(biāo)準(zhǔn)化配置管理:使用配置管理工具(Ansible、Puppet)實現(xiàn)網(wǎng)絡(luò)配置的標(biāo)準(zhǔn)化和自動化。

2.全面監(jiān)控體系:建立從基礎(chǔ)設(shè)施到應(yīng)用層的全棧網(wǎng)絡(luò)監(jiān)控,及時發(fā)現(xiàn)和處理網(wǎng)絡(luò)問題。

3.安全防護策略:實施多層次的網(wǎng)絡(luò)安全防護,包括防火墻、入侵檢測、訪問控制等。

4.故障快速響應(yīng):建立完善的故障處理流程和自動化故障切換機制。

5.性能持續(xù)優(yōu)化:定期進行網(wǎng)絡(luò)性能評估和調(diào)優(yōu),確保網(wǎng)絡(luò)基礎(chǔ)設(shè)施能夠支撐業(yè)務(wù)發(fā)展。

10.2 技術(shù)發(fā)展趨勢

?軟件定義網(wǎng)絡(luò)(SDN):通過軟件控制網(wǎng)絡(luò)行為,提高網(wǎng)絡(luò)的靈活性和可管理性。

?網(wǎng)絡(luò)功能虛擬化(NFV):將網(wǎng)絡(luò)功能從專用硬件中解耦,實現(xiàn)更靈活的網(wǎng)絡(luò)服務(wù)部署。

?邊緣計算網(wǎng)絡(luò):隨著邊緣計算的發(fā)展,網(wǎng)絡(luò)架構(gòu)將更加分布式和智能化。

?AI驅(qū)動的網(wǎng)絡(luò)運維:利用人工智能技術(shù)實現(xiàn)網(wǎng)絡(luò)的自動化運維和智能故障診斷。

結(jié)語

Linux網(wǎng)絡(luò)管理是大廠運維工程師必須掌握的核心技能。通過本文介紹的技術(shù)和實踐,運維人員可以構(gòu)建穩(wěn)定、高效、安全的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,為企業(yè)業(yè)務(wù)發(fā)展提供堅實的技術(shù)保障。

在實際工作中,運維人員需要結(jié)合具體業(yè)務(wù)場景,靈活運用這些技術(shù),并持續(xù)學(xué)習(xí)新的網(wǎng)絡(luò)技術(shù)和工具,以應(yīng)對不斷變化的業(yè)務(wù)需求和技術(shù)挑戰(zhàn)。

本文內(nèi)容基于大廠實際生產(chǎn)環(huán)境經(jīng)驗總結(jié),如有疑問或需要進一步交流,歡迎討論。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    55

    文章

    11246

    瀏覽量

    106282
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11508

    瀏覽量

    213568
  • 網(wǎng)絡(luò)管理
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    28158

原文標(biāo)題:運維必備:大廠Linux網(wǎng)絡(luò)管理技術(shù)實戰(zhàn)指南

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    網(wǎng)絡(luò)化HRM系統(tǒng)關(guān)鍵技術(shù)研究與實現(xiàn)

    和系統(tǒng)權(quán)限控制與管理等。本學(xué)位論文針對跨地域大型煤礦公司HRM系統(tǒng)的需求,研究網(wǎng)絡(luò)化HRM系統(tǒng)的關(guān)鍵技術(shù),包括:B/S結(jié)構(gòu)的多層Web應(yīng)用系統(tǒng)、J2EE體系結(jié)構(gòu)、JSP/Servlet開發(fā)模式
    發(fā)表于 04-24 09:21

    汽車總線及其關(guān)鍵技術(shù)的研究

    汽車總線及其關(guān)鍵技術(shù)的研究
    發(fā)表于 07-10 11:33

    CDMA原理與關(guān)鍵技術(shù)

    CDMA原理與關(guān)鍵技術(shù)
    發(fā)表于 08-16 20:25

    智能電網(wǎng)的網(wǎng)絡(luò)通信架構(gòu)及關(guān)鍵技術(shù)解析

    中心議題: *智能電網(wǎng)的網(wǎng)絡(luò)通信架構(gòu) *智能電網(wǎng)的關(guān)鍵技術(shù)解決方案: *TE 彈性屬性決定在鏈路故障或結(jié)點失效時采取的策略1引言 建設(shè)信息化、自動化、互動化為特征的堅強智 能電網(wǎng)(Smart
    發(fā)表于 10-09 11:42

    詳解5G的六大關(guān)鍵技術(shù)

    過程中會遇到哪些問題?在5G研發(fā)剛起步的情況下,如何建立一套全面的5G關(guān)鍵技術(shù)評估指標(biāo)體系和評估方法,實現(xiàn)客觀有效的第三方評估,服務(wù)技術(shù)與資源管理的發(fā)展需要,同樣是當(dāng)前5G技術(shù)發(fā)展所面
    發(fā)表于 12-07 18:40

    利用CAN總線構(gòu)建一個車內(nèi)網(wǎng)絡(luò),需要解決的關(guān)鍵技術(shù)問題有哪些?

    CAN-BUS系統(tǒng)主要包括哪些部件?車載網(wǎng)絡(luò)的應(yīng)用分類有哪幾種?利用CAN總線構(gòu)建一個車內(nèi)網(wǎng)絡(luò),需要解決的關(guān)鍵技術(shù)問題有哪些?
    發(fā)表于 05-13 06:07

    數(shù)字家庭網(wǎng)絡(luò)關(guān)鍵技術(shù)是什么?

    數(shù)字家庭網(wǎng)絡(luò)提供的業(yè)務(wù)類別以及需求有哪些?數(shù)字家庭網(wǎng)絡(luò)關(guān)鍵技術(shù)是什么?
    發(fā)表于 05-26 06:20

    WCDMA中的關(guān)鍵技術(shù)網(wǎng)絡(luò)規(guī)劃中的應(yīng)用是什么

    WCDMA中的關(guān)鍵技術(shù)網(wǎng)絡(luò)規(guī)劃中的應(yīng)用是什么
    發(fā)表于 05-27 06:15

    ASON網(wǎng)絡(luò)關(guān)鍵技術(shù)有哪些?

    ASON光網(wǎng)絡(luò)由哪幾部分組成?ASON網(wǎng)絡(luò)關(guān)鍵技術(shù)有哪些?ASON的亮點是什么?
    發(fā)表于 05-28 06:48

    車載移動異構(gòu)無線網(wǎng)絡(luò)架構(gòu)及關(guān)鍵技術(shù)是什么?

    車載移動異構(gòu)無線網(wǎng)絡(luò)架構(gòu)及關(guān)鍵技術(shù)是什么?
    發(fā)表于 06-07 06:29

    POE的關(guān)鍵技術(shù)有哪些?

    使用以太網(wǎng)線供電的優(yōu)勢是什么?PoE設(shè)備是怎么供電的?POE的關(guān)鍵技術(shù)有哪些?
    發(fā)表于 06-10 09:26

    CatM的關(guān)鍵技術(shù)有哪些?CatNB和CatM有什么區(qū)別?

    物聯(lián)網(wǎng)市場的網(wǎng)絡(luò)特性是什么?CatNB和CatM有什么區(qū)別?CatM的關(guān)鍵技術(shù)有哪些?
    發(fā)表于 06-30 08:02

    明白VPP關(guān)鍵技術(shù)有哪些

    隨著人工智能技術(shù)的不斷發(fā)展,越來越多的行業(yè)開始使用人工智能技術(shù),這也使得智能虛擬代理技術(shù)得到了廣泛的應(yīng)用。為了能夠深入了解智能虛擬代理技術(shù),需要明白VPP
    發(fā)表于 08-31 07:28

    視覺導(dǎo)航關(guān)鍵技術(shù)及應(yīng)用

    由于視覺導(dǎo)航技術(shù)的應(yīng)用越來越普及 ,因此 ,有必要對視覺導(dǎo)航中的關(guān)鍵技術(shù)及應(yīng)用進行研究。文章對其中的圖像處理技術(shù)和定位與跟蹤技術(shù)進行了詳細研究 ,并與此相對應(yīng) ,介紹的相關(guān)的應(yīng)用。
    發(fā)表于 09-25 08:09

    部署Linux最佳實踐探索

    編者按:本文節(jié)選自節(jié)選自《基于Linux的企業(yè)自動化》第五章。“第5章,使用Ansible構(gòu)建用于部署的虛擬機模板,通過構(gòu)建虛擬機模板來探索部署Linux最佳實踐,虛擬機模板將以實際
    的頭像 發(fā)表于 05-16 09:35 ?772次閱讀
    主站蜘蛛池模板: 国产精品成人四虎免费视频 | 美女黄页网站免费进入 | 四虎影视永久在线精品免费播放 | 热99re久久精品2久久久 | 亚洲αv久久久噜噜噜噜噜 亚洲аv电影天堂网 | 深爱激情五月网 | 在线观看午夜 | 四虎影院免费观看 | 狠狠色噜噜综合社区 | 五月婷婷丁香六月 | 五月婷婷久久综合 | 丁香婷婷综合五月综合色啪 | 欧美人成网 | 日本精品卡一卡2卡3卡四卡三卡 | www.黄视频 | 狠狠干激情 | 日本高清免费一本视频在线观看 | 免费大片黄日本在线观看 | 天天看天天做 | 成人免费的性色视频 | sihu国产午夜精品一区二区三区 | 午夜影院日韩 | 久久久噜噜噜 | 国产三级精品最新在线 | 天堂w | 在线免费观看视频 | 久久综合中文字幕 | 免费看啪啪网站 | 性欧美高清强烈性视频 | 无内丝袜透明在线播放 | aika中文字幕永久在线 | 一级特级aaaa毛片免费观看 | 婷婷综合激六月情网 | 免费的毛片网站 | 免费爱爱网 | 免费的毛片网站 | 特级黄色免费片 | 久久久久久久蜜桃 | 成年午夜一级毛片视频 | 国产一级做a爰片久久毛片 国产一级做a爰片久久毛片男 | 男女交性视频免费播放视频 |