## No servidor
1. Instalar o pacote no servidor online.
```
apt install wireguard
```
2. Vá em /etc/wireguard/ e gere o par de chaves:
```
wg genkey | sudo teee /etc/wireguard/private.key
```
3. Atribua permissão para o arquivo:
```
chmod go= /etc/wireguard/private.key
```
4. Precisamos agora gerar uma chave publica a partir da chave privada:
```
cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
```
5. Agora é necessário criar um arquivo de configuração que pode ser chamado de wireguard.conf:
```shell
vi /etc/wireguard/wireguard.conf
[interface]
Address = 192.168.249.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -f nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -f nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = HGYUHUHSHU== <private.key-server>
[Peer]
PublicKey = <public.key-client>
AllowedIps = 192.168.249.2/32
```
6. Edite o arquivo /etc/sysctl.conf e descomente:
```
net.ipv4.ip_forward=1
```
7. Inicialize o Wireguard:
```
# wireguard é nomedoarquivo.
wg-quick up wireguard
```
8. Veja o status da conexão:
```
wg show
```
9. Habilitar o wireguard na inicialização:
```
# wireguard é nomedoarquivo.
systemctl enable wg-quick@wireguard
```
10. Não esqueça de liberar a porta 51820/udp.
### No Cliente
```
apt install wireguard
```
```
wg genkey | sudo teee /etc/wireguard/private.key
```
```
chmod go= /etc/wireguard/private.key
```
```shell
vi /etc/wireguard/wireguard.conf
[Interface]
Address = 192.168.249.2/24
PrivateKey = <private.key-client>
[Peer]
PublicKey = <public.key-server>
AllowedIps =
Endpoint = ipdoserver:51820
PersistentKeepalive=15
```
```
wg-quick up wireguard
```
```
wg show
```
```
systemctl enable wg-quick@wireguard
```