
Docker IPsec VPN Server — Updated!
Servidor VPN IPsec baseado em Docker com suporte a IPsec/L2TP, IPsec Cisco e IKEv2, com geração automática de credenciais e configuração de clientes multiplataforma.
English | 简体中文 | 繁體中文 | Русский
Servidor VPN IPsec no Docker
Imagem Docker para executar um servidor VPN IPsec, com IPsec/L2TP, Cisco IPsec e IKEv2.
Baseada em Alpine 3.23 ou Debian 12 com Libreswan (software de VPN IPsec) e xl2tpd (daemon L2TP).
Uma VPN IPsec criptografa o seu tráfego de rede, de modo que ninguém entre você e o servidor VPN possa interceptar os seus dados enquanto eles trafegam pela Internet. Isso é especialmente útil ao usar redes não seguras, por exemplo, em cafeterias, aeroportos ou quartos de hotel.
Recursos:
- Gera automaticamente as credenciais VPN e a configuração IKEv2 na primeira inicialização
- Suporta IKEv2 com cifras fortes e rápidas (por exemplo, AES-GCM)
- Gera perfis VPN para configurar automaticamente dispositivos iOS, macOS e Android
- Suporta Windows, macOS, iOS, Android, Chrome OS e Linux como clientes VPN
- Inclui um script auxiliar para gerenciar usuários e certificados IKEv2
- Compilada e publicada automaticamente via GitHub Actions
- Dados persistentes via um volume Docker
- Multi-arquitetura:
linux/amd64,linux/arm64,linux/arm/v7
Também disponível:
- VPN: IPsec sem Docker, WireGuard, OpenVPN, Headscale
- IA: Self-Hosted AI Stack para LLMs locais, chat, RAG, voz e ferramentas de IA
📘 Interessado em IA auto-hospedada? The Self-Hosted AI Builder’s Guide é um guia prático para construir, proteger e operar a sua própria pilha de IA privada.
Início rápido
Use este comando para configurar um servidor VPN IPsec no Docker:
docker run \
--name ipsec-vpn-server \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server
Seus dados de login da VPN serão gerados aleatoriamente. Consulte Recuperar dados de login da VPN.
Como alternativa, você pode configurar uma VPN IPsec sem Docker. Para saber mais sobre como usar esta imagem, leia as seções abaixo.
Comunidade
- 📬 Receba atualizações do projeto e guias de implantação gratuitos (1–2 e-mails/mês)
- 💬 Participe da comunidade r/selfhostedstack para discussões
- ⭐ Dê uma estrela ao repositório se achar útil — isso ajuda outras pessoas a descobri-lo
Requisitos
- Um servidor Linux com um endereço IP público ou nome DNS
- Docker instalado
- Portas da VPN abertas no seu firewall (UDP 500 e 4500)
- Você também pode usar o Podman para executar esta imagem, após criar um alias para
docker
Nota: Usuários avançados podem usar esta imagem no macOS com o Docker for Mac. Antes de usar o modo IPsec/L2TP, talvez seja necessário reiniciar o contêiner uma vez com docker restart ipsec-vpn-server. Esta imagem não é compatível com o Docker for Windows.
Download
Obtenha a build confiável do registro do Docker Hub:
docker pull hwdsl2/ipsec-vpn-server
Como alternativa, você pode baixar do Quay.io:
docker pull quay.io/hwdsl2/ipsec-vpn-server
docker image tag quay.io/hwdsl2/ipsec-vpn-server hwdsl2/ipsec-vpn-server
Plataformas suportadas: linux/amd64, linux/arm64 e linux/arm/v7.
Utilizadores avançados podem compilar a partir do código-fonte no GitHub.
Comparação de imagens
Estão disponíveis duas imagens pré-compiladas. A imagem padrão baseada em Alpine tem apenas ~19 MB.
| Baseada em Alpine | Baseada em Debian | |
|---|---|---|
| Nome da imagem | hwdsl2/ipsec-vpn-server | hwdsl2/ipsec-vpn-server:debian |
| Tamanho comprimido | ~ 19 MB | ~ 62 MB |
| Imagem base | Alpine Linux 3.23 | Debian Linux 12 |
| Plataformas | amd64, arm64, arm/v7 | amd64, arm64, arm/v7 |
| Versão do Libreswan | 5.4.1 | 5.4.1 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
Nota: Para utilizar a imagem baseada em Debian, substitua cada hwdsl2/ipsec-vpn-server por hwdsl2/ipsec-vpn-server:debian neste README. Estas imagens não são atualmente compatíveis com sistemas Synology NAS.
Quero utilizar a versão mais antiga do Libreswan 4.
Geralmente recomenda-se utilizar a versão mais recente do Libreswan 5, que é a versão padrão neste projeto. No entanto, se quiser utilizar a versão mais antiga do Libreswan 4, pode compilar a imagem Docker a partir do código-fonte:
git clone https://github.com/hwdsl2/docker-ipsec-vpn-server
cd docker-ipsec-vpn-server
# Specify Libreswan version 4
sed -i 's/SWAN_VER=5\..*/SWAN_VER=4.15/' Dockerfile Dockerfile.debian
# To build Alpine-based image
docker build -t hwdsl2/ipsec-vpn-server .
# To build Debian-based image
docker build -f Dockerfile.debian -t hwdsl2/ipsec-vpn-server:debian .
Como usar esta imagem
Variáveis de ambiente
Nota: Todas as variáveis desta imagem são opcionais, o que significa que você não precisa digitar nenhuma variável e pode ter um servidor VPN IPsec pronto para uso! Para isso, crie um arquivo env vazio usando touch vpn.env e pule para a próxima seção.
Esta imagem Docker usa as seguintes variáveis, que podem ser declaradas em um arquivo env (veja exemplo):
VPN_IPSEC_PSK=your_ipsec_pre_shared_key
VPN_USER=your_vpn_username
VPN_PASSWORD=your_vpn_password
Isso criará uma conta de usuário para login VPN, que pode ser usada pelos seus múltiplos dispositivos*. O IPsec PSK (chave pré-compartilhada) é especificado pela variável de ambiente VPN_IPSEC_PSK. O nome de usuário VPN é definido em VPN_USER, e a senha VPN é especificada por VPN_PASSWORD.