Ubuntu起動時にSoftEther VPN Clientを自動起動し、DHCP接続&Staticルートを設定するようにする【init.d】

前にSoftEther VPN Client を設定したが、起動時に毎回手動で接続するのは面倒なので、自動でVPN接続を行うようにしたい。

環境
・Ubuntu Server 18.04
・VPN Client設定済み

以下公式を参考にしようとしたが、これはRedhat系のものであり、checkcfgが最近のUbuntuには無いようなので、却下。

https://ja.softether.org/4-docs/1-manual/7/7.3

で、色々調べて作成。systemdでも出来るが、init.dを使うことにした。
私の環境による条件は以下の通り。

・VPN接続後、DHCPでIPを取得。
・VPN接続先からでしかアクセスできないファイルサーバがあるので、VPN接続後にスタティックルートを設定する。

同じような環境の方がいるかわからないが、メモに残しておく。

sudo vi /etc/init.d/vpnclient
#! /bin/sh
# description: SoftEther VPN Client (DHCP & Static route)

# VPN Client Path
COMMAND="/usr/local/vpnclient/vpnclient"
# VPN name
VPNNAME="vpn_dev"
# fileserver ip
FILESV="(ファイルサーバIP)"
# gateway ip to fileserver
GW="(ファイルサーバへ経由するゲートウェイIP)"

case "$1" in
    start)
        $COMMAND start
        sleep 3
        dhclient -e IF_METRIC=10000 $VPNNAME
        route add $FILESV gw $GW
    ;;
    stop)
        route del $FILESV
        $COMMAND stop
    ;;
    restart)
        $0 stop
        sleep 3
        $0 start
    ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
    ;;
esac

exit 0

普段のインターネットはVPN経由にしたくないので、DHCPのメトリックを下げた。

これだけだと再起動時に自動でVPN接続されない。
パーミッションを変更し、update-rc.dで自動起動の登録を行う。

$ sudo chown root:root /etc/init.d/vpnclient
$ sudo chmod 755 /etc/init.d/vpnclient

$ sudo update-rc.d vpnclient defaults 99

※以下のようにパスを書くとエラーになるので注意。
$ sudo update-rc.d /etc/init.d/vpnclient defaults 99
update-rc.d: error: unable to read /etc/init.d//etc/init.d/vpnclient

再起動して確認。

$ ifconfig
$ route

参考:

https://qiita.com/rimksky/items/e169f9af83ce472b4ce3

https://qiita.com/xoihazard/items/ca03f6d777a39b0a2831

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする