immortalwrt/package/ntlf9t/openwrt-shadowvpn-master/files/shadowvpn.init
2020-02-14 13:40:14 +08:00

72 lines
1.5 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
#
# Copyright (C) 2015 OpenWrt-dist
# Copyright (C) 2015 Jian Chang <aa65535@live.com>
#
# This is free software, licensed under the GNU General Public License v3.
# See /LICENSE for more information.
#
START=90
STOP=15
CONFIG=/var/etc/shadowvpn.conf
start_vpn() {
local enable server port password concurrency mtu intf
config_get_bool enable $1 enable
[ "$enable" = 1 ] || return 0
config_get server $1 server
config_get port $1 port
config_get user_token $1 user_token
config_get password $1 password
config_get concurrency $1 concurrency
config_get net $1 net
config_get mtu $1 mtu
config_get intf $1 intf
: ${server:?}
: ${port:?}
: ${password:?}
: ${user_token:=0000000000000000}
mkdir -p $(dirname $CONFIG)
cat <<-EOF >$CONFIG
server=$server
port=$port
password=$password
mode=client
concurrency=1
net=${net:-10.7.0.2/24}
mtu=${mtu:-1432}
intf=${intf:-tun0}
up=/etc/shadowvpn/client_up.sh
down=/etc/shadowvpn/client_down.sh
pidfile=/var/run/shadowvpn.pid
logfile=/var/log/shadowvpn.log
EOF
if [ "$user_token" != "0000000000000000" ]; then
echo "user_token=$user_token" >>$CONFIG
fi
/usr/bin/shadowvpn -c $CONFIG -s start
}
start() {
config_load shadowvpn
config_foreach start_vpn shadowvpn
}
stop() {
/usr/bin/shadowvpn -c $CONFIG -s stop
}
boot() {
if [ ! -c "/dev/net/tun" ]; then
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 0666 /dev/net/tun
fi
until ip route show 0/0 | grep -q "^default"; do
sleep 1
done
start
}