ソフトイーサで、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.を探すしかなさそう