WireGuard на Ubuntu в AWS
Настройка VPN с помощью WireGuard на Ubuntu сервере, развернутом в AWS. Включает шаги для NAT, Elastic IP и AWS Security Group.
✅ Шаг 1: Подготовка сервера
sudo apt update sudo apt install wireguard -y
Создание ключей:
sudo mkdir -p /etc/wireguard cd /etc/wireguard sudo wg genkey | sudo tee privatekey | wg pubkey | sudo tee publickey sudo cat privatekey sudo cat publickey
✅ Шаг 2: Конфигурация сервера
sudo nano /etc/wireguard/wg0.conf
Пример:
[Interface] PrivateKey = <серверный приватный ключ> Address = 10.100.100.1/24 ListenPort = 51820 SaveConfig = true
[Peer] PublicKey = <публичный ключ клиента> AllowedIPs = 10.100.100.2/32
✅ Шаг 3: IP-форвардинг и NAT
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Проверка интерфейса:
ip route | grep default
Настройка NAT (замени eth0):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo apt install iptables-persistent -y sudo netfilter-persistent save
✅ Шаг 4: Запуск WireGuard
sudo chmod 600 /etc/wireguard/wg0.conf sudo wg-quick up wg0 sudo systemctl enable wg-quick@wg0 sudo wg
✅ Шаг 5: Открытие порта в AWS Security Group
- В AWS Console откройте EC2 → Security Groups
- Добавьте входящее правило:
- Тип: Custom UDP Rule
- Порт: 51820
- Источник: 0.0.0.0/0 или ваш IP
✅ Шаг 6: Elastic IP
- В AWS Console → EC2 → Elastic IPs
- Выберите Allocate Elastic IP → Allocate
- Нажмите Actions → Associate Elastic IP
- Привяжите к вашему инстансу
Теперь сервер имеет статический IP для клиентов.
✅ Шаг 7: Настройка клиента
Создание ключей:
wg genkey | tee privatekey | wg pubkey > publickey
Конфигурация:
[Interface] PrivateKey = <клиентский приватный ключ> Address = 10.100.100.2/32 DNS = 10.100.100.1
[Peer] PublicKey = <публичный ключ сервера> Endpoint = <Elastic IP>:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
✅ Шаг 8: Проверка
ping 8.8.8.8 curl ifconfig.me
Если IP совпадает с Elastic IP сервера — VPN работает.
🧠 Примечания
- Используйте Elastic IP, чтобы IP сервера не менялся.
AllowedIPs = 0.0.0.0/0— весь трафик через VPN,10.100.100.1/32— только к серверу.
Готово! WireGuard настроен на AWS сервере и готов к использованию как VPN шлюз.