Запуск как сервис
Настройте сервер rVPN на автоматический запуск при загрузке и перезапуск при сбое.
systemd (Linux)
Заголовок раздела «systemd (Linux)»Создайте файл сервиса:
sudo nano /etc/systemd/system/rvpn-server.service[Unit]Description=rVPN ServerAfter=network-online.targetWants=network-online.target
[Service]Type=simpleUser=rootExecStart=/usr/local/bin/rvpn-server -c /etc/rvpn/server.tomlRestart=on-failureRestartSec=5LimitNOFILE=65536
# Redirect logs to journalStandardOutput=journalStandardError=journalSyslogIdentifier=rvpn-server
[Install]WantedBy=multi-user.targetВключите и запустите:
sudo systemctl daemon-reloadsudo systemctl enable rvpn-serversudo systemctl start rvpn-serverПроверьте статус:
sudo systemctl status rvpn-serverПосмотрите логи:
sudo journalctl -u rvpn-server -fУправление сервисом
Заголовок раздела «Управление сервисом»| Действие | Команда |
|---|---|
| Запустить | sudo systemctl start rvpn-server |
| Остановить | sudo systemctl stop rvpn-server |
| Перезапустить | sudo systemctl restart rvpn-server |
| Посмотреть логи | sudo journalctl -u rvpn-server -f |
| Отключить автозапуск | sudo systemctl disable rvpn-server |
Сервер не поддерживает systemctl reload — процесс должен перезапуститься, чтобы подхватить изменения конфига или сертификата. Используйте restart там, где в других случаях вы бы использовали reload.
Автоматическое обновление TLS-сертификата
Заголовок раздела «Автоматическое обновление TLS-сертификата»Если вы используете встроенный блок [server.acme] (Server Quick Start шаг 3), настраивать здесь нечего — продлением занимается фоновая задача внутри rvpn-server, challenge использует тот же слушатель :443, а свежий сертификат горячо подменяется в резолвере без обрыва соединений. Пропустите этот раздел.
Если вместо этого вы указываете tls_cert_file / tls_key_file на сертификат от certbot (BYO-cert-режим), добавьте deploy-hook для перезапуска rVPN при обновлении сертификата — сервер не умеет reload’ить новый сертификат без рестарта:
sudo nano /etc/letsencrypt/renewal-hooks/deploy/rvpn-reload.sh#!/bin/bashsystemctl restart rvpn-serversudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/rvpn-reload.shПроверьте процесс обновления:
sudo certbot renew --dry-runFreeBSD rc(8)
Заголовок раздела «FreeBSD rc(8)»Создайте /usr/local/etc/rc.d/rvpn_server:
#!/bin/sh# PROVIDE: rvpn_server# REQUIRE: NETWORKING# KEYWORD: shutdown
. /etc/rc.subr
name="rvpn_server"rcvar="rvpn_server_enable"command="/usr/local/bin/rvpn-server"command_args="-c /usr/local/etc/rvpn/server.toml"pidfile="/var/run/rvpn-server.pid"
load_rc_config $namerun_rc_command "$1"chmod +x /usr/local/etc/rc.d/rvpn_serverecho 'rvpn_server_enable="YES"' >> /etc/rc.confservice rvpn_server startПредварительные требования NAT для TUN-режима
Заголовок раздела «Предварительные требования NAT для TUN-режима»Если сервер работает в TUN-режиме (полнотуннельный VPN), его нужно настроить как NAT-шлюз до запуска сервиса.
# Enable IP forwardingsudo sysctl -w net.ipv4.ip_forward=1
# Configure NAT (replace eth0 with your public interface; -s should match [server.network].dhcp_range)sudo iptables -t nat -A POSTROUTING -s 10.200.0.0/24 -o eth0 -j MASQUERADEsudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPTsudo iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPTСохраните их между перезагрузками:
# Debian/Ubuntusudo apt install iptables-persistentsudo netfilter-persistent save
# RHEL/CentOSsudo service iptables saveFreeBSD
Заголовок раздела «FreeBSD»Добавьте в /etc/rc.conf:
gateway_enable="YES"firewall_enable="YES"firewall_type="OPEN"natd_enable="YES"natd_interface="vtnet0" # your public interfacemacOS не поддерживает TUN NAT на стороне сервера. Используйте SOCKS5-режим или Linux-виртуалку для серверов TUN-режима.
TUN-режим и SOCKS5-режим
Заголовок раздела «TUN-режим и SOCKS5-режим»| Аспект | TUN-режим | SOCKS5-режим |
|---|---|---|
| NAT требуется | Да (на сервере) | Нет (relay на стороне клиента) |
| Маршрутизация трафика | Все приложения, полный туннель | По приложениям |
| Настройка сервера | IP-форвардинг + NAT-правила | Стандартный VPN-сервер |
См. TUN-режим для полной документации по настройке TUN-режима.