rename
This commit is contained in:
parent
9fd8afaf2b
commit
16bfac71a1
@ -1,150 +0,0 @@
|
||||
---
|
||||
title: Инструкция по обслуживанию VPN-шлюза
|
||||
slug: администрирование-vpn/инструкция-по-обслуживанию-vpn-шлюза
|
||||
---
|
||||
|
||||
## 1. Расположение файлов
|
||||
|
||||
### Скрипт маршрутизации
|
||||
|
||||
* Путь: `/usr/local/bin/vpn-domains.sh`
|
||||
* Назначение: разрешает домены из файла и добавляет маршруты в таблицу `vpnroute`
|
||||
|
||||
### Список доменов
|
||||
|
||||
* Путь: `/opt/ovpn/vpn-domains.txt`
|
||||
* Содержит список доменов, к которым трафик должен идти через VPN
|
||||
* Пример:
|
||||
|
||||
```
|
||||
youtube.com
|
||||
tu.be
|
||||
googlevideo.com
|
||||
|
||||
```
|
||||
|
||||
### Список IP-подсетей
|
||||
- Путь: `/opt/ovpn/vpn-subnets.txt`
|
||||
- Содержит список IP-адресов или подсетей, к которым трафик также направляется через VPN
|
||||
- Пример:
|
||||
```
|
||||
|
||||
8.8.8.0/24
|
||||
209.85.0.0/16
|
||||
|
||||
````
|
||||
|
||||
### systemd unit-файл
|
||||
- Путь: `/etc/systemd/system/vpn-routing.service`
|
||||
- Назначение: запускает скрипт `vpn-domains.sh` после подключения VPN
|
||||
- Содержимое:
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Selective VPN routing via tun0
|
||||
After=network-online.target openvpn-client@default_route.service
|
||||
Requires=openvpn-client@default_route.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/bin/vpn-domains.sh
|
||||
RemainAfterExit=true
|
||||
````
|
||||
|
||||
### systemd таймер (опционально)
|
||||
|
||||
* Путь: `/etc/systemd/system/vpn-routing.timer`
|
||||
* Назначение: периодически обновляет маршруты на случай смены IP у доменов
|
||||
* Содержимое:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Timer to refresh selective VPN routing
|
||||
|
||||
[Timer]
|
||||
OnBootSec=1min
|
||||
OnUnitActiveSec=30min
|
||||
Unit=vpn-routing.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Команды управления
|
||||
|
||||
### Первый запуск вручную (после запуска VPN)
|
||||
|
||||
```bash
|
||||
sudo /usr/local/bin/vpn-domains.sh
|
||||
```
|
||||
|
||||
### Старт systemd-сервиса вручную
|
||||
|
||||
```bash
|
||||
sudo systemctl start vpn-routing.service
|
||||
```
|
||||
|
||||
### Автозапуск при загрузке
|
||||
|
||||
```bash
|
||||
sudo systemctl enable vpn-routing.service
|
||||
```
|
||||
|
||||
### Проверка статуса
|
||||
|
||||
```bash
|
||||
systemctl status vpn-routing.service
|
||||
```
|
||||
|
||||
### Перезапуск
|
||||
|
||||
```bash
|
||||
sudo systemctl restart vpn-routing.service
|
||||
```
|
||||
|
||||
### (Опционально) Включение таймера
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now vpn-routing.timer
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Важные замечания
|
||||
|
||||
* OpenVPN клиент должен быть настроен с `route-nopull`, чтобы не перетягивать весь трафик через VPN.
|
||||
* Файл `/etc/openvpn/client/default_route.conf` должен ссылаться на рабочий `.ovpn`-файл или содержать его содержимое.
|
||||
* IP-адреса, добавленные вручную, будут сохранены при перезапуске скрипта.
|
||||
* После редактирования `.txt`-файлов необходимо перезапустить сервис:
|
||||
|
||||
```bash
|
||||
sudo systemctl restart vpn-routing.service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Устранение неполадок
|
||||
|
||||
* Если сайт не открывается через VPN:
|
||||
|
||||
* Убедитесь, что его IP-адрес попадает в `vpnroute`:
|
||||
|
||||
```bash
|
||||
ip rule show
|
||||
ip route show table vpnroute
|
||||
```
|
||||
* Проверьте DNS-резолвинг:
|
||||
|
||||
```bash
|
||||
dig +short <домен>
|
||||
```
|
||||
|
||||
* Если после перезагрузки маршруты отсутствуют:
|
||||
|
||||
* Убедитесь, что unit-файл включён: `systemctl is-enabled vpn-routing.service`
|
||||
* Проверить таймер: `systemctl list-timers | grep vpn-routing`
|
||||
|
||||
---
|
||||
|
||||
Готово. Инфраструктура настроена. Все изменения — только через `/opt/ovpn/vpn-domains.txt` и `/opt/ovpn/vpn-subnets.txt`.
|
Loading…
x
Reference in New Issue
Block a user