- Автор темы
- Администратор
- Модер.
- #1
Настройка VPN-сервера на Ubuntu (OpenVPN)
OpenVPN — проверенное временем решение для организации VPN-сервера. Поддерживается практически всеми устройствами и ОС, хорошо документировано, гибко настраивается. Ниже — полная инструкция для Ubuntu 22.04/24.04.
1. Быстрая установка через скрипт
Самый простой и надёжный способ — использовать готовый скрипт автоматической установки от angristan (он сам настроит сертификаты, ключи, файрвол и т.д.):
Скрипт задаст несколько вопросов:
IP-адрес или домен сервера
Протокол (UDP рекомендуется, быстрее TCP)
Порт (по умолчанию 1194)
DNS для клиентов (Cloudflare, Google и т.д.)
Имя первого клиента
После завершения появится файл
— это готовый конфиг для клиента.
2. Ручная установка (для тех, кто хочет разобраться в деталях)
2.1. Установка пакетов
2.2. Настройка Easy-RSA и центра сертификации
2.3. Создание ключей и сертификатов сервера
2.4. Создание сертификата клиента
2.5. Копирование файлов
2.6. Конфигурация сервера
Создайте файл
:
2.7. Включение форвардинга пакетов
2.8. Настройка NAT (iptables)
Замените
на имя вашего внешнего интерфейса (
):
2.9. Запуск сервера
2.10. Открытие порта в файрволе
3. Сборка клиентского конфига (.ovpn)
Создайте файл
, объединив шаблон и содержимое сертификатов:
Готовый файл передаётся клиенту и импортируется в приложение OpenVPN Connect (Windows/macOS/Android/iOS) или через
на Linux.
4. Проверка работы
На клиенте после подключения проверьте IP:
Должен отобразиться IP вашего VPN-сервера.
Если возникнут вопросы по настройке под конкретный дистрибутив или облачный сервер — пишите в комментариях.
OpenVPN — проверенное временем решение для организации VPN-сервера. Поддерживается практически всеми устройствами и ОС, хорошо документировано, гибко настраивается. Ниже — полная инструкция для Ubuntu 22.04/24.04.
1. Быстрая установка через скрипт
Самый простой и надёжный способ — использовать готовый скрипт автоматической установки от angristan (он сам настроит сертификаты, ключи, файрвол и т.д.):
Bash:
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
sudo ./openvpn-install.sh
Скрипт задаст несколько вопросов:
IP-адрес или домен сервера
Протокол (UDP рекомендуется, быстрее TCP)
Порт (по умолчанию 1194)
DNS для клиентов (Cloudflare, Google и т.д.)
Имя первого клиента
После завершения появится файл
Bash:
/root/имя_клиента.ovpn
2. Ручная установка (для тех, кто хочет разобраться в деталях)
2.1. Установка пакетов
Bash:
sudo apt update
sudo apt install openvpn easy-rsa -y
2.2. Настройка Easy-RSA и центра сертификации
Bash:
mkdir ~/easy-rsa
ln -s /usr/share/easy-rsa/* ~/easy-rsa/
cd ~/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass
2.3. Создание ключей и сертификатов сервера
Bash:
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh
openvpn --genkey secret ta.key
2.4. Создание сертификата клиента
Bash:
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
2.5. Копирование файлов
Bash:
sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem ta.key /etc/openvpn/server/
2.6. Конфигурация сервера
Создайте файл
Bash:
/etc/openvpn/server/server.conf
Bash:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
auth SHA256
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
2.7. Включение форвардинга пакетов
Bash:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2.8. Настройка NAT (iptables)
Замените
Bash:
eth0
Bash:
ip a
Bash:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
2.9. Запуск сервера
Bash:
sudo systemctl enable --now openvpn-server@server
sudo systemctl status openvpn-server@server
2.10. Открытие порта в файрволе
Bash:
sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw enable
3. Сборка клиентского конфига (.ovpn)
Создайте файл
Bash:
client1.ovpn
Bash:
client
dev tun
proto udp
remote ВАШ_IP_СЕРВЕРА 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3
<ca> (содержимое ca.crt) </ca> <cert> (содержимое issued/client1.crt) </cert> <key> (содержимое private/client1.key) </key> <tls-auth> (содержимое ta.key) </tls-auth> key-direction 1
Готовый файл передаётся клиенту и импортируется в приложение OpenVPN Connect (Windows/macOS/Android/iOS) или через
Bash:
openvpn --config client1.ovpn
4. Проверка работы
На клиенте после подключения проверьте IP:
Bash:
curl ifconfig.me
Должен отобразиться IP вашего VPN-сервера.
Если возникнут вопросы по настройке под конкретный дистрибутив или облачный сервер — пишите в комментариях.
