My VPN provider isn’t being supported by the Synology VPN client (because they aren’t using the standard port 1194, instead 1195). After tinkering with the ovpn files the Synology VPN client uses to store the connection settings (and failing), I just installed openvpn with ipkg.
However after tinkering around with the init-script provided by the openvpn ipkg from the NSLU2 feed, I got tired and just rewrote the damn thing:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| #!/bin/sh
case $1 in
start)
# Enable ipv4_forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# Create the necessary file structure for /dev/net/tun
if ( [ ! -c /dev/net/tun ] ); then
if ( [ ! -d /dev/net ] ); then
mkdir -m 755 /dev/net
fi
mknod /dev/net/tun c 10 200
fi
# Load the tun module if not already loaded
if ( !(lsmod | grep -q "^tun") ); then
insmod /lib/modules/tun.ko
fi
# Start the openvpn service
/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config openvpn.conf --writepid /var/run/openvpn.pid
echo "Started Optware openvpn-client"
;;
stop)
# Kill the openvpn service
if [ -f /var/run/openvpn.pid ] ; then
# Compare the pidfile and the current pid
[ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] &&
kill -TERM `pidof openvpn`
else
echo "Stopping Optware openvpn-client: No pidfile found"
fi
# Unload the tun module
if ( (lsmod | grep -q "^tun") ); then
rmmod -f tun
fi
echo "Stopping Optware openvpn-client"
;;
status)
# Check the status
if [ -f /var/run/openvpn.pid ] ; then
[ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] &&
echo "openvpn-client is running"
else
echo "openvpn-client is stopped"
fi
;;
reload)
if [ -f /var/run/openvpn.pid ] ; then
[ "`cat /var/run/openvpn.pid`" == "`pidof openvpn`" ] &&
kill -HUP `pidof openvpn`
echo "Reloading Optware openvpn-client"
fi
;;
restart)
$0 stop
sleep 4
$0 start
;;
esac
|
Place the file in /opt/etc/init.d/S20openvpn, and the client daemon will start on boot.