
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.
Baseado em Alpine 3.23 ou Debian 12 com Libreswan (software VPN IPsec) e xl2tpd (daemon L2TP).
Uma VPN IPsec criptografa o tráfego de rede, de modo que ninguém entre você e o servidor VPN possa espionar 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 credenciais VPN e 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
- Compilado e publicado automaticamente via GitHub Actions
- Dados persistentes via 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
- 📚 Livros: The Self-Hosted AI Builder’s Guide, Privacy Tools in the Age of AI
Início rápido
Use este comando para configurar um servidor VPN IPsec no Docker:```bash
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
Os seus dados de login da VPN serão gerados aleatoriamente. Consulte [Recuperar dados de login da VPN](#retrieve-vpn-login-details).
Em alternativa, pode [configurar uma VPN IPsec sem Docker](https://github.com/hwdsl2/setup-ipsec-vpn). Para saber mais sobre como utilizar esta imagem, leia as secções abaixo.
## Comunidade
- 📬 [Subscreva para receber atualizações do projeto](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1–2 e-mails/mês) — obtenha guias gratuitos de implantação de VPN e IA (PDF)
- 💬 Junte-se à comunidade [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/) para discussões
- ⭐ Marque o repositório com uma estrela se o 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 VPN abertas no seu firewall (UDP 500 e 4500)
- Também pode utilizar [Podman](https://docs.podman.io) para executar esta imagem, após criar um alias para `docker`
**Nota:** Utilizadores avançados podem usar esta imagem em macOS com [Docker for Mac](https://docs.docker.com/desktop/setup/install/mac-install/). Antes de utilizar o modo IPsec/L2TP, poderá ser necessário reiniciar o contentor uma vez com `docker restart ipsec-vpn-server`. Esta imagem não suporta Docker for Windows.
## Download
Obtenha a compilação fiável a partir do [registo do Docker Hub](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/):```bash
docker pull hwdsl2/ipsec-vpn-server
Alternativamente, você pode baixar do Quay.io:```bash 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](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#build-from-source-code) no GitHub.
### Comparação de imagens
Estão disponíveis duas imagens pré-construídas. 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 compactado| ~ 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 | 5.4 |
| IPsec/L2TP | ✅ | ✅ |
| Cisco IPsec | ✅ | ✅ |
| IKEv2 | ✅ | ✅ |
**Nota:** Para utilizar a imagem baseada em Debian, substitua todas as ocorrências de `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.
<details>
<summary>
Quero utilizar a versão mais antiga do Libreswan 4.
</summary>
Geralmente, recomenda-se utilizar a versão mais recente do [Libreswan](https://libreswan.org/) 5, que é a versão padrão neste projeto. No entanto, se pretender utilizar a versão mais antiga do Libreswan 4, pode compilar a imagem Docker a partir do código-fonte:```bash
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.