【发布时间】:2015-03-31 09:06:45
【问题描述】:
当我按顺序执行它们时,它可以工作。我把它们组合起来之后,出现了一个错误。
第一个文件(a.sh)。
# !/bin/bash
/etc/init.d/xl2tpd start | xargs echo
echo "c zju_vpn" > /var/run/xl2tpd/l2tp-control
第二个文件(b.sh)。
#!/bin/bash
sleep 3
VPN_SERVER_IP=10.5.1.7
DEFAULT_GW=10.214.16.1
route add $VPN_SERVER_IP gw $DEFAULT_GW eth0
route del default
route add default ppp0
ping github.com
echo "c zju_vpn" > /var/run/xl2tpd/l2tp-control 执行后,不会立即出现 ppp0 界面。所以我在文件 b.sh 中写了这个sleep 3。
如果我将它们组合成一个(c.sh)。
#!/bin/bash
/etc/init.d/xl2tpd start
echo "c zju_vpn" > /var/run/xl2tpd/l2tp-control
sleep 3
VPN_SERVER_IP=10.5.1.7
DEFAULT_GW=10.214.16.1
route add $VPN_SERVER_IP gw $DEFAULT_GW eth0
route del default
route add default ppp0
ping github.com
出现错误:SIOCADDRT: No such device.
当我输入ifconfig 时,没有 ppp0。所以在执行route add default ppp0时会失败,这就是原因。但我不知道为什么会这样。
有人帮助我。谢谢。
【问题讨论】:
-
您确定 VPN 将在 3 秒后启动吗? (您是否尝试过将其增加到 10 秒?)
-
@duskwuff 显然不是。但如果我把它做得很少或删除这一行,它就行不通