PrivateNet版VAddyのトラブルシューティング方法について説明します。
PrivateNet版VAddyでは vaddy_privatenet.sh の connect コマンドが成功することが重要になります。
ここでは、vaddy_privatenet.sh の connect コマンドのエラー例と対応方法を説明します。
ローカルネットワークで稼働している診断対象の Web アプリケーションが以下のようなものであると仮定します。
- HTTP or HTTPS: HTTP
- IP アドレス: 192.168.0.10
- ポート: 8080
connect コマンドが成功した場合
connect コマンドが成功した場合のログです。ログの各行にコメントを追記しています。
=== Connect ===
Log file setup : vaddy/2025_04_09_15_55_00.txt
vaddy_agent VERSION: 1.0.2
ssh and ssh-keygen OK.
DNS OK. (PrivateNet Tool からインターネット上のホスト名の名前解決可否の確認)
HTTPS connectivity OK. (VAddy API サーバー api.vaddy.net への HTTPS 接続確認)
Connection to web server OK. (診断対象 Web アプリへの疎通確認)
SSH files exist OK.
.................................
ssh -i vaddy/ssh/id_rsa -N -R 0.0.0.0:2457:192.168.0.10:8080 portforward@pfd.vaddy.net
(VAddy サーバー pfd.vaddy.net へ SSH 接続)
pid:7485 (ssh コマンドの pid)
Checking E2E connectivity...
E2E connectivity OK. (VAddy サーバーから診断対象アプリへの疎通確認)
Connect Status: 0 (接続成功)
connect コマンドが失敗した場合
connect コマンドのエラー例と対応方法を説明します。
vaddy.conf の AUTH_KEY が正しくない
以下のようなエラーメッセージが出力されます。AUTH_KEY に正しい値を設定してください。
=== Connect ===
Log file setup : vaddy/2024_09_02_10_44_03.txt
ssh and ssh-keygen OK.
DNS OK.
HTTPS connectivity OK.
Connection to web server OK.
SSH files exist OK.
.........java.lang.Exception: Error: POST sshkey failed:HTTP/1.1 401 Unauthorized
Date: Mon, 02 Sep 2024 01:44:04 GMT
Server: Apache
Cache-Control: no-cache, private
X-RateLimit-Limit: 450
X-RateLimit-Remaining: 448
X-Frame-Options: SAMEORIGIN
Transfer-Encoding: chunked
Content-Type: application/json
{"error_message":"Authentication Error."}
See vaddy/2024_09_02_10_44_03.txt for more details.
Connect Status: 1
Error: Can not make connection for private net.
FQDN の指定が正しくない
VAddy 管理画面で登録したサーバーの FQDN と vaddy.conf で指定した VADDY_FQDN が異なる場合、以下のようなエラーメッセージが出力されます。この 2 つの FQDN は一致している必要があります。
=== Connect ===
Log file setup : vaddy/2025_03_18_12_06_28.txt
vaddy_agent VERSION: 1.0.2
ssh and ssh-keygen OK.
DNS OK.
HTTPS connectivity OK.
Connection to web server OK.
SSH files exist OK.
.java.lang.Exception: Error: POST sshkey failed:HTTP/1.1 400 Bad Request
Date: Tue, 18 Mar 2025 03:06:29 GMT
Cache-Control: no-cache, private
X-RateLimit-Limit: 450
X-RateLimit-Remaining: 448
X-Frame-Options: SAMEORIGIN
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json
Server: Scutum
{"error_message":"not match fqdn or user of private net."}
See vaddy/2025_03_18_12_06_28.txt for more details.
Connect Status: 1
Error: Can not make connection for private net.
Web アプリケーションに接続できない
PrivateNet Tool 実行ホストから診断対象の Web アプリケーションに接続できない場合、以下のようなエラーメッセージが出力されます。
=== Connect ===
ssh and ssh-keygen OK.
DNS OK.
HTTPS connectivity OK.
java.net.ConnectException: Operation timed out
java.lang.Exception: Error: Could not connect to web server "192.168.0.10:8080"
See vaddy/2024_07_30_12_02_18.txt for more details.
Connect Status: 1
Error: Can not make connection for private net.
以下のような原因が考えられます。
- vaddy.conf の VADDY_YOUR_LOCAL_IP で指定した IP アドレスが正しくない。
- vaddy.conf の VADDY_YOUR_LOCAL_PORT で指定したポート番号が正しくない。
- PrivateNet Tool 実行ホストと Web アプリケーション間のネットワーク接続が確率できない。ファイアウォールなどが通信が遮断されている可能性がある。
VAddy 管理画面で登録したサーバーの http/https の指定が正しくない
以下のようなエラーメッセージが出力されます。VAddy 管理画面で http/https を正しく指定してください。
=== Connect ===
Log file setup : vaddy/2024_07_30_11_39_43.txt
ssh and ssh-keygen OK.
DNS OK.
HTTPS connectivity OK.
Connection to web server OK.
SSH files exist OK.
..........
ssh -i vaddy/ssh/id_rsa -N -R 0.0.0.0:2035:192.168.0.10:8080 portforward@pfd.vaddy.net
pid:10150
Checking E2E connectivity...
Checking E2E connectivity...
Checking E2E connectivity...
Checking E2E connectivity...
Checking E2E connectivity...
HTTP/1.0 200 OK
Date: Tue, 30 Jul 2024 02:41:03 GMT
Server: Apache
Cache-Control: private, must-revalidate
pragma: no-cache
expires: -1
X-RateLimit-Limit: 450
X-RateLimit-Remaining: 448
X-Frame-Options: SAMEORIGIN
Connection: close
Content-Type: application/json
{"status":"error","message":"not match host of private net."}
Error: E2E connection failure.
grep result:10150 s018 S+ 0:00.07 ssh -i vaddy/ssh/id_rsa -N -R 0.0.0.0:2035:192.168.0.10:8080 portforward@pfd.vaddy.net
kill pid: 10150
Connect Status: 1
Error: Can not make connection for private net.
PrivateNet Tool から VAddy サーバーへ SSH 接続不可能
以下のエラーメッセージが出力されます。
=== Connect ===
Log file setup : vaddy/2024_08_01_18_29_05.txt
ssh and ssh-keygen OK.
DNS OK.
HTTPS connectivity OK.
Connection to web server OK.
SSH files exist OK.
.........
ssh -i vaddy/ssh/id_rsa -N -R 0.0.0.0:2035:192.168.0.10:8080 portforward@pfd.vaddy.net
pid:50888
(SSH 接続切断を再現するためには、この後にすぐ pkill -f 'ssh -i vaddy/ssh/id_rsa' で SSH プロセスを終了させます)
Checking E2E connectivity...
Checking E2E connectivity...
Checking E2E connectivity...
Checking E2E connectivity...
Checking E2E connectivity...
HTTP/1.0 200 OK
Date: Thu, 01 Aug 2024 09:29:26 GMT
Server: Apache
Cache-Control: private, must-revalidate
pragma: no-cache
expires: -1
X-RateLimit-Limit: 450
X-RateLimit-Remaining: 440
X-Frame-Options: SAMEORIGIN
Connection: close
Content-Type: application/json
{"status":"error","message":"not match host of private net."}
Error: E2E connection failure.
java.lang.Exception: Error: no process found :
(SSH プロセスを kill しようとしますが、該当 SSH プロセスがないので no process found となっています)
See vaddy/2024_08_01_18_29_05.txt for more details.
Connect Status: 1
Error: Can not make connection for private net.
このエラーが繰り返される場合は、PrivateNet Tool の実行ホストからインターネット上の VAddy サーバーへ SSH 接続できない可能性があります。以下のコマンドを実行して、PrivateNet Tool の実行ホストから VAddy サーバーへの SSH 接続が可能か確認します。
nc(netcat) コマンドで、VAddy サーバーの TCP/22 へ接続可能か確認します。
$ nc -w 3 pfd.vaddy.net 22
SSH-2.0-OpenSSH_7.3 (この文字列が返れば接続成功しています)
接続に成功した場合は上記のような文字列が返ります。
なにもレスポンス文字列が返らない場合は、SSH サーバーへの接続に失敗しています。PrivateNet Tool の実行ホストとインターネットの間に存在するネットワークアプライアンスなどにより SSH 接続が遮断されていないかご確認ください。
成功・失敗いずれの場合も、コマンドプロンプトが戻らない場合は Ctrl+C で nc コマンドを終了してください。
ssh 接続確認メッセージが表示される。
コマンド実行ログの中に、
The authenticity of host 'pfd.vaddy.net (13.112.146.129)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
といった内容が出力されている場合は、一度下記の SSH コマンドを手動で実行し、 「yes」と入力してください。その後、もう一度 connect コマンドを実行すれば接続できるようになります。
ssh portforward@pfd.vaddy.net
CI環境でよく起こる問題
Github Actions や CircleCI など毎回異なる環境がセットアップされる環境で VAddy の PrivateNet Tool を使う場合、SSH のホスト認証によって接続できないケースがあります。エラーとしては "Host key verification failed." というようなメッセージが出力されることがあります。
この場合はその環境から SSH する前に ssh config ファイル(~/.ssh/config)にホスト認証を回避する設定を記載してください。
Host *.vaddy.net
StrictHostKeyChecking no