ソフトイーサで、vpncmd を非対話で使うために試行錯誤した内容を書く
マニュアルは下記を参照
https://ja.softether.org/4-docs/1-manual/6/6.2
接続
vpncmd はVPNブリッジなどへ接続して設定するためのクライアントであり、つまりVPNブリッジ(管理サーバ)が起動していないと設定は出来ない
オプションは /SERVER でも --server でもどっちの形式も受け付ける。 -hでヘルプは出ないので --helpか /? を使う。 大文字小文字の区別はほぼ無い
vpncmd localhost:443 /SERVER /PASSWORD:password /adminhub:BRIDGE
localhost:443 | 接続先ホスト名とポート番号 |
/SERVER | VPNブリッジへ接続するモード指定 |
/PASSWORD:password | 管理用パスワード |
/ADMINHUB:BRIDGE | ブリッジ名(HUBの編集をするとき) |
ポート番号は省略すると 443
コマンド
/CMDオプションで直接実行するのと、/INオプションでファイルから読んで実行するのとある。ファイルから読む形式の方がつぶしが効く
vpncmd localhost /SERVER /PASSWORD:password /adminhub:BRIDGE /IN:/tmp/cmdlist.txt /OUT:/tmp/result.log
/IN:/tmp/cmdlist.txt | コマンドファイル |
/OUT:/tmp/result.log | ログファイル(画面に出るので上書きする) |
コマンドファイル
基本的にプロンプトから手で打つのと同じものを書くだけ。
そのためか、コメント機能は無いので そこだけどうするかわからん。 天才にコメントは不要なのか
例:/tmp/cmdlist.txt (カスケード接続の設定の編集)
CascadeSet cas_hoge /SERVER:vpn.example.com:443 /HUB:hub_hoge CascadeUsernameSet cas_hoge /USERNAME:username CascadePasswordSet cas_hoge /PASSWORD:password /TYPE:standard
cas_hoge | 編集対象のカスケード接続名 |
/SERVER:vpn.example.com:443 | 接続先VPNサーバ ホスト名とポート番号 |
/HUB:hub_hoge | 接続先HUB名 |
/USERNAME:username | 接続に使うユーザ名 |
/PASSWORD:password | 接続に使うパスワード |
/TYPE:standard | 認証方式(固定) |
エラー処理
最後のエラーだけエラーコードが取得できる。途中でエラーが発生しても次のコマンドの成否で上書きされるので全然だめ。
VPN Server/BRIDGE>CascadePasswordSet cas_hoge /PASSWORD:password /TYPE:standard CascadePasswordSet command - Set User Authentication Type of Cascade Connection to Password Authentication Error occurred. (Error code: 29) ★←これをgrep Object not found.
ログファイルを見て、Error occurred.を探すしかなさそう