Voltar às atualizações
UpdatedAug 8, 2026

Setup IPsec VPN — Updated!

Configuração automatizada de servidor VPN IPsec com suporte a IPsec/L2TP, Cisco IPsec e IKEv2. Inclui scripts auxiliares para gerenciamento de usuários e certificados, e gera perfis para clientes iOS, macOS, Android e Windows.

Compartilhar

Inglês | 简体中文 | 繁體中文 | 日本語 | Русский

Scripts de Configuração Automática do Servidor VPN IPsec

Build Status GitHub Stars Docker Stars Docker Pulls

Configure seu próprio servidor VPN IPsec em apenas alguns minutos, com IPsec/L2TP, Cisco IPsec e IKEv2.

Uma VPN IPsec criptografa o tráfego de rede, para 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.

Usaremos Libreswan como servidor IPsec e xl2tpd como provedor L2TP.

Recursos:

  • Configuração totalmente automatizada do servidor VPN IPsec, sem necessidade de entrada do usuário
  • 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 scripts auxiliares para gerenciar usuários e certificados VPN

Também disponível:

Início rápido

Primeiro, prepare seu servidor Linux* com um sistema operacional suportado instalado.

Use este comando de uma linha para configurar um servidor VPN IPsec:```bash wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

Os seus dados de login da VPN serão gerados aleatoriamente e exibidos quando terminar.

> [!TIP]
> Opcionalmente, instale [WireGuard](https://github.com/hwdsl2/wireguard-install), [OpenVPN](https://github.com/hwdsl2/openvpn-install) e/ou [Headscale](https://github.com/hwdsl2/headscale-install) no mesmo servidor.

<details>
<summary>
Veja o script em ação (gravação de terminal).
</summary>

**Nota:** Esta gravação é apenas para fins de demonstração. As credenciais VPN nesta gravação **NÃO** são válidas.

<p align="center"><img src="https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/docs/images/script-demo.svg"></p>
</details>
<details>
<summary>
Clique aqui se você não conseguir baixar.
</summary>

Você também pode usar `curl` para baixar:```bash
curl -fsSL https://get.vpnsetup.net -o vpn.sh && sudo sh vpn.sh

URLs de configuração alternativas:```bash https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/vpnsetup.sh https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/vpnsetup.sh

Se não conseguir baixar, abra [vpnsetup.sh](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/vpnsetup.sh), depois clique no botão `Raw` à direita. Pressione `Ctrl/Cmd+A` para selecionar tudo, `Ctrl/Cmd+C` para copiar e cole no seu editor favorito.
</details>

Uma [imagem Docker](https://github.com/hwdsl2/docker-ipsec-vpn-server) pré-construída também está disponível. Para outras opções e configuração do cliente, leia as seções abaixo.

\* Um servidor em nuvem, servidor virtual privado (VPS) ou servidor dedicado.

## Comunidade

- 📬 [Assine para receber atualizações do projeto](https://selfhostedstack.beehiiv.com/subscribe?utm_campaign=vpn) (1–2 e-mails/mês) — receba guias gratuitos de implantação de VPN e IA (PDF)
- 💬 Participe da comunidade [r/selfhostedstack](https://www.reddit.com/r/selfhostedstack/) para discussões
- ⭐ Dê uma estrela no repositório se achar útil — isso ajuda outras pessoas a descobri-lo

## Requisitos

Um servidor em nuvem, servidor virtual privado (VPS) ou servidor dedicado, com uma instalação de:

- Ubuntu 26.04, 24.04 or 22.04
- Debian 13, 12 or 11
- CentOS Stream 10 or 9
- Rocky Linux or AlmaLinux
- Oracle Linux

<details>
<summary>
Outras distribuições Linux suportadas.
</summary>

- Raspberry Pi OS (Raspbian)
- Kali Linux
- Alpine Linux
- Red Hat Enterprise Linux (RHEL)
</details>

Isso também inclui VMs Linux em nuvens públicas, como [DigitalOcean](https://blog.ls20.com/digitalocean), [Vultr](https://blog.ls20.com/vultr), [Linode](https://blog.ls20.com/linode), [OVH](https://www.ovhcloud.com/en/vps/) e [Microsoft Azure](https://azure.microsoft.com). Usuários de nuvens públicas também podem implantar usando [user data](https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#vpnsetup).

Implantação rápida em:

[![Implantar no Linode](https://assets.kitploit.com/production/public/readmes/647/14c2143c20d7c521b606f90a0cf1610d8bd96b3f6516f422d8ca848b879bb6fc.png)](https://cloud.linode.com/stackscripts/37239) &nbsp;[![Implantar no Azure](https://assets.kitploit.com/production/public/readmes/647/79c45f89c80fa35c65259790605f75fe6b65db10aacefa870a55784152a9d31e.png)](azure/README.md)

[**&raquo; Quero executar meu próprio VPN, mas não tenho um servidor para isso**](https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#gettingavps)

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 o VPN.

Uma [imagem Docker](https://github.com/hwdsl2/docker-ipsec-vpn-server) pré-construída também está disponível. Usuários avançados podem instalar em um [Raspberry Pi](https://www.raspberrypi.com). [[1]](https://elasticbyte.net/posts/setting-up-a-native-cisco-ipsec-vpn-server-using-a-raspberry-pi/) [[2]](https://www.stewright.me/2018/07/create-a-raspberry-pi-vpn-server-using-l2tpipsec/)

> [!WARNING]
> **NÃO** execute esses scripts no seu PC ou Mac! Eles devem ser usados apenas em um servidor!

## Instalação

Primeiro, atualize seu servidor com `sudo apt-get update && sudo apt-get dist-upgrade` (Ubuntu/Debian) ou `sudo yum update` e reinicie. Isso é opcional, mas recomendado.

Para instalar o VPN, escolha uma das seguintes opções:

**Opção 1:** Deixe o script gerar credenciais VPN aleatórias para você (serão exibidas ao final).```bash
wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

Opção 2: Edite o script e forneça suas próprias credenciais de VPN.```bash wget https://get.vpnsetup.net -O vpn.sh nano -w vpn.sh [Replace with your own values: YOUR_IPSEC_PSK, YOUR_USERNAME and YOUR_PASSWORD] sudo sh vpn.sh

> [!NOTE]
> Um PSK IPsec seguro deve consistir em pelo menos 20 caracteres aleatórios.

**Opção 3:** Defina suas credenciais VPN como variáveis de ambiente.```bash
# All values MUST be placed inside 'single quotes'
# DO NOT use these special characters within values: \ " '
wget https://get.vpnsetup.net -O vpn.sh
sudo VPN_IPSEC_PSK='your_ipsec_pre_shared_key' \
VPN_USER='your_vpn_username' \
VPN_PASSWORD='your_vpn_password' \
sh vpn.sh

[!TIP] Opcionalmente, instale WireGuard, OpenVPN e/ou Headscale no mesmo servidor. Se o seu servidor executa CentOS Stream, Rocky Linux ou AlmaLinux, instale primeiro o OpenVPN/WireGuard e depois o VPN IPsec.

Clique aqui se você não conseguir baixar.

Você também pode usar curl para baixar. Por exemplo:```bash curl -fL https://get.vpnsetup.net -o vpn.sh sudo sh vpn.sh

URLs de configuração alternativas:```bash
https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/vpnsetup.sh
https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/vpnsetup.sh

Se você não conseguir baixar, abra vpnsetup.sh, então clique no botão Raw à direita. Pressione Ctrl/Cmd+A para selecionar tudo, Ctrl/Cmd+C para copiar, e cole no seu editor favorito.

Quero instalar a versão 4 mais antiga do Libreswan.

Geralmente, é recomendado usar a versão 5 mais recente do Libreswan, que é a versão padrão deste projeto. No entanto, se você quiser instalar a versão 4 mais antiga do Libreswan:```bash wget https://get.vpnsetup.net -O vpn.sh sudo VPN_SWAN_VER=4.15 sh vpn.sh

**Nota:** Se o Libreswan versão 5 já estiver instalado, talvez seja necessário [Desinstalar a VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/uninstall.md) antes de instalar o Libreswan versão 4. Alternativamente, baixe o [script de atualização](#upgrade-libreswan), edite-o para especificar `SWAN_VER=4.15` e execute o script.
</details>

## Personalizar opções da VPN

### Usar servidores DNS alternativos

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. Ao instalar a VPN, você pode opcionalmente especificar servidores DNS personalizados para todos os modos VPN. Exemplo:```bash
sudo VPN_DNS_SRV1=1.1.1.1 VPN_DNS_SRV2=1.0.0.1 sh vpn.sh

Use VPN_DNS_SRV1 para especificar o servidor DNS primário e VPN_DNS_SRV2 para especificar o servidor DNS secundário (opcional).

Abaixo está uma lista de alguns provedores de DNS públicos populares para sua referência.

ProviderPrimary DNSSecondary DNSNotes
Google Public DNS8.8.8.88.8.4.4Padrão neste projeto
Cloudflare1.1.1.11.0.0.1Consulte também: Cloudflare para famílias
Quad99.9.9.9149.112.112.112Bloqueia domínios maliciosos
OpenDNS208.67.222.222208.67.220.220Bloqueia domínios de phishing, configurável.
CleanBrowsing185.228.168.9185.228.169.9Filtros de domínio disponíveis
NextDNSVariaVariaBloqueio de anúncios, plano gratuito disponível. Saiba mais.
Control DVariaVariaBloqueio de anúncios, configurável. Saiba mais.

Se você precisar alterar os servidores DNS após a configuração da VPN, consulte Uso avançado.

[!NOTE] Se o IKEv2 já estiver configurado no servidor, as variáveis acima não têm efeito no modo IKEv2. Nesse caso, para personalizar opções do IKEv2, como servidores DNS, você pode primeiro remover o IKEv2 e, em seguida, configurá-lo novamente usando sudo ikev2.sh.

Personalizar opções do IKEv2

Ao instalar a VPN, usuários avançados podem opcionalmente personalizar as opções do IKEv2.

Opção 1: Ignorar o IKEv2 durante a instalação da VPN e, em seguida, configurar o IKEv2 usando opções personalizadas.

Ao instalar a VPN, você pode ignorar o IKEv2 e instalar apenas os modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec"):```bash sudo VPN_SKIP_IKEV2=yes sh vpn.sh

(Opcional) Se você deseja especificar servidor(es) DNS personalizados para clientes VPN, defina `VPN_DNS_SRV1` e, opcionalmente, `VPN_DNS_SRV2`. Consulte [Usar servidores DNS alternativos](#use-alternative-dns-servers) para obter detalhes.

Depois disso, execute o script auxiliar do IKEv2 para configurar o IKEv2 interativamente usando opções personalizadas:```bash
sudo ikev2.sh

Você pode personalizar as seguintes opções: nome DNS do servidor VPN, nome e período de validade do primeiro cliente, servidor DNS para clientes VPN e se deve proteger com senha os arquivos de configuração do cliente.

Nota: A variável VPN_SKIP_IKEV2 não tem efeito se o IKEv2 já estiver configurado no servidor. Nesse caso, para personalizar as opções do IKEv2, você pode primeiro remover o IKEv2 e, em seguida, configurá-lo novamente usando sudo ikev2.sh.

Opção 2: Personalizar as opções do IKEv2 usando variáveis de ambiente.

Ao instalar a VPN, você pode 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:```bash sudo VPN_DNS_NAME='vpn.example.com' sh vpn.sh

Da mesma forma, você pode especificar um nome para o primeiro cliente IKEv2. O padrão é `vpnclient` se não for especificado.```bash
sudo VPN_CLIENT_NAME='your_client_name' sh vpn.sh

Por padrão, os clientes estão configurados para usar Google Public DNS quando a VPN está ativa. Você pode especificar servidor(es) DNS personalizado(s) para todos os modos de VPN. Exemplo:```bash sudo VPN_DNS_SRV1=1.1.1.1 VPN_DNS_SRV2=1.0.0.1 sh vpn.sh

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.```bash
sudo VPN_PROTECT_CONFIG=yes sh vpn.sh
Para referência: Lista de parâmetros IKEv1 e IKEv2.
IKEv1 parameter*Default valueCustomize (env variable)**
Endereço do servidor (nome DNS)-Não, mas você pode conectar usando um nome DNS
Endereço do servidor (IP público)Detecção automáticaVPN_PUBLIC_IP
Chave pré-compartilhada IPsecGeração automáticaVPN_IPSEC_PSK
Nome de usuário VPNvpnuserVPN_USER
Senha VPNGeração automáticaVPN_PASSWORD
Servidores DNS para clientesGoogle Public DNSVPN_DNS_SRV1, VPN_DNS_SRV2
Pular configuração do IKEv2nãoVPN_SKIP_IKEV2=yes

* Estes parâmetros IKEv1 são para os modos IPsec/L2TP e IPsec/XAuth ("Cisco IPsec").
** Defina estes como variáveis de ambiente ao executar vpn(setup).sh.

IKEv2 parameter*Default valueCustomize (env variable)**Customize (interactive)***
Endereço do servidor (nome DNS)-VPN_DNS_NAME
Endereço do servidor (IP público)Detecção automáticaVPN_PUBLIC_IP
Nome do primeiro clientevpnclientVPN_CLIENT_NAME
Servidores DNS para clientesGoogle Public DNSVPN_DNS_SRV1, VPN_DNS_SRV2
Proteger arquivos de configuração do clientenãoVPN_PROTECT_CONFIG=yes
Ativar/Desativar MOBIKEAtivar se suportado
Validade do certificado do cliente10 anos (120 meses)VPN_CLIENT_VALIDITY****
Validade do certificado da CA e do servidor10 anos (120 meses)
Nome do certificado da CAIKEv2 VPN CA
Tamanho da chave do certificado3072 bits

* Estes parâmetros IKEv2 são para o modo IKEv2.
** Defina estes como variáveis de ambiente ao executar vpn(setup).sh, ou ao configurar IKEv2 no modo automático (sudo ikev2.sh --auto).
*** Pode ser personalizado durante a configuração interativa do IKEv2 (sudo ikev2.sh). Consulte a opção 1 acima.
**** Use VPN_CLIENT_VALIDITY para especificar o período de validade do certificado do cliente em meses. Deve ser um número inteiro entre 1 e 120.

Além desses parâmetros, usuários avançados também podem personalizar sub-redes VPN durante a configuração da VPN.

Próximos passos

Leia isto em outros idiomas: English, 简体中文, 繁體中文, 日本語, Русский.

Coloque seu computador ou dispositivo para usar a VPN. Consulte:

Configure clientes VPN IKEv2 (recomendado)

Configure clientes VPN IPsec/L2TP

Configure clientes VPN IPsec/XAuth ("Cisco IPsec")

Leia 📖 VPN book para acessar conteúdo extra.

Aproveite sua própria VPN! ✨🎉🚀✨

Notas importantes

Usuários Windows: Para o modo IPsec/L2TP, é necessária uma alteração única no registro 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 ou IPsec/XAuth. Para visualizar ou atualizar contas de usuário VPN, consulte Gerenciar usuários VPN.

Para servidores com firewall externo (por exemplo, EC2/GCE), abra as portas UDP 500 e 4500 para a VPN. Usuários do Aliyun, consulte #433.

Os clientes são configurados para usar o Google Public DNS quando a VPN está ativa. Se outro provedor de DNS for preferido, consulte Uso avançado.

Usar o suporte do kernel pode melhorar o desempenho do IPsec/L2TP. Ele está disponível em todos os SO suportados. Usuários do Ubuntu devem instalar o pacote linux-modules-extra-$(uname -r) e executar service xl2tpd restart.

Os scripts farão backup dos arquivos de configuração existentes antes de fazer alterações, com o sufixo .old-date-time.

Atualizar Libreswan

Use este comando de uma linha para atualizar o Libreswan (changelog | anúncios) no seu servidor VPN.```bash wget https://get.vpnsetup.net/upg -O vpnup.sh && sudo sh vpnup.sh

<details>
<summary>
Clique aqui se não conseguir baixar.
</summary>

Você também pode usar `curl` para baixar:```bash
curl -fsSL https://get.vpnsetup.net/upg -o vpnup.sh && sudo sh vpnup.sh

URLs de atualização alternativas:```bash https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/vpnupgrade.sh https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/extras/vpnupgrade.sh

Se você não conseguir baixar, abra [vpnupgrade.sh](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/extras/vpnupgrade.sh) e clique no botão `Raw` à direita. Pressione `Ctrl/Cmd+A` para selecionar tudo, `Ctrl/Cmd+C` para copiar e cole no seu editor favorito.
</details>

A versão mais recente suportada do Libreswan é a `5.3.2`. Verifique a versão instalada: `ipsec --version`.

**Nota:** `xl2tpd` pode ser atualizado usando o gerenciador de pacotes do seu sistema, como `apt-get` no Ubuntu/Debian.

## Gerenciar usuários da VPN

Consulte [Gerenciar usuários da VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md).

- [Gerenciar usuários da VPN usando scripts auxiliares](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md)
- [Ver usuários da VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md)
- [Ver ou atualizar o IPsec PSK](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md)
- [Gerenciar manualmente os usuários da VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/manage-users.md)

## Uso avançado

Consulte [Uso avançado](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md).

- [Usar servidores DNS alternativos](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Alterações no nome DNS e no IP do servidor](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [VPN somente IKEv2](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Ativar o perfect forward secrecy do IKEv2](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [IPs e tráfego internos da VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Especificar o IP público do servidor VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Personalizar sub-redes VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Suporte a IPv6](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Encaminhamento de portas para clientes VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Split tunneling](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Acessar a sub-rede do servidor VPN](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Acessar clientes VPN a partir da sub-rede do servidor](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Modificar regras do IPTables](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)
- [Implantar o controle de congestionamento Google BBR](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/docs/advanced-usage.md)

## Desinstalar a VPN

Para desinstalar a VPN IPsec, execute o [script auxiliar](https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/blob/master/extras/vpnuninstall.sh):

> [!CAUTION]
> Este script auxiliar removerá a VPN IPsec do seu servidor. Toda a configuração VPN será **permanentemente excluída**, e Libreswan e xl2tpd serão removidos. Isso **não pode ser desfeito**!```bash
wget https://get.vpnsetup.net/unst -O unst.sh && sudo bash unst.sh
Clique aqui se não conseguir fazer o download.

Você também pode usar curl para baixar:```bash curl -fsSL https://get.vpnsetup.net/unst -o unst.sh && sudo bash unst.sh

URLs alternativas de script:```bash
https://github.com/hwdsl2/setup-ipsec-vpn/raw/master/extras/vpnuninstall.sh
https://gitlab.com/hwdsl2/setup-ipsec-vpn/-/raw/master/extras/vpnuninstall.sh

Para obter mais informações, consulte Desinstalar a VPN.

Feedback e Perguntas

Licença

Direitos autorais (C) 2014-2026 Lin Song Veja meu perfil no LinkedIn
Baseado no trabalho de Thomas Sarlandie (Direitos autorais 2012)

Licença Creative Commons
Este trabalho está licenciado sob a Licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada
Atribuição necessária: inclua meu nome em qualquer obra derivada e me avise como você a melhorou!

Categorias