在CentOS上搭建Web服务器需要深入理解TCP/IP协议栈的工作原理。以下是从网络分层角度进行的专业解析及实践要点:
网卡配置
ethtool
命令检查网卡双工模式/速率ip link set dev eth0 mtu 9000 # Jumbo Frame配置
ARP协议
arp -n
arp -s 192.168.1.1 00:11:22:33:44:55
IP地址管理
ip addr add 192.168.1.100/24 dev eth0
# /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
路由优化
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
ICMP策略
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
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队列
端口管理
ss -tulnp | grep :80
sysctl -w net.ipv4.ip_local_port_range="1024 65000"
连接状态监控
netstat -ant | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
HTTP/HTTPS服务
server {
listen 80 backlog=4096 reuseport;
listen [::]:80 ipv6only=off;
tcp_nodelay on;
keepalive_timeout 65;
}
SSL/TLS优化
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
SYN Flood防护
sysctl -w net.ipv4.tcp_syncookies=1
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
连接追踪优化
sysctl -w net.netfilter.nf_conntrack_max=1000000
sysctl -w net.nf_conntrack_max=1000000
实时流量分析
tcpdump -i eth0 -nn 'tcp port 80' -w http.pcap
深度性能指标
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服务环境。建议在生产环境部署前使用ab
或wrk
进行压力测试验证配置效果。