我只想检查我的远程 openVpn 服务器是否正在运行。那是。我怎样才能做到这一点?使用“top”或“ps aux”会更安全,但也许我可以用某种方式ping它,也就是说,不必先通过ssh连接/验证?
如果你想知道主机是否存活,你可以只知道ping
它的 IP 或主机名。确保防火墙对来自您尝试 ping 的任何地方的传入ICMP 回显数据包打开。
但是,如果您想知道它openvpn
正在运行,则必须连接到主机。默认情况下,OpenVPN 在端口 1194 上使用 UDP,因此您必须将 UDP 数据包发送到该端口。
如果openvpn
正在运行,它将接受该数据包并丢弃它(因为它不是有效的 OpenVPN 握手)。netcat
例如,您可以测试它并检查返回代码($?
- 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
~ $
Run Code Online (Sandbox Code Playgroud)
另一方面,如果openvpn
服务没有运行,主机应该发回一个ICMP udp 端口 1194 不可达数据包,这将netcat
立即退出:
~ $ echo "abcd" | netcat -u -v 192.168.130.54 1194
~ $ echo $?
1
~ $
Run Code Online (Sandbox Code Playgroud)
请注意,netcat
即使主机关闭也会报告成功,因为使用 UDP 无法区分主机关闭和 openvpn 接收和丢弃数据包。在这两种情况下,它都不会收到任何响应。仅当主机已启动且 openvpn 已关闭时,它才会收到 ICMP 端口无法访问响应并以 1 退出。这意味着您必须运行ping -n -c2 ...
fist 以验证主机实际上已启动。
希望有帮助:)
归档时间: |
|
查看次数: |
9022 次 |
最近记录: |