MacでSoftEtherに接続する時の面倒なコマンドをexpectで自動化し、一つのコマンドで接続できるようにしてみた
はじめに
最近、自宅の回線がIPv6に対応したことにより、今まで使用していたVPNの接続方法が利用できなくなってしまいました。
ついては、他に方法がないかなと探していたらSoftEther VPNが良さそうだということでこちらを利用することに。
しかし、Macで使用するには接続と切断に少々面倒なコマンドを入力せねばならず、使い勝手が悪い。
ということで、これを簡単にする方法を以下にまとめます。
必要なもの
- SoftEther VPN
- expect
expectについては以下をご参照下さい。
https://qiita.com/Mskmemory/items/013dff1a76e58fcdc364
接続
以下のスクリプトを作成。
connect.sh
#!/usr/bin/env bash
sudo /usr/local/vpnclient/vpnclient start
expect -c "
set timeout 2
spawn /usr/local/vpnclient/vpncmd
expect \"1 - 3 を選択:\"
send \"2\n\"
expect \"IP アドレス:\"
send \"\n\"
expect \"VPN Client>\"
send \"AccountConnect\n\"
expect \"接続設定の名前:\"
send \"[各自の接続名]\n\"
expect \"VPN Client>\"
send \"exit\n\"
interact
"
実行権限を付与。
chmod a+x connect.sh
実行。
./connect.sh
切断
disconnect.sh
#!/usr/bin/env bash
expect -c "
set timeout 2
spawn /usr/local/vpnclient/vpncmd
expect \"1 - 3 を選択:\"
send \"2\n\"
expect \"IP アドレス:\"
send \"\n\"
expect \"VPN Client>\"
send \"AccountDisconnect\n\"
expect \"接続設定の名前:\"
send \"[各自の接続名]\n\"
expect \"VPN Client>\"
send \"exit\n\"
interact
"
sudo /usr/local/vpnclient/vpnclient stop
disconnect.sh
#!/usr/bin/env bash
expect -c "
set timeout 2
spawn /usr/local/vpnclient/vpncmd
expect \"1 - 3 を選択:\"
send \"2\n\"
expect \"IP アドレス:\"
send \"\n\"
expect \"VPN Client>\"
send \"AccountDisconnect\n\"
expect \"接続設定の名前:\"
send \"[各自の接続名]\n\"
expect \"VPN Client>\"
send \"exit\n\"
interact
"
sudo /usr/local/vpnclient/vpnclient stop
実行権限を付与。
chmod a+x disconnect.sh
実行。
./disconnect.sh
できた!
Author And Source
この問題について(MacでSoftEtherに接続する時の面倒なコマンドをexpectで自動化し、一つのコマンドで接続できるようにしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/mix_dvd/items/8160ec1316ede35bef75著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .