我编写了简单的服务器-客户端 OpenVPN 配置文件:
服务器配置文件
dev tun0
ifconfig 10.8.0.1 10.8.0.2
客户端配置文件
dev tun0
ifconfig 10.8.0.2 10.8.0.1
remote 192.168.0.123
它基本上是一个明文 OpenVPN 隧道 - 现在对我来说还可以,我只是从基础开始学习,重点是 - 耶,它有效!:)
我还编写了一个简单的 bash 脚本来自动运行客户端:
#!/bin/bash
openvpn --config client.conf
并另存为run.sh
。然后,想将其添加到cron
以允许客户端在我需要的时候连接到 vpn 服务器。
我做到了:
crontab -e
11 5 * * * /home/mirx/run.sh
但我在服务器端没有看到任何连接的客户端 - 我的 cron 条目是否有效?在客户端端,tun
当我使用 检查时,没有看到任何新界面ifconfig
。有什么想法吗?
答案1
更新
您的脚本必须使用配置文件的完整路径,因为 cron 守护程序不以您的用户身份运行(也不从您的主目录运行)。
#!/bin/bash
openvpn --config /home/mirx/client.conf
另外,请确保你正在编辑 root 的 cronjob,因为你需要 root 才能连接到 openvpn 网络
更新 2
另外,似乎你可能混淆了你的 corn 语法,有这个标题可以帮助你进行设置:
#minute (0-59),
#| hour (0-23),
#| | day of the month (1-31),
#| | | month of the year (1-12),
#| | | | day of the week (0-6 with 0=Sunday).
#| | | | | commands
旧答案
我建议在末尾放置与号(&)以确保它在后台运行:
11 5 * * * /home/mirx/run.sh &
这样,您就可以检查它是否正在运行,或者在需要时终止它ps ax | grep 'run.sh'
此外,如果您在脚本中使用任何变量(如 $HOME 或相对路径),run.sh
它将不起作用,因为 cron 是作为单独的用户运行的,通常无法访问大多数环境变量。