#!/bin/bash # Compilar o programa XDP de otimização MTU para WireGuard echo "Compilando programa XDP de otimização para WireGuard..." clang -O2 -target bpf -c xdp_wg_mtu_optimizer.c -o xdp_wg_mtu_optimizer.o \ -I/usr/include/bpf -I/usr/include/ \ -Wno-unused-function -D__TARGET_ARCH_arm64 # Verificar se a compilação foi bem-sucedida if [ $? -ne 0 ]; then echo "ERRO: Falha na compilação do programa XDP de otimização para WireGuard" exit 1 fi # Implantar o programa XDP na interface WireGuard echo "Implantando programa XDP na interface wg0..." ip link set dev wg0 xdp object xdp_wg_mtu_optimizer.o verbose # Verificar se carregou corretamente if [ $? -eq 0 ]; then echo "Programa XDP de otimização para WireGuard carregado com sucesso" else echo "ERRO: Falha ao carregar programa XDP na interface wg0" echo "Tentando adicionar o programa em modo 'generic' (menos eficiente, mas mais compatível)..." ip link set dev wg0 xdp object xdp_wg_mtu_optimizer.o section xdp verbose mode generic if [ $? -eq 0 ]; then echo "Programa XDP carregado em modo generic com sucesso" else echo "ERRO: Falha ao carregar programa XDP mesmo em modo generic" exit 1 fi fi # Configurar MTU eficiente para WireGuard echo "Configurando MTU otimizado para interface WireGuard..." ip link set dev wg0 mtu 1420 # Configurar ajustes do kernel para melhorar fragmentação IP e PMTUD echo "Aplicando ajustes de kernel para otimização de MTU..." sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.tcp_mtu_probing=1 sysctl -w net.ipv4.tcp_base_mss=1024 # Exibir informações echo "" echo "=== Otimização de MTU para WireGuard ativa ===" ip link show dev wg0 | grep -E 'mtu|xdp' echo "" echo "Para monitorar estatísticas: bpftool map dump name mtu_stats_map"