【问题标题】:Connect to OpenVPN server through Node.js通过 Node.js 连接到 OpenVPN 服务器
【发布时间】:2017-07-31 06:11:40
【问题描述】:

我正在尝试创建一个 GUI 客户端,用于使用电子和节点连接到 OpenVPN 服务器,但我正在努力弄清楚如何使用 .ovpn 文件实际连接到服务器。

我的问题是使用节点连接到 OpenVPN 服务器的最佳方式是什么?最好调整诸如

之类的终端命令

“openvpn——配置路径”

或者有没有像 tunnelblick 这样的应用程序更容易或更高效的其他方式?

【问题讨论】:

标签: javascript node.js openvpn


【解决方案1】:

您好,我在上一个项目中一直在使用 electron 和 ovpn,所以这里有一些提示。

VPN 需要管理员/root 权限才能进行设置,因此在 openvpn --config <path> 上运行 child_process.spawn 将失败,除非您的电子应用程序正在通过 sudo/admin 权限运行。

您也可以使用electron-sudo 包,link here。这基本上是使用 sudo/admin 生成的子进程。也就是,app 运行正常,但是 vpn 命令用 sudo 运行。

但是,如果您的客户对向您提供 sudo/admin 持粗略态度,则必须在启动您的应用之前单独运行 VPN。

总而言之,它是一个管理员/sudo 的事情。 希望这会有所帮助。

【讨论】:

  • 我必须在客户端计算机上安装 openvpn 吗?比如检查它是否安装,如果它没有安装它?像 tunnelblick 这样的客户会这样做吗?
  • 另外,运行openvpn --config <path> 似乎挂在Initialization Sequence Completed
  • 没错。解决此问题的一种方法是通过 Visual Studio 捆绑 vpn 和电子应用程序。不幸的是,我不精通 Visual Studio,无法告诉您如何执行此操作(让其他人执行此操作)。编辑:如果不是通过 sudo/admin 运行,VPN 连接将挂起。
  • 我以 sudo 运行它,但由于某种原因它仍然挂起。
  • 如果您通过终端(应用程序外部)运行相同的命令并且它可以工作,那么它是 child_process.exec 错误。您需要在child_process.exec 命令中使用electron-sudo 或特定于操作系统的“输入root/admin 密码”。使用 `child_process.exec('sudo openvpn...') 这将不起作用,因为您不会收到输入密码的提示
猜你喜欢
  • 1970-01-01
  • 2021-08-27
  • 2020-10-19
  • 2015-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 2015-05-09
相关资源
最近更新 更多