Platform: Tomato v1.28.0000 -2017.2-kille72- K26ARM USB AIO-64K.
Netgear R7000 router.
I am trying to call an script by using cmd --ipchange in my config.
My config:
Code: Select all
# Automatically generated configuration
daemon
client
dev tun11
proto udp
remote nl.myvpnserver 1198
resolv-retry 30
nobind
persist-key
persist-tun
comp-lzo adaptive
ncp-ciphers AES-128-GCM:AES-256-GCM:AES-128-CBC:AES-256-CBC
cipher AES-128-CBC
redirect-gateway def1
verb 3
script-security 2
up updown.sh
down updown.sh
ca ca.crt
status-version 2
status status
# Custom Configuration
syslog [progname]
persist-key
persist-tun
tls-client
auth-user-pass /tmp/password.txt
comp-lzo
verb 3
reneg-sec 0
ipchange "/etc/openvpn/test.sh"
script-security 3
Code: Select all
#!/opt/bin/bash
#
# Enable port forwarding when using Private Internet Access
#
# Usage:
# ./port_forwarding.sh
set -x
exec 2>/etc/openvpn/mylog
TRANSUSER=myusername
TRANSPASS=mypass
TRANSHOST=my host ip
/bin/echo waiting 20s for vpn to connect and trasmission to start
sleep 20
error( )
{
/bin/echo "$@" 1>&2
exit 1
}
error_and_usage( )
{
/bin/echo "$@" 1>&2
usage_and_exit 1
}
usage( )
{
/bin/echo "Usage: `dirname $0`/$PROGRAM"
}
usage_and_exit( )
{
usage
exit $1
}
version( )
{
/bin/echo "$PROGRAM version $VERSION"
}
port_forward_assignment( )
{
client_id_file="/etc/openvpn/pia_client_id"
if [ ! -f "$client_id_file" ]; then
if hash /opt/bin/shasum 2>/dev/null; then
/usr/bin/head -n 100 /dev/urandom | /opt/bin/shasum -a 256 | tr -d " -" > "$client_id_file"
elif hash /opt/bin/sha256sum 2>/dev/null; then
/usr/bin/head -n 100 /dev/urandom | /opt/bin/sha256sum | tr -d " -" > "$client_id_file"
else
/bin/echo "Please install shasum or sha256sum, and make sure it is visible in your \$PATH"
exit 1
fi
fi
client_id=`/bin/cat "$client_id_file"`
json=`/opt/bin/curl "piaurl>/dev/null`
if [ "$json" == "" ]; then
json='Port forwarding is already activated on this connection, has expired, or you are not connected to a PIA region that supports port forwarding'
fi
/bin/echo server returned message: $json
#trim VPN forwarded port from JSON
PORT=$(echo $json | /usr/bin/awk 'BEGIN{r=1;FS="[{}\":]+"} /port/{r=0; print $3} END{exit r}')
/bin/echo if succesful port is:$PORT
#change transmission port on the fly
/opt/bin/transmission-remote $TRANSHOST --auth $TRANSUSER:$TRANSPASS -p "$PORT"
/bin/echo your transmission details: $TRANSHOST $TRANSUSER $TRANSPASS
}
/bin/echo remember to reconnect to VPN before running this script. Run no longer than 2 minutes after connection or this will fail!
EXITCODE=0
PROGRAM=`basename $0`
VERSION=2.1
while /usr/bin/test $# -gt 0
do
case $1 in
--usage | --help | -h )
usage_and_exit 0
;;
--version | -v )
version
exit 0
;;
*)
error_and_usage "Unrecognized option: $1"
;;
esac
shift
done
port_forward_assignment
exit 0
Code: Select all
+ TRANSUSER=myuser
+ TRANSPASS=mypass
+ TRANSHOST=myhost
+ /bin/echo waiting 20s for vpn to connect and trasmission to start
+ sleep 20
+ /bin/echo remember to reconnect to VPN before running this script. Run no longer than 2 minutes after connection or this will 'fail!'
+ EXITCODE=0
++ basename /etc/openvpn/test.sh
+ PROGRAM=test.sh
+ VERSION=2.1
+ /usr/bin/test 1 -gt 0
+ case $1 in
+ error_and_usage 'Unrecognized option: [AF_INET]46.166.138.167 1198'
+ /bin/echo 'Unrecognized option: [AF_INET]46.166.138.167 1198'
Unrecognized option: [AF_INET]46.166.138.167 1198
+ usage_and_exit 1
+ usage
++ dirname /etc/openvpn/test.sh
+ /bin/echo 'Usage: /etc/openvpn/test.sh'
+ exit 1
Code: Select all
R7000 daemon.warn openvpn[12538]: WARNING: Failed running command (--ipchange): external program exited with error status: 1
My script works fine with ./test.sh and bash -x test.sh from SSH console, just not when running vpn.
Seems like the error is related to the IP and port of the VPN server I am connecting too, however I cannot find which part of this relates to my script? Does anyone know?
Code: Select all
Unrecognized option: [AF_INET]46.166.138.167 1198
I have read the man and FAQ on the website and I'm running out of ideas!