Пакет WvDial служит для установления доступа в сеть через беспроводные модемы используя протокол PPP.
apt install wvdial
Основной файл /etc/wvdial.conf
Параметры PPP (Point-to-Point Protocol) для всех соединений:
noauth name wvdial # usepeerdns # defaultroute # replacedefaultroute
usepeerdns
defaultroute replacedefaultroute
#!/bin/sh -e /usr/bin/wvdial huawei-e220 exit 0
Вариант запуска скрипта обёртки:
#!/bin/sh -e (/usr/local/sbin/openvpn-server_wrapper.sh > dev/null 2>&1)& exit 0
Пример для Huawei E220
, этом примере APN = RVPN.VOLGA
[Dialer huawei-e220] Phone = *99# Username = internet Password = internet Stupid Mode = 1 Dial Command = ATDT Modem = /dev/ttyUSB0 Baud = 460800 Init2 = ATZ Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init4 = AT+CGDCONT = 1,"IP","RVPN.VOLGA" ISDN = 0 Modem Type = Analog Modem Auto DNS = on
Правила udev:
# huawei-e220 ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1003", KERNEL=="ttyUSB*", RUN+="/usr/local/sbin/huawei-e220_start.sh"
Скрипт:
#!/bin/sh -e /usr/bin/wvdial huawei-e220 ip route del default ip route add default dev ppp0 exit 0
Скрипт выполняет постоянную проверку состояния PPP и сервера OpenVPN и запускает их в случае необходимости.
#!/bin/bash sleep 30 while true do # Test PPP cat /proc/net/dev | grep ppp0 if [ $? -eq 0 ] then echo "PPP Ok!" else (/usr/bin/wvdial huawei-e220)& sleep 10 ip route del default ip route add default dev ppp0 fi sleep 5 # Test OpenVPN ss -u -a | grep openvpn if [ $? -eq 0 ] then echo "OpenVPN Ok!" else systemctl restart openvpn@server fi sleep 30 done