Se você quer saber que o host está ativo, você pode apenas ping
do seu IP ou hostname. Certifique-se de que o firewall esteja aberto para pacotes ICMP echo de onde você tentar fazer o ping.
No entanto, se você quiser saber que openvpn
está em execução, será necessário conectar-se ao host. O OpenVPN usa o UDP na porta 1194 por padrão, então você precisa enviar um pacote UDP para essa porta.
Se openvpn
estiver em execução, ele aceitará esse pacote e o descartará (porque não é um handshake válido do OpenVPN). Você pode testá-lo com netcat
, por exemplo, e também verificar o código de retorno ( $?
- 0 = sucesso, 1 = erro):
~ $ echo "abcd" | netcat -u -v -w2 192.168.130.1 1194
Connection to 192.168.130.1 1194 port [udp/openvpn] succeeded!
~ $ echo $?
0
~ $
Por outro lado, se openvpn
service não estiver rodando, o host deve enviar de volta um pacote ICMP udp port 1194 inacessível , o que fará netcat
sair imediatamente:
~ $ echo "abcd" | netcat -u -v 192.168.130.54 1194
~ $ echo $?
1
~ $
Esteja ciente de que netcat
reportará sucesso mesmo se o host estiver baixo porque com o UDP não é possível distinguir entre host down e openvpn recebendo e descartando o pacote. Em nenhum dos casos, receberá qualquer resposta. Somente se o host estiver ativo e o openvpn estiver desativado, ele receberá a resposta inacessível da porta ICMP e sairá com 1. Isso significa que você precisa executar ping -n -c2 ...
fist para verificar se o host está realmente ativo.
Espero que ajude:)