Авторизация

Topic-icon Перезапуск OpenVPN по API

Больше
12 авг 2021 23:30 - 12 авг 2021 23:31 #7060 от Mast
Mast создал эту тему: Не пингуется vpn
Последнее время часто стали зависать сессии на опенВПН.
Помогает только ручной сброс интерфейсов со страницы сайта.

Предложу добавить html-api примерного вида:
https://vpnki.ru/index.php?option=com_api&format=raw&app=resetovpntun&resource=active&key=тырыпырыключишмучи
теперь можно будет в роутере прописать скрипт и при отсутствии пинга на 172.16.хх.хх
просто посылать скриптом хтмл-посылку на сервер-ВПНКИ и ресетить туннели снаружи.

Как вам идея?
Последнее редактирование: 12 авг 2021 23:31 от Mast.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 авг 2021 23:35 #7061 от admin
admin ответил в теме Не пингуется vpn
Перенес в отдельную тему.
Так такое API уже вроде есть - vpnki.ru/settings/api-rus#ovpn_restart
Осталось попробовать

если все заработало - нажмите на баннеры!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 авг 2021 23:38 #7062 от admin
admin ответил в теме Не пингуется vpn
А так идея правильная :)
Хотя нам все же надо добиться, чтобы эта штука не подглючивала из-за внешних проблем.
После внедрения варианта OpenVPN через TCP выплыли некоторые особенности, которые бы не учли.
Теперь с ними боремся - можно, конечно, отключить TCP и попросить всех вернуться на UDP, но это плохая история.

если все заработало - нажмите на баннеры!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 07:24 #7063 от Mast
Mast ответил в теме Не пингуется vpn

Перенес в отдельную тему.

Отлично. Спасибо.

Так такое API уже вроде есть - vpnki.ru/settings/api-rus#ovpn_restart

:). Вот что значит невнимательно читать документацию. Оказыввается это давно уже есть!
RTFM!

Осталось попробовать

осталось вспомнить как из OpenWRT скриптом слать http get
толи через wget или через curl ..
эх, тяжело вспоминать когда не знал..

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 11:21 - 13 авг 2021 11:28 #7066 от Mast
Mast ответил в теме Не пингуется vpn
подскажи, плз.
поставил пакет wget-ssl на openWRT (эта версия с полным листом команд, а не с сокращенным)
мы имеем api вида
https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=kluchik123456
как используя вот ЭТИ команды от wget-ssl
правильно составить запрос от openWrt на сервак?
wget-ssl --no-check-certificate а дальше как?
если просто с дуру послать
wget-ssl --no-check-certificate https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=kluchik123456
то в результате в папке root получаем лог-файл
-2021-08-13 10:45:56--  https://vpnki.ru/index.php?option=com_api
Resolving vpnki.ru... 84.201.157.22
Connecting to vpnki.ru|84.201.157.22|:443... connected.
HTTP request sent, awaiting response... 400 Bad Request
2021-08-13 10:45:57 ERROR 400: Bad Request.
у тут вопрос вроде не с httpS, а с синтаксисом самого запроса. что-то не так пишу стопудова.
и не нашел как отключить ваще там создание лог-файлов, и файлов прочитки сервера. иначе же всю память в роутере заполнит.
может я заморочился?
может есть более простой способо послать скриптом команду на сброс опенВПН интерфейса на сервере?
вот сам скрипт в который надо после пропажи пинга добавить сброс интерфейса через API
#!/bin/sh
PRS1="172.16.0.1"
if (! ping -q -c 3 ${PRS1} > /dev/null 2>&1)
then
ifdown ovpn
ifup ovpn
route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.0.1
route add -net 192.168.XX.0 netmask 255.255.255.0 gw 172.16.XX.XX
sleep 30
/etc/init.d/led restart
fi
Последнее редактирование: 13 авг 2021 11:28 от Mast.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 12:44 - 13 авг 2021 12:46 #7067 от admin
admin ответил в теме Не пингуется vpn
Давайте начнем с простого.
В браузере перезапуск работает если вбить эту строку?

если все заработало - нажмите на баннеры!
Последнее редактирование: 13 авг 2021 12:46 от admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 12:48 #7068 от admin
admin ответил в теме Не пингуется vpn
Судя по логу он ругается на неполную строку
vpnki.ru/index.php?option=com_api
Это ровно до знака & - то есть ваш wget не посылает всю строку, а лишь ее часть. Попробуйте все обернуть в кавычки

если все заработало - нажмите на баннеры!
Спасибо сказали: Mast

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:00 #7070 от Mast
Mast ответил в теме Не пингуется vpn

В браузере перезапуск работает если вбить эту строку?

конечно!

Судя по логу он ругается на неполную строку
vpnki.ru/index.php?option=com_api
Это ровно до знака & - то есть ваш wget не посылает всю строку, а лишь ее часть. Попробуйте все обернуть в кавычки


после оборота в кавычки имеем:
root@hz:~# wget-ssl "https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=a123456789b123456789c123456789d1"
--2021-08-13 13:49:21--  https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=789d1
Resolving vpnki.ru... 84.201.157.22
Connecting to vpnki.ru|84.201.157.22|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2021-08-13 13:49:21 ERROR 403: Forbidden.


т.е. посылаем
wget-ssl " vpnki.ru/index.php?option=com_api&format...789b123456789c123456 789d1"

в ответ получаем:
--2021-08-13 13:49:21-- vpnki.ru/index.php?option=com_api&format...&action=restart&key= 789d1

Из 32-х символов ключа почему-то в эхе только 5 последних.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:06 #7071 от Mast
Mast ответил в теме Не пингуется vpn
запустил с ключем
--debug

вывалило портянку. щас зачищу от своего ключа реального и выложу тут

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:15 - 13 авг 2021 14:16 #7072 от Mast
Mast ответил в теме Не пингуется vpn
Ключ в логе я забил а1234567 и т.д.
Не знаю, на сколько критичны куки к реальному ключу, если критичны удалите, плз.


DEBUG-лог:
root@HZ:~# wget-ssl --no-check-certificate --debug "https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=a123456789b123456789c123456789d1"
DEBUG output created by Wget 1.19.5 on linux-gnu.

Reading HSTS entries from /root/.wget-hsts
Converted file name 'index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=789d1' (UTF-8) -> 'index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=789d1' (ASCII)
--2021-08-13 14:05:13--  https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=789d1
Resolving vpnki.ru... 84.201.157.22
Caching vpnki.ru => 84.201.157.22
Connecting to vpnki.ru|84.201.157.22|:443... connected.
Created socket 3.
Releasing 0x005e89f0 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 3 to SSL handle 0x00681470
certificate:
  subject: CN=*.vpnki.ru
  issuer:  CN=AlphaSSL CA - SHA256 - G2,O=GlobalSign nv-sa,C=BE
X509 certificate successfully verified and matches host vpnki.ru

---request begin---
GET /index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=789d1 HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: vpnki.ru
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 403 Forbidden
Date: Fri, 13 Aug 2021 11:05:13 GMT
Server: Apache/2.4.18 (Ubuntu)
X-Content-Type-Options: nosniff
Upgrade: h2
Connection: Upgrade, Keep-Alive
Set-Cookie: f3003c97b4f17a1853bdcf06db95cca8=942vnc6sgae3g1k3163m4u49fd; path=/; secure; HttpOnly; SameSite=Strict
Expires: Wed, 17 Aug 2005 00:00:00 GMT
Last-Modified: Fri, 13 Aug 2021 11:05:13 GMT
Pragma: no-cache
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; preload
X-Content-Type-Options: nosniff
X-Permitted-Cross-Domain-Policies: master-only
Content-Length: 41
Keep-Alive: timeout=5, max=100
Content-Type: application/json; charset=utf-8

---response end---
403 Forbidden

Stored cookie vpnki.ru -1 (ANY) / <session> <secure> [expiry none] f3003c97b4f17a1853bdcf06db95cca8 942vnc6sgae3g1k3163m4u49fd
Registered socket 3 for persistent reuse.
Parsed Strict-Transport-Security max-age = 31536000, includeSubDomains = false
Updated HSTS host: vpnki.ru:443 (max-age: 31536000, includeSubdomains: false)
Skipping 41 bytes of body: [{"code":403,"message":"API Key Disabled"}] done.
2021-08-13 14:05:13 ERROR 403: Forbidden.

Saving HSTS entries to /root/.wget-hsts

опять видим странности.
в поле key= почему-то только последние 5-символов из 32-х символьного реального ключа.
Последнее редактирование: 13 авг 2021 14:16 от Mast.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:19 #7073 от admin
admin ответил в теме Не пингуется vpn
[{"code":403,"message":"API Key Disabled"}] - означает, что ключ, дошедший до сервера некорректен.
А в ключе нет каких-то специальных символов, которые wget как-то по-другому трактует?
Сейчас взгляну на ваш ключ тут внутри

PS: может попробовать curl?

если все заработало - нажмите на баннеры!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:25 #7075 от admin
admin ответил в теме Не пингуется vpn
Ага, там есть . - может именно точка мешает wget . И вообще wget - он же для скачивания файлов, поэтому, судя по всему, он трактует это как имя файла и начинает его конвертировать,а на этом пути может быть много проблем.
Я за curl :)

если все заработало - нажмите на баннеры!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:30 #7076 от Mast
Mast ответил в теме Не пингуется vpn
запустил с дебагом и с ключем
--ignore-length ( ignore 'Content-Length' header field )
тож самое. в key= Только последние 5 символов. полагаю что это первые 5 символов. наверное обратная норация в ключе.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:31 #7077 от Mast
Mast ответил в теме Не пингуется vpn
curl --help
Usage: curl [options...] <url>
     --abstract-unix-socket <path> Connect via abstract Unix domain socket
     --anyauth       Pick any authentication method
 -a, --append        Append to target file when uploading
     --basic         Use HTTP Basic Authentication
     --cacert <file> CA certificate to verify peer against
     --capath <dir>  CA directory to verify peer against
 -E, --cert <certificate[:password]> Client certificate file and password
     --cert-status   Verify the status of the server certificate
     --cert-type <type> Certificate file type (DER/PEM/ENG)
     --ciphers <list of ciphers> SSL ciphers to use
     --compressed    Request compressed response
     --compressed-ssh Enable SSH compression
 -K, --config <file> Read config from a file
     --connect-timeout <seconds> Maximum time allowed for connection
     --connect-to <HOST1:PORT1:HOST2:PORT2> Connect to host
 -C, --continue-at <offset> Resumed transfer offset
 -b, --cookie <data> Send cookies from string/file
 -c, --cookie-jar <filename> Write cookies to <filename> after operation
     --create-dirs   Create necessary local directory hierarchy
     --crlf          Convert LF to CRLF in upload
     --crlfile <file> Get a CRL list in PEM format from the given file
 -d, --data <data>   HTTP POST data
     --data-ascii <data> HTTP POST ASCII data
     --data-binary <data> HTTP POST binary data
     --data-raw <data> HTTP POST data, '@' allowed
     --data-urlencode <data> HTTP POST data url encoded
     --delegation <LEVEL> GSS-API delegation permission
     --digest        Use HTTP Digest Authentication
 -q, --disable       Disable .curlrc
     --disable-eprt  Inhibit using EPRT or LPRT
     --disable-epsv  Inhibit using EPSV
     --dns-interface <interface> Interface to use for DNS requests
     --dns-ipv4-addr <address> IPv4 address to use for DNS requests
     --dns-ipv6-addr <address> IPv6 address to use for DNS requests
     --dns-servers <addresses> DNS server addrs to use
 -D, --dump-header <filename> Write the received headers to <filename>
     --egd-file <file> EGD socket path for random data
     --engine <name> Crypto engine to use
     --expect100-timeout <seconds> How long to wait for 100-continue
 -f, --fail          Fail silently (no output at all) on HTTP errors
     --fail-early    Fail on first transfer error, do not continue
     --false-start   Enable TLS False Start
 -F, --form <name=content> Specify multipart MIME data
     --form-string <name=string> Specify multipart MIME data
     --ftp-account <data> Account data string
     --ftp-alternative-to-user <command> String to replace USER [name]
     --ftp-create-dirs Create the remote dirs if not present
     --ftp-method <method> Control CWD usage
     --ftp-pasv      Use PASV/EPSV instead of PORT
 -P, --ftp-port <address> Use PORT instead of PASV
     --ftp-pret      Send PRET before PASV
     --ftp-skip-pasv-ip Skip the IP address for PASV
     --ftp-ssl-ccc   Send CCC after authenticating
     --ftp-ssl-ccc-mode <active/passive> Set CCC mode
     --ftp-ssl-control Require SSL/TLS for FTP login, clear for transfer
 -G, --get           Put the post data in the URL and use GET
 -g, --globoff       Disable URL sequences and ranges using {} and []
     --happy-eyeballs-timeout-ms How long to wait in milliseconds for IPv6 before trying IPv4
 -I, --head          Show document info only
     --haproxy-protocol Send HAProxy PROXY protocol header
 -H, --header <header/@file> Pass custom header(s) to server
 -h, --help          This help text
     --hostpubmd5 <md5> Acceptable MD5 hash of the host public key
 -0, --http1.0       Use HTTP 1.0
     --http1.1       Use HTTP 1.1
     --http2         Use HTTP 2
     --http2-prior-knowledge Use HTTP 2 without HTTP/1.1 Upgrade
     --ignore-content-length Ignore the size of the remote resource
 -i, --include       Include protocol response headers in the output
 -k, --insecure      Allow insecure server connections when using SSL
     --interface <name> Use network INTERFACE (or address)
 -4, --ipv4          Resolve names to IPv4 addresses
 -6, --ipv6          Resolve names to IPv6 addresses
 -j, --junk-session-cookies Ignore session cookies read from file
     --keepalive-time <seconds> Interval time for keepalive probes
     --key <key>     Private key file name
     --key-type <type> Private key file type (DER/PEM/ENG)
     --krb <level>   Enable Kerberos with security <level>
     --libcurl <file> Dump libcurl equivalent code of this command line
     --limit-rate <speed> Limit transfer speed to RATE
 -l, --list-only     List only mode
     --local-port <num/range> Force use of RANGE for local port numbers
 -L, --location      Follow redirects
     --location-trusted Like --location, and send auth to other hosts
     --login-options <options> Server login options
     --mail-auth <address> Originator address of the original email
     --mail-from <address> Mail from this address
     --mail-rcpt <address> Mail to this address
 -M, --manual        Display the full manual
     --max-filesize <bytes> Maximum file size to download
     --max-redirs <num> Maximum number of redirects allowed
 -m, --max-time <seconds> Maximum time allowed for the transfer
     --metalink      Process given URLs as metalink XML file
     --negotiate     Use HTTP Negotiate (SPNEGO) authentication
 -n, --netrc         Must read .netrc for user name and password
     --netrc-file <filename> Specify FILE for netrc
     --netrc-optional Use either .netrc or URL
 -:, --next          Make next URL use its separate set of options
     --no-alpn       Disable the ALPN TLS extension
 -N, --no-buffer     Disable buffering of the output stream
     --no-keepalive  Disable TCP keepalive on the connection
     --no-npn        Disable the NPN TLS extension
     --no-sessionid  Disable SSL session-ID reusing
     --noproxy <no-proxy-list> List of hosts which do not use proxy
     --ntlm          Use HTTP NTLM authentication
     --ntlm-wb       Use HTTP NTLM authentication with winbind
     --oauth2-bearer <token> OAuth 2 Bearer Token
 -o, --output <file> Write to file instead of stdout
     --pass <phrase> Pass phrase for the private key
     --path-as-is    Do not squash .. sequences in URL path
     --pinnedpubkey <hashes> FILE/HASHES Public key to verify peer against
     --post301       Do not switch to GET after following a 301
     --post302       Do not switch to GET after following a 302
     --post303       Do not switch to GET after following a 303
     --preproxy [protocol://]host[:port] Use this proxy first
 -#, --progress-bar  Display transfer progress as a bar
     --proto <protocols> Enable/disable PROTOCOLS
     --proto-default <protocol> Use PROTOCOL for any URL missing a scheme
     --proto-redir <protocols> Enable/disable PROTOCOLS on redirect
 -x, --proxy [protocol://]host[:port] Use this proxy
     --proxy-anyauth Pick any proxy authentication method
     --proxy-basic   Use Basic authentication on the proxy
     --proxy-cacert <file> CA certificate to verify peer against for proxy
     --proxy-capath <dir> CA directory to verify peer against for proxy
     --proxy-cert <cert[:passwd]> Set client certificate for proxy
     --proxy-cert-type <type> Client certificate type for HTTS proxy
     --proxy-ciphers <list> SSL ciphers to use for proxy
     --proxy-crlfile <file> Set a CRL list for proxy
     --proxy-digest  Use Digest authentication on the proxy
     --proxy-header <header/@file> Pass custom header(s) to proxy
     --proxy-insecure Do HTTPS proxy connections without verifying the proxy
     --proxy-key <key> Private key for HTTPS proxy
     --proxy-key-type <type> Private key file type for proxy
     --proxy-negotiate Use HTTP Negotiate (SPNEGO) authentication on the proxy
     --proxy-ntlm    Use NTLM authentication on the proxy
     --proxy-pass <phrase> Pass phrase for the private key for HTTPS proxy
     --proxy-pinnedpubkey <hashes> FILE/HASHES public key to verify proxy with
     --proxy-service-name <name> SPNEGO proxy service name
     --proxy-ssl-allow-beast Allow security flaw for interop for HTTPS proxy
     --proxy-tlsauthtype <type> TLS authentication type for HTTPS proxy
     --proxy-tlspassword <string> TLS password for HTTPS proxy
     --proxy-tlsuser <name> TLS username for HTTPS proxy
     --proxy-tlsv1   Use TLSv1 for HTTPS proxy
 -U, --proxy-user <user:password> Proxy user and password
     --proxy1.0 <host[:port]> Use HTTP/1.0 proxy on given port
 -p, --proxytunnel   Operate through a HTTP proxy tunnel (using CONNECT)
     --pubkey <key>  SSH Public key file name
 -Q, --quote         Send command(s) to server before transfer
     --random-file <file> File for reading random data from
 -r, --range <range> Retrieve only the bytes within RANGE
     --raw           Do HTTP "raw"; no transfer decoding
 -e, --referer <URL> Referrer URL
 -J, --remote-header-name Use the header-provided filename
 -O, --remote-name   Write output to a file named as the remote file
     --remote-name-all Use the remote file name for all URLs
 -R, --remote-time   Set the remote file's time on the local output
 -X, --request <command> Specify request command to use
     --request-target Specify the target for this request
     --resolve <host:port:address> Resolve the host+port to this address
     --retry <num>   Retry request if transient problems occur
     --retry-connrefused Retry on connection refused (use with --retry)
     --retry-delay <seconds> Wait time between retries
     --retry-max-time <seconds> Retry only within this period
     --sasl-ir       Enable initial response in SASL authentication
     --service-name <name> SPNEGO service name
 -S, --show-error    Show error even when -s is used
 -s, --silent        Silent mode
     --socks4 <host[:port]> SOCKS4 proxy on given host + port
     --socks4a <host[:port]> SOCKS4a proxy on given host + port
     --socks5 <host[:port]> SOCKS5 proxy on given host + port
     --socks5-basic  Enable username/password auth for SOCKS5 proxies
     --socks5-gssapi Enable GSS-API auth for SOCKS5 proxies
     --socks5-gssapi-nec Compatibility with NEC SOCKS5 server
     --socks5-gssapi-service <name> SOCKS5 proxy service name for GSS-API
     --socks5-hostname <host[:port]> SOCKS5 proxy, pass host name to proxy
 -Y, --speed-limit <speed> Stop transfers slower than this
 -y, --speed-time <seconds> Trigger 'speed-limit' abort after this time
     --ssl           Try SSL/TLS
     --ssl-allow-beast Allow security flaw to improve interop
     --ssl-no-revoke Disable cert revocation checks (WinSSL)
     --ssl-reqd      Require SSL/TLS
 -2, --sslv2         Use SSLv2
 -3, --sslv3         Use SSLv3
     --stderr        Where to redirect stderr
     --suppress-connect-headers Suppress proxy CONNECT response headers
     --tcp-fastopen  Use TCP Fast Open
     --tcp-nodelay   Use the TCP_NODELAY option
 -t, --telnet-option <opt=val> Set telnet option
     --tftp-blksize <value> Set TFTP BLKSIZE option
     --tftp-no-options Do not send any TFTP options
 -z, --time-cond <time> Transfer based on a time condition
     --tls-max <VERSION> Use TLSv1.0 or greater
     --tlsauthtype <type> TLS authentication type
     --tlspassword   TLS password
     --tlsuser <name> TLS user name
 -1, --tlsv1         Use TLSv1.0 or greater
     --tlsv1.0       Use TLSv1.0
     --tlsv1.1       Use TLSv1.1
     --tlsv1.2       Use TLSv1.2
     --tlsv1.3       Use TLSv1.3
     --tr-encoding   Request compressed transfer encoding
     --trace <file>  Write a debug trace to FILE
     --trace-ascii <file> Like --trace, but without hex output
     --trace-time    Add time stamps to trace/verbose output
     --unix-socket <path> Connect through this Unix domain socket
 -T, --upload-file <file> Transfer local FILE to destination
     --url <url>     URL to work with
 -B, --use-ascii     Use ASCII/text transfer
 -u, --user <user:password> Server user and password
 -A, --user-agent <name> Send User-Agent <name> to server
 -v, --verbose       Make the operation more talkative
 -V, --version       Show version number and quit
 -w, --write-out <format> Use output FORMAT after completion
     --xattr         Store metadata in extended file attributes

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:35 #7078 от Mast
Mast ответил в теме Не пингуется vpn
точка НЕ мешает.

оно кушает (ТОЧКА) и пару символов по бокам.

не на (ТОЧКА) оно стопиться. я про пакет wget-ssl

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:40 - 13 авг 2021 14:41 #7079 от Mast
Mast ответил в теме Не пингуется vpn
РАБОЧИЙ СКРИПТ
curl 'https://vpnki.ru/index.php?оption=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=a1234567890b1234567890'

сейчас надо разобраться с ключами КУРЛЫ, чтоб не писал ничего мне в роутер...
Последнее редактирование: 13 авг 2021 14:41 от Mast.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 14:56 #7080 от Mast
Mast ответил в теме Не пингуется vpn
РАБОЧИЙ СКРИПТ для wget-ssl
wget-ssl --spider 'https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=12345678901234567890'

1. и для wget-ssl и для curl кавычки должны быть ' а не "

2. ключ --spider у wget-ssl просто проверяет ссылку, и ничего не качает с неё. (вроде не качает)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 15:58 - 13 авг 2021 15:59 #7081 от admin
admin ответил в теме Не пингуется vpn
curl с ключом --silent вроде ничего лишнего не пишет ни в экран ни в лог
ну и попробуйте в вывод отправить в null
curl --silent https://vpnki........... > /dev/null

если все заработало - нажмите на баннеры!
Последнее редактирование: 13 авг 2021 15:59 от admin.
Спасибо сказали: Mast

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
13 авг 2021 17:32 - 13 авг 2021 18:28 #7082 от Mast
Mast ответил в теме Не пингуется vpn
ВАРИАНТ РЕШЕНИЯ ПРОБЛЕМЫ ЗАВИСШИХ НА САЙТЕ СЕССИЙ для OpenWRT

#!/bin/sh
PRS1="172.16.0.1"
if (! ping -q -c 3 ${PRS1} > /dev/null 2>&1)
then
wget-ssl --no-check-certificate --spider 'https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=01234567890123456789' > /dev/null
ifdown ovpn
sleep 10
ifup ovpn
route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.0.1
route add -net 192.168.XX.0 netmask 255.255.255.0 gw 172.16.xx.xx
sleep 30
/etc/init.d/led restart
fi


Cкрипт перегруза интерфейса и сервера по отсутствию пинга на туннель
Этот вариант через WGET
(так же возможен очень похожий вариант через CURL)

1.
Сперва в нем 3 раза выполняется пинг на туннель.
если пинга нет (скажем, завис интерфейс на сайте), то:

2.
выполняется сброс туннеля на сервере через API функцию.
для выполнения этого сброса надо поставить пакет wget
ставим пакет wget
opkg update
opkg install wget
тут есть нюанс!
в openWRT уже присутствует wget как symlink на busybox
нам он не нужен, а нужен нам именно отдельный пакет.
после установки пакета wget к нему надо обращаться как wget-ssl
(а обращение к symlink на busybox будет через wget, но оно нам НЕ надо)
что есть что поможет разобраться команда:
ls -la $(which wget)

сброс туннеля через wget-ssl с ключами --no-check-certificate --spider
(не-проверка сертификата httpS , spider - это просто проверка наличия записи на сервере, без скачивания)
не забываем прописать в скрипт СВОЙ ВАЛИДНЫЙ ключ API с сайта VPNKI

3.
выключаем интерфейс OpenVPN, именно по имени интерфейса (то, что у вас прописано вместо ovpn, а не по имени девайса, т.е. НЕ как tun0)

4.
включаем интерфейс OpenVPN

5.
восстанавливаем стат. маршруты, т.к. они слетят после манипуляций с интерфейсом.
вместо 192.168.ХХ.0 указываем вашу удаленную сеть, вместо 172.16.хх.хх - ваш гейт со страницы настроек на сайте VPNKI

6.
если переназначали светодиоды в роутере, то возвращаем их нормальную работу через led restart

Данный скрипт у меня выполняется раз в 3мин по шэдулеру.
Работает устойчиво. При ручной эмуляции проблемы зависших сессии данный скрипт перегружает туннели без проблем.
Как проявит себя при возможных зависаниях сессий на сервере - покажет время.
Последнее редактирование: 13 авг 2021 18:28 от Mast.
Спасибо сказали: admin

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
14 авг 2021 17:10 #7088 от admin
admin ответил в теме Не пингуется vpn
Спасибо за инструкцию!
Увы, у меня нет всяких WRT, поэтому не смогу потестировать, но думаю, что желающие найдутся.

если все заработало - нажмите на баннеры!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.