#!/bin/bash # # Este script implementa otimização de MTU para WireGuard sem depender de XDP # já que o carregamento do programa XDP falhou devido a limitações no verificador de limites echo "Aplicando otimizações manuais de MTU para WireGuard..." # 1. Configurar MTU ótimo para WireGuard echo "Configurando MTU ótimo para WireGuard..." ip link set dev wg0 mtu 1420 echo "MTU da interface wg0 configurado para 1420" # 2. Configurar TCP MSS clamping via iptables para prevenir fragmentação echo "Configurando TCP MSS Clamping..." iptables -t mangle -F FORWARD iptables -t mangle -A FORWARD -o wg0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1380 iptables -t mangle -A FORWARD -i wg0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1380 echo "TCP MSS ajustado para 1380 para pacotes passando pelo WireGuard" # 3. Ajustar opções de kernel para melhorar o tratamento de MTU e fragmentação echo "Ajustando parâmetros de kernel para PMTU e fragmentação..." sysctl -w net.ipv4.tcp_mtu_probing=1 sysctl -w net.ipv4.ip_no_pmtu_disc=0 echo "net.ipv4.tcp_mtu_probing = 1" >> /etc/sysctl.conf echo "net.ipv4.ip_no_pmtu_disc = 0" >> /etc/sysctl.conf sysctl -p # 4. Priorizar tráfego WireGuard no QoS echo "Configurando QoS para priorizar pacotes WireGuard..." # Verificar se já existe regra para não duplicar if ! tc filter show dev enp0s6 parent 1: | grep -q "match ip protocol 17.*match ip dport 32100"; then tc filter add dev enp0s6 parent 1: protocol ip prio 1 u32 \ match ip protocol 17 0xff \ match ip dport 32100 0xffff \ flowid 1:10 fi # 5. Configurar o sysctl drop_path_mtu para garantir que o kernel ajuste o MTU adequadamente sysctl -w net.ipv4.ip_forward_use_pmtu=1 echo "net.ipv4.ip_forward_use_pmtu = 1" >> /etc/sysctl.conf # 6. Adicionar um monitoramento básico de fragmentação echo "Configurando monitoramento de fragmentação..." cat > /etc/cron.daily/check_ip_frag << 'EOF' #!/bin/sh # Monitorar estatísticas de fragmentação IP echo "=== Estatísticas de Fragmentação $(date) ===" >> /var/log/ip_frag_stats.log grep . /proc/net/snmp | grep -A 1 "^Ip" >> /var/log/ip_frag_stats.log echo "" >> /var/log/ip_frag_stats.log EOF chmod +x /etc/cron.daily/check_ip_frag # 7. Mostrar informações atuais echo "" echo "=== Otimização de MTU para WireGuard aplicada com sucesso ===" echo "Informações da interface WireGuard:" ip link show wg0 | grep mtu echo "" echo "Regras de TCP MSS clamping:" iptables -t mangle -L FORWARD -v -n | grep TCPMSS echo "" echo "Esta solução irá:" echo "- Prevenir fragmentação usando MTU 1420 e TCP MSS 1380" echo "- Melhorar Path MTU Discovery para conexões mais estáveis" echo "- Priorizar tráfego WireGuard no QoS" echo "- Monitorar fragmentação para ajustes futuros"