https://github.com/v2fly/domain-list-community/tree/master/data
https://github.com/RockBlack-VPN/ip-address
https://github.com/v2fly/domain-list-community/tree/master/data
https://github.com/RockBlack-VPN/ip-address
Обновляем систему и ставим нужные пакеты:
sudo apt update
sudo apt upgrade -y
sudo apt install xl2tpd ppp -y
Проверим, что сервис установлен:
systemctl status xl2tpd
/etc/xl2tpd/xl2tpd.confsudo nano /etc/xl2tpd/xl2tpd.conf
Пример минимальной конфигурации:
[global]
port = 1701
[lns default]
ip range = 10.10.10.10-10.10.10.100
local ip = 10.10.10.1
require chap = yes
refuse pap = yes
require authentication = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
/etc/ppp/options.xl2tpdsudo nano /etc/ppp/options.xl2tpd
ipcp-accept-local ipcp-accept-remote ms-dns 8.8.8.8 ms-dns 1.1.1.1 noccp auth idle 1800 mtu 1460 mru 1460 hide-password name l2tpd lcp-echo-interval 30 lcp-echo-failure 4
/etc/ppp/chap-secretssudo nano /etc/ppp/chap-secrets
Формат:
username server password ip
Пример:
vpnuser l2tpd strongpassword *
Права доступа обязательны:
sudo chmod 600 /etc/ppp/chap-secrets
Создайте отдельный конфигурационный файл:
sudo nano /etc/sysctl.d/99-ipforward.conf
Добавьте:
net.ipv4.ip_forward=1
Примените:
sudo sysctl --system
Проверьте:
sysctl net.ipv4.ip_forward
Ожидаемый результат:
net.ipv4.ip_forward = 1
Предположим, внешний интерфейс — eth0.
sudo iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -s 10.10.10.0/24 -j ACCEPT
sudo systemctl restart xl2tpd
sudo systemctl enable xl2tpd
Проверка логов:
journalctl -u xl2tpd -f
sudo apt install iptables-persistent
Во время установки:
согласись сохранить текущие правила IPv4
Если уже установлено — сохрани вручную:
sudo netfilter-persistent save
Проверка после перезагрузки:
iptables -t nat -L -n -v
При подключении абонента поднимается интерфейс ppp. Когда подключений нет интрфейса нет в ifconfig
sudo apt update
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Перезапуск:
sudo systemctl enable fail2ban --now
sudo systemctl restart fail2ban
Проверка:
sudo fail2ban-client status
sudo fail2ban-client status sshd
Если перестало работать:
Причина может быть в аппаратных offload-функциях сетевого интерфейса (GRO/GSO/TSO/RX/TX).
xl2tpd + pppol2tp непереносимы к агрегации и изменению размеров UDP-пакетов.
Это типичная и подтверждённая проблема:
Raspberry Pi
L2TP без IPsec
NAT
современные ядра Linux
Очень важно понимать:
offload-функции могут включаться автоматически:
после обновления ядра
после перезагрузки
после обновления firmware NIC
после изменения драйвера
Поэтому проблема и «плавающая».
Обязательное действие: сделать fix постоянным
Иначе после перезагрузки всё сломается снова.
Создайте сервис:
sudo nano /etc/systemd/system/disable-eth0-offload.service
[Unit]
Description=Disable NIC offloading for L2TP stability
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -K eth0 tx off rx off tso off gso off gro off
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Активировать:
sudo systemctl daemon-reload
sudo systemctl enable disable-eth0-offload
sudo systemctl start disable-eth0-offload
Проверка:
sudo ethtool -k eth0 | egrep 'tso|gso|gro'
Все значения должны быть off
1. Прошивка от Cudy (Для снятия проверки)- https://drive.google.com/drive/folder... 2. Загрузка OpenWRT (так же добавьте параметры) - https://firmware-selector.openwrt.org/ 4. Репозиторий itdog (большое ему спасибо!) Podkop Установка: https://podkop.net/docs/install/
1) sudo pacman -S xl2tpd ppp
2) sudo nano /etc/xl2tpd/xl2tpd.conf
[global]
port = 1701
[lns default]
ip range = 10.0.0.10-10.0.0.50 # диапазон IP для клиентов
local ip = 10.0.0.1 # IP сервера
require chap = yes # использовать CHAP
refuse pap = yes # запрет PAP
name = L2TPServer # имя сервера (важно)
ppp debug = yes # дебаг PPP
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
debug tunnel = yes # выводить дебаг L2TP
3) sudo nano /etc/ppp/options.xl2tpd
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
mtu 1400
mru 1400
nopcomp
noaccomp
debug
sudo chmod 600 /etc/ppp/chap-secrets
sudo chown root:root /etc/ppp/chap-secrets
6) Фаервол
Разрешаем L2TP UDP порт 1701:
sudo iptables -A INPUT -p udp --dport 1701 -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 1701 -j ACCEPT
Перезапуск сервиса
sudo systemctl enable --now xl2tpd
sudo systemctl restart xl2tpd
sudo journalctl -u xl2tpd -f
7) Сохранить настройки фаирвола, маскорадинга
sudo pacman -S iptables-nft
sudo systemctl enable --now iptables
sudo iptables-save | sudo tee /etc/iptables/iptables.rules
На бесплатной версии Proxmox VE при входе через web интерфейс появляется сообщение “You do not have a valid subscription for this server”. Для его удаление достаточно подключиться по ssh к вашему Proxmox серверу или использовать терминал через web интерфейс PVE

Пошаговая инструкция

Найти текст No valid subscription
Заменить текст функции Ext.Msg.show({ на void({ //Ext.Msg.show({
было:
Ext.Msg.show({
title: gettext('No valid subscription'),
стало:
void({ //Ext.Msg.show({
title: gettext('No valid subscription'),


Здесь рассматривается, как настроить на OpenWrt клиент WireGuard.
- Всё проделывается на OpenWrt 22.03.5. На других версиях настройка не отличается
- Предполагается, что уже есть работающий клиентский конфиг
- Туннель можно настроить через консоль и через LuCi
Установка пакета
opkg update && opkg install wireguard-tools
Настройка состоит из конфигурации в network (Interface + Peer), создания зоны для WG и разрешения на передачу трафика из зоны lan в зону wg.
Через SSH можно настроить двумя способами:
- Править файлы конфигурации
- Использовать UCI
Настройка через файл конфигурации network
Конфигурация лежит в /etc/config/network. Так же как в любом конфиге WG, в OpenWrt есть две части: Interface и Peer.
config interface 'wg0'
option proto 'wireguard'
option listen_port '51820'
option private_key '$PRIVATE_KEY'
list addresses '$WG_IP'
config wireguard_wg0
option name 'wg0_client'
option route_allowed_ips '0'
option persistent_keepalive '25'
option allowed_ips '0.0.0.0/0'
option endpoint_host '$HOST'
option endpoint_port '51820'
option public_key '$PUBLIC_KEY'
option preshared_key '$PRESHARED_KEY'
В переменные начинающиеся с $ нужно подставить ваши значения.Часть InterfaceВсе перечисленные здесь переменные находятся в части [Interface] клиентской конфигурации.
proto — протокол, чтобы openwrt понимало, что это конфигурация WireGuard
listen_port — порт на котором WireGuard принимает соединения. Это можно не трогать
private_key — это приватный ключ клиента
list addresses — адрес в WG сети
Все перечисленные здесь переменные находятся в части [Peer] клиентской конфигурации.
route_allowed_ips — флаг, который создаёт маршрут через WG интерфейс для перечисленных сетей из параметра allowed_ips. Если 1 и allowed_ips=0.0.0.0/0, то весь трафик будет идти через WG. 0 - выключено.
persistent_keepalive — интервал времени, через который отправляются пакеты для поддержки соединения. Это можно не трогать
allowed_ips — подсети, в которые может ходить трафик через туннель. В большинстве случаев никаких ограничений не требуется, поэтому 0.0.0.0/0
endpoint_host — ip/url WG сервера
endpoint_port — порт WireGuard на сервере. Указан в Endpoint после :
public_key — публичный ключ сервера
preshared_key - ключ PresharedKey, нужно указывать только, если сервер поддерживает это. И он есть в конфиге
Если нужна поддержка IPv6:
В interface добавить
list addresses '$WG_IPv6'
В wireguard_wg0
option allowed_ips '::/0'
Эта часть добавляется в конец файла конфигурации. После этого необходимо рестартануть сеть service network restart.
После рестарта должен появиться интерфейс wg0.
root@OpenWrt:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
...
5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN qlen 1000
link/[65534]
inet 192.168.100.2/32 brd 255.255.255.255 scope global wg0
valid_lft forever preferred_lft forever
Для того, чтобы клиенты роутера могли ходить через WG, нужно добавить правила в /etc/config/firewall
config zone
option name 'wg'
option masq '1'
option output 'ACCEPT'
option forward 'REJECT'
option input 'REJECT'
option mtu_fix '1'
option network 'wg0'
config forwarding
option src 'lan'
option dest 'wg'
После этого нужно перезапустить firewall
service firewall restart
В переменные начинающиеся с $ нужно подставить ваши значения.
uci set network.wg0="interface"
uci set network.wg0.proto="wireguard"
uci set network.wg0.private_key="$PRIVATE_KEY"
uci set network.wg0.listen_port="51820"
uci add_list network.wg0.addresses="$WG_IP"
uci set network.peer="wireguard_wg0"
uci set network.peer.public_key="$PUBLIC_KEY"
uci set network.peer.endpoint_host="$HOST"
uci set network.peer.endpoint_port="51820"
uci set network.peer.route_allowed_ips="0"
uci set network.peer.persistent_keepalive="25"
uci set network.peer.allowed_ips="0.0.0.0/0"
Применить изменения и рестартануть сеть
uci commit network
service network restart
Если в конфиге есть PRESHARED_KEY
uci set network.peer.preshared_key="$PRESHARED_KEY"
Если нужна поддержка IPv6
uci add_list network.wg0.addresses="$WG_IPv6"
uci add_list network.peer.allowed_ips="::/0"
Добавление зоны и forwarding
uci add firewall zone
uci set firewall.@zone[-1]=zone
uci set firewall.@zone[-1].name='wg'
uci set firewall.@zone[-1].masq='1'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='REJECT'
uci set firewall.@zone[-1].input='REJECT'
uci set firewall.@zone[-1].mtu_fix='1'
uci set firewall.@zone[-1].network='wg0'
uci add firewall forwarding
uci set firewall.@forwarding[-1]=forwarding
uci set firewall.@forwarding[-1].src='lan'
uci set firewall.@forwarding[-1].dest='wg'
Применить изменения и рестартануть firewall
uci commit network
service firewall restart
Посмотреть статистику WG можно через команду wg show. Смотреть на latest handshake, он должен быть меньше двух минут.
И на transfer: в received и sent должны быть не нули.
peer: -
preshared key: (hidden)
endpoint: host:51820
allowed ips: 0.0.0.0/0, ::/0
latest handshake: 34 seconds ago
transfer: 184 B received, 552 B sent
persistent keepalive: every 25 seconds
Проверить, что туннель работает, можно простым пингом с указанием интерфейса:
ping -I wg0 google.ru