
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](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md) | [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md) | [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md) | [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md)
# Servidor VPN IPsec no Docker
[](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions/workflows/main-alpine.yml) [](https://github.com/hwdsl2/docker-ipsec-vpn-server/stargazers) [](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/) [](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/)
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](https://libreswan.org) (software de VPN IPsec) e [xl2tpd](https://github.com/xelerance/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](https://github.com/hwdsl2/docker-ipsec-vpn-server/actions)
- Dados persistentes via um volume Docker
- Multi-arquitetura: `linux/amd64`, `linux/arm64`, `linux/arm/v7`
**Também disponível:**
- VPN: [IPsec sem Docker](https://github.com/hwdsl2/setup-ipsec-vpn), [WireGuard](https://github.com/hwdsl2/docker-wireguard), [OpenVPN](https://github.com/hwdsl2/docker-openvpn), [Headscale](https://github.com/hwdsl2/docker-headscale)
- IA: [Self-Hosted AI Stack](https://github.com/hwdsl2/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](https://books2read.com/aiguide?store=amazon) é 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:
```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
```
Seus dados de login da VPN serão gerados aleatoriamente. Consulte [Recuperar dados de login da VPN](#retrieve-vpn-login-details).
Como alternativa, você pode [configurar uma VPN IPsec sem Docker](https://github.com/hwdsl2/setup-ipsec-vpn). 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](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1–2 e-mails/mês)
- 💬 Participe da comunidade [r/selfhostedstack](https://www.reddit.com/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](https://docs.podman.io) 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](https://docs.docker.com/desktop/setup/install/mac-install/). 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](https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/):
```bash
docker pull hwdsl2/ipsec-vpn-server
```
Como alternativa, você pode baixar do [Quay.io](https://quay.io/repository/hwdsl2/ipsec-vpn-server):
```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é-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.
<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 quiser 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 .
```
</details>
## 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](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/vpn.env.example)):
```
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[\*](#important-notes). 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`.
Usuários VPN adicionais são suportados, e podem ser opcionalmente declarados no seu arquivo `env` assim. Nomes de usuário e senhas devem ser separados por espaços, e nomes de usuário não podem conter duplicatas. Todos os usuários VPN compartilharão o mesmo IPsec PSK.
```
VPN_ADDL_USERS=additional_username_1 additional_username_2
VPN_ADDL_PASSWORDS=additional_password_1 additional_password_2
```
As variáveis acima são apenas para os modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec"). Para IKEv2, consulte [Configurar e usar a VPN IKEv2](#configure-and-use-ikev2-vpn).
> [!IMPORTANT]
> No seu arquivo `env`, escreva os valores sem aspas ou espaços ao redor do `=`. Os valores não devem conter `\`, `"` ou `'`. Uma PSK IPsec segura deve consistir em pelo menos 20 caracteres aleatórios.
**Nota:** Se você modificar o arquivo `env` depois que o contêiner Docker já foi criado, você deve remover e recriar o contêiner para que as alterações tenham efeito. Consulte [Atualizar imagem Docker](#update-docker-image).
### Variáveis de ambiente adicionais
Usuários avançados podem opcionalmente especificar um nome DNS, nome do cliente e/ou servidores DNS personalizados.
<details>
<summary>
Saiba como especificar um nome DNS, nome do cliente e/ou servidores DNS personalizados.
</summary>
Usuários avançados podem opcionalmente especificar um nome DNS para o endereço do servidor IKEv2. O nome DNS deve ser um nome de domínio totalmente qualificado (FQDN). Exemplo:
```
VPN_DNS_NAME=vpn.example.com
```
Você pode especificar um nome para o primeiro cliente IKEv2. Use apenas uma palavra, sem caracteres especiais exceto `-` e `_`. O padrão é `vpnclient` se não for especificado.
```
VPN_CLIENT_NAME=your_client_name
```
Por padrão, os clientes são configurados para usar o [Google Public DNS](https://developers.google.com/speed/public-dns/) quando a VPN está ativa. Você pode especificar servidor(es) DNS personalizado(s) para todos os modos de VPN. Exemplo:
```
VPN_DNS_SRV1=1.1.1.1
VPN_DNS_SRV2=1.0.0.1
```
Para mais detalhes e uma lista de alguns provedores de DNS públicos populares, consulte [Use alternative DNS servers](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).
Por padrão, nenhuma senha é necessária ao importar a configuração do cliente IKEv2. Você pode optar por proteger os arquivos de configuração do cliente usando uma senha aleatória.
```
VPN_PROTECT_CONFIG=yes
```
**Nota:** As variáveis acima não têm efeito para o modo IKEv2, se o IKEv2 já estiver configurado no contêiner Docker. Neste caso, você pode remover o IKEv2 e configurá-lo novamente usando opções personalizadas. Consulte [Configurar e usar VPN IKEv2](#configure-and-use-ikev2-vpn).
</details>
### Iniciar o servidor VPN IPsec
Crie um novo contêiner Docker a partir desta imagem (substitua `./vpn.env` pelo seu próprio arquivo `env`):
```bash
docker run \
--name ipsec-vpn-server \
--env-file ./vpn.env \
--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
```
Neste comando, usamos a opção `-v` do `docker run` para criar um novo [volume Docker](https://docs.docker.com/storage/volumes/) chamado `ikev2-vpn-data` e montá-lo em `/etc/ipsec.d` no contêiner. Dados relacionados ao IKEv2, como certificados e chaves, persistirão no volume e, posteriormente, quando você precisar recriar o contêiner Docker, basta especificar o mesmo volume novamente.
Recomenda-se habilitar o IKEv2 ao usar esta imagem. No entanto, se você preferir não habilitar o IKEv2 e usar apenas os modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec") para se conectar à VPN, remova a primeira opção `-v` do comando `docker run` acima.
**Nota:** Usuários avançados também podem [executar sem o modo privilegiado](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode).
### Recuperar os detalhes de login da VPN
Se você não especificou um arquivo `env` no comando `docker run` acima, `VPN_USER` será definido como `vpnuser` por padrão, e tanto `VPN_IPSEC_PSK` quanto `VPN_PASSWORD` serão gerados aleatoriamente. Para recuperá-los, visualize os logs do contêiner:
```bash
docker logs ipsec-vpn-server
```
Procure por estas linhas na saída:
```
Connect to your new VPN with these details:
Server IP: your_vpn_server_ip
IPsec PSK: your_ipsec_pre_shared_key
Username: your_vpn_username
Password: your_vpn_password
```
A saída também incluirá detalhes para o modo IKEv2, se ativado.
(Opcional) Faça backup dos detalhes de login da VPN gerados (se houver) para o diretório atual:
```bash
docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./
```
## Usando docker-compose
```bash
cp vpn.env.example vpn.env
# Edit vpn.env if needed, then:
docker compose up -d
docker logs ipsec-vpn-server
```
Exemplo de `docker-compose.yml` (já incluído):
```yaml
volumes:
ikev2-vpn-data:
services:
vpn:
image: hwdsl2/ipsec-vpn-server
restart: always
env_file:
- ./vpn.env
ports:
- "500:500/udp"
- "4500:4500/udp"
privileged: true
hostname: ipsec-vpn-server
container_name: ipsec-vpn-server
volumes:
- ikev2-vpn-data:/etc/ipsec.d
- /lib/modules:/lib/modules:ro
```
## Próximos passos
*Leia isto em outros idiomas: [English](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README.md#next-steps), [简体中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh.md#下一步), [繁體中文](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-zh-Hant.md#下一步), [Русский](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/README-ru.md#следующие-шаги).*
Configure seu computador ou dispositivo para usar a VPN. Consulte:
**[Configurar e usar a VPN IKEv2 (recomendado)](#configure-and-use-ikev2-vpn)**
**[Configurar clientes VPN IPsec/L2TP](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md)**
**[Configurar clientes VPN IPsec/XAuth ("Cisco IPsec")](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md)**
**Leia o [📘 livro sobre VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/vpn-book.md) para acessar [conteúdo extra](https://ko-fi.com/post/Support-this-project-and-get-access-to-supporter-o-O5O7FVF8J).**
Aproveite sua própria VPN! :sparkles::tada::rocket::sparkles:
## Notas importantes
**Usuários do Windows**: Para o modo IPsec/L2TP, é necessária uma [alteração única no registro](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients.md#windows-error-809) se o servidor ou cliente VPN estiver atrás de NAT (por exemplo, roteador doméstico).
A mesma conta VPN pode ser usada por vários dispositivos. No entanto, devido a uma limitação do IPsec/L2TP, se você deseja conectar vários dispositivos atrás do mesmo NAT (por exemplo, roteador doméstico), você deve usar o modo [IKEv2](#configure-and-use-ikev2-vpn) ou [IPsec/XAuth](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-xauth.md).
Se você deseja adicionar, editar ou remover contas de usuário VPN, primeiro atualize seu arquivo `env`, depois você deve remover e recriar o contêiner Docker usando as instruções da [próxima seção](#update-docker-image). Usuários avançados podem [montar por bind](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file) o arquivo `env`.
Para servidores com firewall externo (por exemplo, [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)/[GCE](https://cloud.google.com/vpc/docs/firewalls)), abra as portas UDP 500 e 4500 para a VPN. Usuários do Aliyun, vejam [#433](https://github.com/hwdsl2/setup-ipsec-vpn/issues/433).
Os clientes estão configurados para usar o [Google Public DNS](https://developers.google.com/speed/public-dns/) quando a VPN estiver ativa. Se outro provedor de DNS for preferido, leia [esta seção](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers).
## Atualizar imagem Docker
Para atualizar a imagem e o contêiner Docker, primeiro [baixe](#download) a versão mais recente:
```bash
docker pull hwdsl2/ipsec-vpn-server
```
Se a imagem Docker já estiver atualizada, você deverá ver:
```
Status: Image is up to date for hwdsl2/ipsec-vpn-server:latest
```
Caso contrário, ele baixará a versão mais recente. Para atualizar seu contêiner Docker, primeiro anote seus [detalhes de login da VPN](#retrieve-vpn-login-details). Em seguida, remova o contêiner Docker com `docker rm -f ipsec-vpn-server`. Por fim, recrie-o usando as instruções de [Como usar esta imagem](#how-to-use-this-image).
## Configurar e usar a VPN IKEv2
O modo IKEv2 tem melhorias em relação ao IPsec/L2TP e ao IPsec/XAuth ("Cisco IPsec"), e não requer uma PSK IPsec, nome de usuário ou senha. Leia mais [aqui](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md).
Primeiro, verifique os logs do contêiner para visualizar detalhes do IKEv2:
```bash
docker logs ipsec-vpn-server
```
**Nota:** Se você não conseguir encontrar os detalhes do IKEv2, o IKEv2 pode não estar habilitado no contêiner. Tente atualizar a imagem e o contêiner do Docker usando as instruções da seção [Atualizar imagem do Docker](#update-docker-image).
Durante a configuração do IKEv2, um cliente IKEv2 (com o nome padrão `vpnclient`) é criado, com sua configuração exportada para `/etc/ipsec.d` **dentro do contêiner**. Para copiar o(s) arquivo(s) de configuração para o host do Docker:
```bash
# Check contents of /etc/ipsec.d in the container
docker exec -it ipsec-vpn-server ls -l /etc/ipsec.d
# Example: Copy a client config file from the container
# to the current directory on the Docker host
docker cp ipsec-vpn-server:/etc/ipsec.d/vpnclient.p12 ./
```
**Próximos passos:** [Configure seus dispositivos](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md) para usar a VPN IKEv2.
<details>
<summary>
Saiba como gerenciar clientes IKEv2.
</summary>
Você pode gerenciar clientes IKEv2 usando o script auxiliar. Veja os exemplos abaixo. Para personalizar as opções do cliente, execute o script sem argumentos.
```bash
# Add a new client (using default options)
docker exec -it ipsec-vpn-server ikev2.sh --addclient [client name]
# Export configuration for an existing client
docker exec -it ipsec-vpn-server ikev2.sh --exportclient [client name]
# List existing clients
docker exec -it ipsec-vpn-server ikev2.sh --listclients
# Show usage
docker exec -it ipsec-vpn-server ikev2.sh -h
```
**Nota:** Se você encontrar o erro "executable file not found", substitua `ikev2.sh` acima por `/opt/src/ikev2.sh`.
</details>
<details>
<summary>
Saiba como alterar o endereço do servidor IKEv2.
</summary>
Em certas circunstâncias, você pode precisar alterar o endereço do servidor IKEv2. Por exemplo, para mudar para usar um nome DNS, ou após a alteração do IP do servidor. Para alterar o endereço do servidor IKEv2, primeiro [abra um shell bash dentro do contêiner](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container), depois [siga estas instruções](https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/ikev2-howto.md#change-ikev2-server-address). Observe que os logs do contêiner não mostrarão o novo endereço do servidor IKEv2 até que você reinicie o contêiner Docker.
</details>
<details>
<summary>
Remova o IKEv2 e configure-o novamente usando opções personalizadas.
</summary>
Em certas circunstâncias, você pode precisar remover o IKEv2 e configurá-lo novamente usando opções personalizadas.
**Aviso:** Toda a configuração do IKEv2, incluindo certificados e chaves, será **permanentemente excluída**. Isso **não pode ser desfeito**!
**Opção 1:** Remova o IKEv2 e configure-o novamente usando o script auxiliar.
Observe que isso substituirá as variáveis que você especificou no arquivo `env`, como `VPN_DNS_NAME` e `VPN_CLIENT_NAME`, e os logs do contêiner não mostrarão mais informações atualizadas para o IKEv2.
```bash
# Remove IKEv2 and delete all IKEv2 configuration
docker exec -it ipsec-vpn-server ikev2.sh --removeikev2
# Set up IKEv2 again using custom options
docker exec -it ipsec-vpn-server ikev2.sh
```
**Opção 2:** Remover `ikev2-vpn-data` e recriar o contêiner.
1. Anote todos os seus [detalhes de login da VPN](#retrieve-vpn-login-details).
1. Remova o contêiner Docker: `docker rm -f ipsec-vpn-server`.
1. Remova o volume `ikev2-vpn-data`: `docker volume rm ikev2-vpn-data`.
1. Atualize seu arquivo `env` e adicione opções personalizadas de IKEv2, como `VPN_DNS_NAME` e `VPN_CLIENT_NAME`, depois recrie o contêiner. Consulte [Como usar esta imagem](#how-to-use-this-image).
</details>
## Uso avançado
Consulte [Uso avançado](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md).
- [Usar servidores DNS alternativos](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#use-alternative-dns-servers)
- [Executar sem modo privilegiado](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#run-without-privileged-mode)
- [Selecionar modos de VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#select-vpn-modes)
- [Ativar sigilo perfeito futuro (PFS) do IKEv2](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-ikev2-perfect-forward-secrecy)
- [Acessar outros contêineres no host Docker](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#access-other-containers-on-the-docker-host)
- [Especificar o IP público do servidor VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#specify-vpn-servers-public-ip)
- [Atribuir IPs estáticos aos clientes VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#assign-static-ips-to-vpn-clients)
- [Personalizar sub-redes da VPN](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#customize-vpn-subnets)
- [Suporte a IPv6](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#ipv6-support)
- [Split tunneling](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#split-tunneling)
- [Sobre o modo de rede do host](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#about-host-network-mode)
- [Ativar logs do Libreswan](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#enable-libreswan-logs)
- [Verificar o status do servidor](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#check-server-status)
- [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)
- [Shell Bash dentro do contêiner](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bash-shell-inside-container)
- [Montar o arquivo env via bind mount](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#bind-mount-the-env-file)
- [Implantar o controle de congestionamento Google BBR](https://gitlab.com/hwdsl2/docker-ipsec-vpn-server/-/blob/master/docs/advanced-usage.md#deploy-google-bbr-congestion-control)
## Detalhes técnicos
Há dois serviços em execução: `Libreswan (pluto)` para a VPN IPsec e `xl2tpd` para suporte a L2TP.
A configuração padrão de IPsec suporta:
* IPsec/L2TP com PSK
* IKEv1 com PSK e XAuth ("Cisco IPsec")
* IKEv2
Portas necessárias: `500/udp` e `4500/udp` (IPsec)
## Licença
**Nota:** Os componentes de software dentro da imagem pré-compilada (como Libreswan e xl2tpd) estão sob as respectivas licenças escolhidas por seus respectivos detentores de direitos autorais. Quanto a qualquer uso de imagem pré-compilada, é responsabilidade do usuário da imagem garantir que qualquer uso desta imagem esteja em conformidade com quaisquer licenças relevantes para todo o software contido nela.
Copyright (C) 2016-2026 [Lin Song](https://github.com/hwdsl2) [](https://www.linkedin.com/in/linsongui)
Baseado em [o trabalho de Thomas Sarlandie](https://github.com/sarfata/voodooprivacy) (Copyright 2012)
[](http://creativecommons.org/licenses/by-sa/3.0/)
Este trabalho está licenciado sob a [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/)
Atribuição necessária: inclua meu nome em qualquer derivado e me avise como você o melhorou!