1

I have a Java Program that needs to invoke a URL, that is reachable only after a VPN connection has been established (to a remote VPN host). The program runs on a Linux box.

Therefore, I need to be able to start/stop the VPN connection as-needed (essentially I do not need it 24 hours).

What is the best way for this:

  1. Can i create a VPN Connection programatically in Java? Is it even possible?
  2. Can i install VPN Client software on Linux Machine, and then via a shell script (which i will invoke via Java), start/stop the VPN Client Connection whenever needed. Is this viable or better solution?
4

1 回答 1

1

是的,您可以通过运行适当的管理命令从程序(无论哪种编程语言)启动 VPN 连接。确切的管理命令是特定于分发甚至安装的。

通常,VPN 连接(由OpenVPN提供)将由(shell)命令/etc/init.d/openvpn start vpnname或包装脚本启动(RedHat 衍生产品有,其他发行版可能没有)。该命令必须作为 执行root,因此您还需要为其添加前缀sudo并配置 sudo 以便运行应用程序的用户可以运行该命令。

由于该命令特定于安装,因此您需要使其可配置(并且可能提供适合您使用的发行版的默认配置)。

还有其他相互不兼容的 VPN 实现。每个都有不同的命令来启动它,但是每个都有这样的命令,所以实现应该能够在适当的配置下启动它们中的任何一个。

请注意,VPN 通常可能需要密码才能启动。如果是这样,则必须将密码保存在客户端上,或者您还需要为用户提供输入密码的方法。它的传递方式又是 VPN、分发和可能的安装特定的。

于 2013-02-05T12:09:18.807 回答