Ksbridge の利用方法については、Ksbridge 利用マニュアルをご参照ください。
今後、こちらのページは更新されませんのでご注意ください。
Ksocket を使用するためには、 KsocketとKompira ckoudの間でwebsocket通信を確立する必要があります。
ここでは、インターネットに接続するためにプロキシサーバを経由するような環境下で Ksocket を実行するための方法を解説します。
Ksbridge について
Ksbridge は、プロキシサーバを経由する環境下で KsocketとKompira cloud間の通信を行えるようにするミドルウェアです。
以下の図のように、KsocketとKompira cloudの間のブリッジとして動作します。
この図では KsocketとKsbridge間の通信に8080ポート、Ksbridgeとプロキシサーバ間の通信に3128ポートを例として記載していますが、設定により変更可能です。
+---------------------------------------------+ | intranet | | | | +--------------------------------+ | | | localhost | | | | +---------+ +----------+ | +-------+ +---------------+ | | | ksocket | 8080 | ksbridge | | 3128 | proxy | 443 | Kompira cloud | | | | |<---->| |<-=------=-------=---->| | | | | | IN | | | OUT | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------+ +----------+ | +-------+ +---------------+ | +--------------------------------+ | | | +---------------------------------------------+
Ksbridge を使用する場合、こちらのページ からダウンロードしてください。
使用方法
Ksbridge の起動
Ksocket をインストールしたサーバに ダウンロードしたKsbridgeのファイルを配置し、展開してください。
$ tar zxf ksbridge_0.2.0_linux_x86_64.tar.gz $ cd ksbridge_0.2.0_linux_x86_64 $ ls ksbridge README.md
ファイルが展開できたら、Ksbridgeを起動してみましょう。
起動の前に、使用しているプロキシサーバのアカウント情報とポート番号を確認してください。
ここでは、以下のような環境であると仮定して、対応したKsbridgeの起動コマンドを記載します。
項目 | 値 |
---|---|
Kompira cloudのスペースURL | yourspace.cloud.kompira.jp |
プロキシサーバURL | your.proxyserver.co.jp |
プロキシサーバのポート番号 | 3128 |
プロキシサーバのアカウント名 | username |
プロキシサーバのアカウントパスワード | password |
ksocketとksbridge間の接続に使用するポート | 8080 |
$ ./ksbridge -bind 127.0.0.1:8080 -host yourspace.cloud.kompira.jp -proxy http://username:password@your.proxyserver.co.jp:3128 ******************************************************************************** ksbridge - Tiny websocket connection bridge server listen: ws://127.0.0.1:8080/api/ksocket/connect server: wss://yourspace.cloud.kompira.jp/api/ksocket/connect proxy: http://username:password@your.proxyserver.co.jp:3128 ********************************************************************************
プロキシサーバへのアクセスにアカウントが必要ない場合は、以下のように指定します。
$ ./ksbridge -bind 127.0.0.1:8080 -host yourspace.cloud.kompira.jp -proxy http://your.proxyserver.co.jp:3128
実行すると、KsbridgeはKsocketからの通信を待つ状態となります。
Ksocket の設定
次に、Ksocketの設定を行います。 まずは、 Ksocketドキュメント を参照し、Ksocketのインストールを行いましょう。
通常 Ksocket の設定ファイルには Kompira cloudのスペースURLを指定するのですが、 Ksbridgeを使用する場合、スペースURLは前述のとおり Ksbridge 側に設定することになります。
Ksocket の設定ファイルには、代わりに Ksbridge に対して接続する情報を設定します。
Ksocket の設定ファイルである、ksocket.toml を以下のように編集してください。
[connect] host = "127.0.0.1" port = 8080 # ksbridge の bindポートに変更する protocol = "ws" # "wss" から "ws" に変更する。設定行が存在しない場合は追加する token = "FrKc+82kZGG9sdRS5AXnemPN8u6sDdY3PXxbqdB4" # Kompira cloud上で発行したksocketトークンを設定する (以下省略)
Ksocket の起動
ksocket.toml の設定を反映するために、 Ksocket サービスの再起動を行います。
$ systemctl restart ksocket
再起動をすると、Ksocketは設定に従って自分の8080ポートにアクセスをしにいきます。 正常に接続ができた場合、Ksbridgeでは以下のような表示となります。
$ ./ksbridge -bind 127.0.0.1:8080 -host yourspace.cloud.kompira.jp -proxy http://username:password@your.proxyserver.co.jp:3128 ******************************************************************************** ksbridge - Tiny websocket connection bridge server listen: ws://127.0.0.1:8080/api/ksocket/connect server: wss://yourspace.cloud.kompira.jp/api/ksocket/connect proxy: http://username:password@your.proxyserver.co.jp:3128 ******************************************************************************** INFO[0011] connecting to client... INFO[0011] client has connected INFO[0011] connecting to server... INFO[0011] server has connected
また、Kompira cloud にアクセスし「設定 > Ksocket」を表示してください。 ステータスが「接続済み」となっていれば Ksocket は正常に Kompira cloud に接続できています。
これで Ksbridge を介した Ksocket と Kompira cloudの接続は完了です。
トラブルシューティング
Ksbridge に何も出力されない
Ksocketの設定を行い再起動を行っても Ksbridge にログが表示されない場合、KsocketがKsbridgeに接続しにいけていない可能性があります。
このような場合は、 Ksocket のログファイル (デフォルトであれば /opt/fixpoint/ksocket/var/log/ksocket/ksocket.log
) を確認してみましょう。
2018-12-12T19:40:13+0900 DEBUG ksocket.channel.session:_connector:241 Resumer is waiting disconnection... 2018-12-12T19:40:13+0900 DEBUG ksocket.channel.session:_connector:243 Disconnected from the peer. Resume connection... 2018-12-12T19:40:13+0900 DEBUG ksocket.channel.session:_resume:213 Connecting to the peer. Wait 60.000000 seconds... 2018-12-12T19:40:13+0900 WARNING ksocket.channel.session:_resume:225 Failed to start/resume session: [Errno 111] Connect call failed ('127.0.0.1', 8080). Wait 0 sec... [1/120] 2018-12-12T19:40:13+0900 DEBUG ksocket.channel.session:_resume:213 Connecting to the peer. Wait 60.000000 seconds... 2018-12-12T19:40:13+0900 WARNING ksocket.channel.session:_resume:225 Failed to start/resume session: [Errno 111] Connect call failed ('127.0.0.1', 8080). Wait 0 sec... [2/120] 2018-12-12T19:40:13+0900 DEBUG ksocket.channel.session:_resume:213 Connecting to the peer. Wait 60.000000 seconds... 2018-12-12T19:40:13+0900 WARNING ksocket.channel.session:_resume:225 Failed to start/resume session: [Errno 111] Connect call failed ('127.0.0.1', 8080). Wait 0 sec... [3/120]
例えば上記のようなログがKsocket.logに出力され続けている場合、Ksbridge に接続できていない状態です。ksocket.toml での設定を再度確認してみてください。
また、別のパターンとして以下のようなログが出力される場合があります。
2018-12-12T19:45:54+0900 DEBUG ksocket.channel.session:_resume:213 Connecting to the peer. Wait 60.000000 seconds... 2018-12-12T19:45:54+0900 WARNING ksocket.channel.session:_resume:225 Failed to start/resume session: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:833). Wait 0 sec... [1/120] 2018-12-12T19:45:54+0900 DEBUG ksocket.channel.session:_resume:213 Connecting to the peer. Wait 60.000000 seconds... 2018-12-12T19:45:55+0900 WARNING ksocket.channel.session:_resume:225 Failed to start/resume session: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:833). Wait 0 sec... [2/120] 2018-12-12T19:45:55+0900 DEBUG ksocket.channel.session:_resume:213 Connecting to the peer. Wait 60.000000 seconds... 2018-12-12T19:45:55+0900 WARNING ksocket.channel.session:_resume:225 Failed to start/resume session: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:833). Wait 0 sec... [3/120] 2018-12-12T19:45:55+0900 DEBUG ksocket.channel.session:_resume:213 Connecting to the peer. Wait 60.000000 seconds...
このときは、ksocket.toml に protocol: ws
という接続方式を変更する設定が正しく読み込まれていません。上述の「Ksocketの設定」の項を確認し、protocol行の設定を行いましょう。
「failed to connect server」と表示される
Ksbridgeのログで、 failed to connect server
と表示される場合、KsocketとKsbridgeは疎通できていますが、Ksbridgeとプロキシサーバ間の通信が確立できていない場合が考えられます。
$ ./ksbridge -bind 127.0.0.1:8080 -host yourspace.cloud.kompira.jp -proxy http://username:password@no.proxyserver.co.jp:3128 ******************************************************************************** ksbridge - Tiny websocket connection bridge server listen: ws://127.0.0.1:8080/api/ksocket/connect server: wss://yourspace.cloud.kompira.jp/api/ksocket/connect proxy: http://username:password@no.proxyserver.co.jp:3128 ******************************************************************************** INFO[0012] connecting to client... INFO[0012] client has connected INFO[0012] connecting to server... ERRO[0012] failed to connect server err="dial tcp: lookup no.proxyserver.co.jp on 10.10.10.0:53: no such host" uri="{wss yourspace.cloud.kompira.jp /api/ksocket/connect false }" INFO[0069] connecting to client... INFO[0069] client has connected INFO[0069] connecting to server... ERRO[0069] failed to connect server err="dial tcp: lookup no.proxyserver.co.jp on 10.10.10.0:53: no such host" uri="{wss yourspace.cloud.kompira.jp /api/ksocket/connect false }"
このような場合は、Ksbridgeの実行時に指定しているプロキシサーバのサーバ名、アカウント、パスワードが正しいかどうかを確認してください。