我正在使用最新的 raspbian 操作系统的树莓派上运行 openvpn 的客户端安装。除了我的route-up.sh 和 down.sh 脚本之外,一切正常。我可以手动运行它们并且它们可以工作,但是日志显示它们在由 openvpn 运行时出错。
我已经将问题范围缩小到到处都需要完整路径(手动执行时路径是相对的,但我发现/被告知当 openvpn 运行脚本时它们需要是完整路径)。
问题是我找不到树莓派的 iptables 在哪里。我在/sbin/中找到了以下内容
iptables -> xtables-multi
iptables-恢复 -> xtables-multi
iptables-保存 -> xtables-multi
route-up.sh 将我的规则附加到哪个文件?当我尝试手动打开它们来查看(其中任何一个)时,它就像我缺少字体一样混乱。有任何想法吗?
供参考:这是我的route-up.sh 脚本:
#!/bin/bash
sleep 5
sudo ip rule add from 192.168.0.134 table 10
sudo ip route add default via 192.168.0.1 table 10
sudo iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A INPUT -d mydns.duckdns.org -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -d mydns.duckdns.org -j DROP
if ! pgrep -x "deluged" > /dev/null
then
sudo -u pi deluged
PID=$!
sleep 3
kill -2 $PID 2>/dev/null
fi
我很感激你的帮助!
答案1
在这种情况下,只需在交互式 shell 中运行which iptables
(或which <command>
) 即可查找使用搜索路径运行相关程序时调用的完整路径。然后将该路径放入您的脚本中。
有人反对使用which
that 有利于其他程序,例如whence
或locate
。使用您最喜欢的这些选项。