![如何在 ubuntu 上维护多个持久 vpnc 连接](https://linux22.com/image/1304795/%E5%A6%82%E4%BD%95%E5%9C%A8%20ubuntu%20%E4%B8%8A%E7%BB%B4%E6%8A%A4%E5%A4%9A%E4%B8%AA%E6%8C%81%E4%B9%85%20vpnc%20%E8%BF%9E%E6%8E%A5.png)
马克·诺尔斯的博客对如何维护持久的 vpnc 连接进行了很好的解释。但是,这对于多个 vpnc 连接来说效果不佳(连接对我来说不起作用,一次断开连接后一切都会重新连接,...)。有没有更好的方法来维护多个 vpnc 连接?
答案1
以下修改适用于多个配置文件:
- 如果您还没有这样做,请将其添加
Local Port 0
到 /etc/vpnc 中的 .conf 文件中。这将使用随机本地端口,并更好地允许多个连接。 对于每个连接,选择您想要连接(并保持连接)的 VPN 网络上的 IP 和端口。对于每个连接,在 /usr/local/bin 中编写一个脚本,检查连接是否仍然可行,如果不可行,则启动 vpnc,例如
EnsureVPNXXX.sh
使用#!/bin/bash if ! nc -z -w 2 targetip targetport then /usr/sbin/vpnc-connect connectionprofile.conf fi
更改重新连接脚本
/etc/vpnc/reconnect-script
以使用所有这些EnsureXXX.sh
脚本(一个接一个地执行它们,所以&
最后没有)#!/bin/bash sleep 30 /usr/local/bin/EnsureVPN1XXX.sh /usr/local/bin/EnsureVPN2XXX.sh ...
- 脚本
/etc/init.d/vpnc
几乎相同,只是你不再需要/etc/default/vpnc
source
不要忘记脚本必须是可执行的。只要您以 root 身份调用它们,这些脚本在任何自动 cron 作业中都能很好地工作,例如,在您调用之前scp
或rdesktop
在 vpn 网络中的任何框上,只需执行 即可EnsureVPNxxx.sh
。您随时可以使用 退出 root 身份su -u yourusername command
。显然,使用 root 的 crontab。