Наличие сети определяется по пингу Яндекса (хе-хе, яндекс чаще пингуют, чем используют
) ).
В теме так и значилось - "если подкл. интернет".
Команда ping отправляет 2 пакета и ловит ответы. Если оба ответа получены, считает, что соединение есть.
С подробностями можно ознакомиться в man ping и man grep
Я с vpn никогда дела не имел, поэтому не знаю, что там и как.
Вероятно, кто-то отвечает на пинги вместо яндекса.
Вам достаточно поменять строку с конвейером ping | grep на что-то другое, чтобы достичь желанного.
Возможно, это где-то в логах есть.
Тут упоминался nm-tool.