我想在启动时连接 OpenVPN。
我已添加sudo openvpn /file.ovpn
到crontab
,但它在启动时无法连接。
正确的程序是怎样的?
答案1
我已经添加
sudo openvpn /file.ovpn
到 crontab,但它在启动时不会连接。
作为管理员,您通常使用 cron 来安排重复的作业,而不是运行需要启动的守护程序和服务。
此外,当您拥有管理员权限时,您不会在 cron 作业中使用,而是在配置文件的字段sudo
中设置正确的用户。<user>
/etc/crontab
/etc/cron.d/job.spec
正确的程序是怎样的?
阅读手册:https://openvpn.net/index.php/open-source/documentation/howto.html#startup
Linux
如果您在 Linux 上通过 RPM 或 DEB 包安装 OpenVPN,安装程序将设置一个启动脚本。执行时,启动脚本将扫描.conf
中的配置文件/etc/openvpn
,如果找到,将为每个文件启动一个单独的 OpenVPN 守护程序。
因此,只需将您的配置文件复制到/etc/openvpn/connection-name.conf
我最近必须在 Ubuntu 16.04 LTS 服务器上设置 OpenVPN,这个过程稍微复杂一些,因为使用 systemd 时,不再使用 init 脚本,而是模板化使用 systemd 单元文件。
- 仍然将您的配置文件复制到
/etc/openvpn/connection-name.conf
- 测试 OpenVPN 连接是否以“connection-name”开头
systemctl start openvpn@connection-name
- 使用以下方式确认链接是否建立:
ip addr list
andip route list
systemctl status openvpn@connection-name
and/or
journalctl --identifier ovpn-connection-name
and/or - 确保服务在重启后仍然存在:
systemctl enable openvpn@connection-name
答案2
/etc/init.d
我会按照描述添加一个 .sh在此 Unix 和 Linux stackexchange 页面上或者配置服务控制器。
或者@reboot
在 crontab 中使用。
顺便说一句,你应该添加你在 crontab 中所写的内容,以便我们了解哪里出了问题。
答案3
对于这个特定的应用程序来说,使用@reboot
incrontab
不起作用。
我创建了一个/etc/rc.local
, chmod u+x /etc/rc.local
。
/etc/rc.local
这是文件的内容
openvpn ~/file.ovpn
重启服务器后,连接成功。