homelab-wireguard-vpn
Ajuda seu agente a configurar uma VPN WireGuard para acesso remoto à sua rede doméstica. Permite decidir entre túnel dividido ou completo.
O que ela faz
Configura um servidor de VPN WireGuard para acessar sua rede doméstica de qualquer lugar. Ele permite criar chaves de segurança e definir como o tráfego da internet será roteado.
Quando usar
- ✓Configurar acesso remoto à sua rede doméstica.
- ✓Decidir se todo o tráfego deve passar pela VPN ou apenas o tráfego da rede doméstica.
- ✓Gerar chaves de segurança para conectar novos dispositivos.
Exemplo do que pedir para a IA
“Configure um servidor WireGuard na minha Raspberry Pi e gere as chaves para meu celular.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O WireGuard cria um túnel seguro e criptografado entre seus dispositivos e sua rede doméstica. Cada dispositivo tem um par de chaves (pública e privada) para autenticação, e o servidor sabe quais chaves de clientes ele deve aceitar.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill homelab-wireguard-vpnOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/homelab-wireguard-vpn/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Homelab WireGuard VPN
WireGuard é um protocolo VPN rápido e moderno. É a escolha certa para acesso remoto a uma rede doméstica — mais simples de configurar que o OpenVPN e mais rápido que a maioria das alternativas.
Todos os exemplos de configuração mostram setups comuns. Revise cada comando — especialmente as regras de encaminhamento do iptables e as permissões dos arquivos de chave — antes de aplicá-los ao seu sistema, e faça as alterações durante uma janela de manutenção.
Quando Usar
- Configurar um servidor WireGuard em um Raspberry Pi, host Linux, pfSense ou roteador
- Gerar pares de chaves WireGuard e escrever arquivos de configuração de peer
- Configurar acesso remoto de um telefone ou laptop a uma rede doméstica
- Explicar split tunneling (rotear apenas tráfego doméstico) vs full tunnel (rotear todo o tráfego)
- Solucionar problemas de conexões WireGuard que não sobem
- Automatizar a geração de configuração de peer para múltiplos clientes
Como o WireGuard Funciona
Your phone (WireGuard client)
│
│ Encrypted UDP tunnel (port 51820)
│
Your home router (WireGuard server — needs a public IP or DDNS)
│
Your home network (192.168.1.0/24, NAS, Pi, etc.)
Every device has a keypair (public + private key).
The server knows each client's public key.
The client knows the server's public key + endpoint (IP:port).
Traffic is encrypted end-to-end with no central server or certificate authority.
Configuração do Servidor (Linux)
# Install WireGuard
sudo apt update && sudo apt install wireguard -y
# Generate server keypair — create files with private permissions from the start
sudo mkdir -p /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server_private.key'
sudo sh -c 'wg pubkey < /etc/wireguard/server_private.key > /etc/wireguard/server_public.key'
# Write server config — substitute the actual private key value
# Do not store private keys in version control or share them
sudo tee /etc/wireguard/wg0.conf << 'EOF'
[Interface]
Address = 10.8.0.1/24 # VPN subnet — server gets .1
ListenPort = 51820
PrivateKey = <paste_server_private_key_here>
# Scoped forwarding rules: allow VPN traffic in/out, not a blanket FORWARD ACCEPT
PostUp = iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
PostUp = iptables -A FORWARD -i eth0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -o eth0 -j ACCEPT
PostDown = iptables -D FORWARD -i eth0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# Phone — replace with the actual phone public key
PublicKey = <phone_public_key>
AllowedIPs = 10.8.0.2/32
[Peer]
# Laptop — replace with the actual laptop public key
PublicKey = <laptop_public_key>
AllowedIPs = 10.8.0.3/32
EOF
sudo chmod 600 /etc/wireguard/wg0.conf
# Replace eth0 with your actual outbound interface name
# Check with: ip route show default
# Enable IP forwarding (required for routing traffic through the server)
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
# Start WireGuard and enable on boot
sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
Configuração do Cliente
# Generate a unique keypair for each client device
# Run on the client, or on the server and transfer the private key securely — never in plaintext
umask 077
wg genkey | tee phone_private.key | wg pubkey > phone_public.key
# Client config file (phone_wg0.conf):
[Interface]
PrivateKey = <phone_private_key>
Address = 10.8.0.2/32
DNS = 192.168.1.2 # Optional: use Pi-hole for DNS over the tunnel
[Peer]
PublicKey = <server_public_key>
Endpoint = your-home-ip.ddns.net:51820 # Your public IP or DDNS hostname
AllowedIPs = 192.168.1.0/24 # Split tunnel: only home network traffic
# AllowedIPs = 0.0.0.0/0, ::/0 # Full tunnel: all traffic through VPN
PersistentKeepalive = 25 # Keep NAT hole open (required for mobile clients)
Split Tunnel vs Full Tunnel
# Split tunnel: AllowedIPs = 192.168.1.0/24
Apenas o tráfego destinado à sua rede doméstica passa pela VPN.
O tráfego da Internet (YouTube, Spotify) vai direto — melhor desempenho em dispositivos móveis.
Ideal para: "Eu só quero acessar meu NAS e Pi de qualquer lugar."
# Full tunnel: AllowedIPs = 0.0.0.0/0, ::/0
TODO o tráfego passa pela sua conexão de internet doméstica.
Útil para: usar o DNS doméstico/bloqueio de anúncios do Pi-hole.
…
Perguntas frequentes
O que é WireGuard?
WireGuard é um protocolo de VPN moderno, rápido e simples de configurar, ideal para acesso remoto seguro à sua rede doméstica.
Qual a diferença entre túnel dividido (split tunnel) e túnel completo (full tunnel)?
Túnel dividido envia apenas o tráfego da sua rede doméstica pela VPN, enquanto o túnel completo envia todo o seu tráfego de internet pela VPN.
Preciso de um IP público na minha casa?
Sim, o servidor WireGuard precisa ser acessível pela internet. Um IP público fixo ou um serviço de DNS dinâmico (DDNS) é necessário.
Detalhes
Descrição original do autor
WireGuard VPN server setup, peer configuration, key generation, split tunneling vs full tunnel routing, and remote access to a home network from mobile and laptop clients. Use when setting up WireGuard for remote access to a home network, or deciding between split and full tunnel routing.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #210
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
template-skill
Este é um modelo genérico para novas habilidades. Ele precisa de uma descrição específica para ser útil.
anthropics/skills
shipping-and-launch
Prepara seu código para ser lançado em produção com segurança. Ajuda a garantir que tudo esteja pronto, monitorado e com um plano de volta.
addyosmani/agent-skills
using-agent-skills
Faz seu agente descobrir e usar outras habilidades. É útil para decidir qual ferramenta ou fluxo de trabalho usar para uma tarefa específica.
addyosmani/agent-skills