我只想检查我的远程openVpn服务器是否在运行。 那是。 我怎样才能做到这一点? 使用“top”或“ps aux”会更安全一些,但也许我可以用某种方式ping通它,也就是说,不必先通过ssh连接/validation身份。
如果你想知道主机是活着的,你可以ping它的IP或主机名。 确保防火墙对于来自任何您尝试ping的ICMP回应数据包都是打开的。
但是,如果您想知道openvpn正在运行,则必须连接到主机。 OpenVPN默认使用端口1194上的UDP,所以你必须发送一个UDP包到那个端口。
如果openvpn 正在运行,它将接受该数据包并将其丢弃(因为它不是有效的OpenVPN握手)。 你可以用netcat来testing它,并检查返回码( $? – 0 = success,1 = error):
~ $ echo "abcd" | netcat -u -v -w2 192.168.130.1 1194 Connection to 192.168.130.1 1194 port [udp/openvpn] succeeded! ~ $ echo $? 0 ~ $
另一方面,如果openvpn服务没有运行,主机应该发送一个ICMP udp端口1194不可达数据包,这将使netcat立即退出:
~ $ echo "abcd" | netcat -u -v 192.168.130.54 1194 ~ $ echo $? 1 ~ $
请注意,即使主机closures , netcat也会报告成功,因为使用UDP无法区分host down和openvpn接收和丢弃数据包。 在任何情况下,它都将收到任何回应。 只有当主机启动并且openvpnclosures时,它才会收到ICMP端口不可达响应,并以1退出。这意味着您必须运行ping -n -c2 ... fist来validation主机是否已经启动。
希望帮助:)