插件窝 干货文章 深入解析:CentOS上搭建web服务器涉及的TCP/IP知识

深入解析:CentOS上搭建web服务器涉及的TCP/IP知识

bash sysctl 配置 TCP 904    来源:    2025-04-13

在CentOS上搭建Web服务器需要深入理解TCP/IP协议栈的工作原理。以下是从网络分层角度进行的专业解析及实践要点:


一、物理层与数据链路层基础

  1. 网卡配置

    • ethtool命令检查网卡双工模式/速率
    • MTU值设置(默认1500字节):
    ip link set dev eth0 mtu 9000  # Jumbo Frame配置
    
  2. ARP协议

    • 查看ARP缓存:
    arp -n
    
    • 静态ARP绑定防止ARP欺骗:
    arp -s 192.168.1.1 00:11:22:33:44:55
    

二、网络层关键配置

  1. IP地址管理

    • 临时配置:
    ip addr add 192.168.1.100/24 dev eth0
    
    • 永久配置(CentOS 7+):
    # /etc/sysconfig/network-scripts/ifcfg-eth0
    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    
  2. 路由优化

    • 多网卡路由策略:
    ip route add default via 192.168.1.1 dev eth0 metric 100
    ip route add 10.0.0.0/8 via 10.1.1.1 dev eth1
    
    • 路由缓存调优:
    sysctl -w net.ipv4.route.gc_timeout=300
    
  3. ICMP策略

    • 禁用特定ICMP类型(安全加固):
    iptables -A INPUT -p icmp --icmp-type 8 -j DROP
    

三、传输层核心机制

  1. TCP协议栈调优

    • 关键内核参数:
    sysctl -w net.ipv4.tcp_tw_reuse=1          # 快速回收TIME-WAIT
    sysctl -w net.ipv4.tcp_fin_timeout=30      # FIN超时
    sysctl -w net.core.somaxconn=65535         # 最大连接队列
    sysctl -w net.ipv4.tcp_max_syn_backlog=8192 # SYN队列
    
  2. 端口管理

    • 查看占用80端口的进程:
    ss -tulnp | grep :80
    
    • 临时端口范围调整:
    sysctl -w net.ipv4.ip_local_port_range="1024 65000"
    
  3. 连接状态监控

    • 统计TCP状态:
    netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    

四、应用层协议实现

  1. HTTP/HTTPS服务

    • Apache/Nginx监听配置示例:
    server {
       listen 80 backlog=4096 reuseport;
       listen [::]:80 ipv6only=off;
       tcp_nodelay on;
       keepalive_timeout 65;
    }
    
  2. SSL/TLS优化

    • 密码套件优先级设置:
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;
    

五、安全加固措施

  1. SYN Flood防护

    sysctl -w net.ipv4.tcp_syncookies=1
    iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
    
  2. 连接追踪优化

    sysctl -w net.netfilter.nf_conntrack_max=1000000
    sysctl -w net.nf_conntrack_max=1000000
    

六、性能监控工具

  1. 实时流量分析

    tcpdump -i eth0 -nn 'tcp port 80' -w http.pcap
    
  2. 深度性能指标

    sar -n DEV 1  # 网卡吞吐量
    sar -n TCP 1  # TCP重传率
    nstat -a      # 协议栈统计
    

七、排错流程图

客户端无法访问
├─ 检查物理连接 (ethtool)
├─ 测试ARP解析 (arping)
├─ 验证IP连通性 (ping)
├─ 测试端口可达性 (telnet/nc)
├─ 检查服务状态 (systemctl status httpd)
└─ 审查防火墙规则 (iptables -L -n)

通过以上分层配置和优化,可以构建高性能、安全的Web服务环境。建议在生产环境部署前使用abwrk进行压力测试验证配置效果。