私のワークステーションは企業のプロキシの背後にあります。環境変数を設定していますが、aws-sdk以外はNodeJSで使用できます。 TCPコネクションのここダンプ:3ウェイハンドシェイクがクライアントよりも、[OK]を行くことAWS SDKは企業のプロキシの背後に接続できません
No. Time Source Destination Protocol Length Info
2 1.834143 105.103.15.106 105.103.82.47 TCP 74 54952 → 8080 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=497254718 TSecr=0 WS=128
3 1.836141 105.103.82.47 105.103.15.106 TCP 74 8080 → 54952 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3399116010 TSecr=497254718 WS=128
4 1.836165 105.103.15.106 105.103.82.47 TCP 66 54952 → 8080 [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=497254719 TSecr=3399116010
5 1.836779 105.103.15.106 105.103.82.47 TCP 310 54952 → 8080 [PSH, ACK] Seq=1 Ack=1 Win=29312 Len=244 TSval=497254719 TSecr=3399116010
6 1.838250 105.103.82.47 105.103.15.106 TCP 66 8080 → 54952 [ACK] Seq=1 Ack=245 Win=15616 Len=0 TSval=3399116012 TSecr=497254719
20 123.670911 105.103.82.47 105.103.15.106 TCP 66 8080 → 54952 [FIN, ACK] Seq=1 Ack=245 Win=15616 Len=0 TSval=3399237839 TSecr=497254719
21 123.674168 105.103.15.106 105.103.82.47 TCP 66 54952 → 8080 [FIN, ACK] Seq=245 Ack=2 Win=29312 Len=0 TSval=497285178 TSecr=3399237839
22 123.676592 105.103.82.47 105.103.15.106 TCP 66 8080 → 54952 [ACK] Seq=2 Ack=246 Win=15616 Len=0 TSval=3399237843 TSecr=497285178
お知らせが(IP 106に終了)パッケージ番号5に(PSH、ACK)いくつかのデータを送信し、すぐに、proxy'をreceiveis s ACK(パケット番号6)。その後、長期間の通信がない(7と19の間のパッケージはこのtcpの会話からのものではない)、パケット20はFIN(パッケージが送信されないためのプロキシタイムアウト)である。この会話はexample provided by Amazonによって生成されました。
ノードのバージョン:今日インストール6.10、6.11.0および8.1.3 SDKでテスト(2.82.0)
比較として、私は、同じUbuntuマシンでaws cloudformatin describe-stack-resources --stack-name my-stack
を実行します。知られている、aws
CLIのpythonであるため、コマンドがOKで実行され、会話のような行く:1から3までのパケットは三方ハンドシェイクとJS SDKとまったく同じであることを
No. Time Source Destination Protocol Length Info
1 0.000000 105.103.15.106 105.103.82.47 TCP 74 54940 → 8080 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=496906305 TSecr=0 WS=128
2 0.001987 105.103.82.47 105.103.15.106 TCP 74 8080 → 54940 [SYN, ACK] Seq=0 Ack=1 Win=14480 Len=0 MSS=1460 SACK_PERM=1 TSval=3397722434 TSecr=496906305 WS=128
3 0.002008 105.103.15.106 105.103.82.47 TCP 66 54940 → 8080 [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=496906305 TSecr=3397722434
4 0.002100 105.103.15.106 105.103.82.47 TCP 127 [TCP segment of a reassembled PDU]
5 0.003967 105.103.82.47 105.103.15.106 TCP 66 8080 → 54940 [ACK] Seq=1 Ack=62 Win=14592 Len=0 TSval=3397722436 TSecr=496906306
6 0.003974 105.103.15.106 105.103.82.47 HTTP 68 CONNECT cloudformation.us-east-1.amazonaws.com:443 HTTP/1.0
7 0.006035 105.103.82.47 105.103.15.106 TCP 66 8080 → 54940 [ACK] Seq=1 Ack=64 Win=14592 Len=0 TSval=3397722438 TSecr=496906306
8 0.247802 105.103.82.47 105.103.15.106 HTTP 185 HTTP/1.0 200 Connection established
9 0.247810 105.103.15.106 105.103.82.47 TCP 66 54940 → 8080 [ACK] Seq=64 Ack=120 Win=29312 Len=0 TSval=496906367 TSecr=3397722681
10 0.248938 105.103.15.106 105.103.82.47 TLSv1.2 583 Client Hello
11 0.250985 105.103.82.47 105.103.15.106 TCP 66 8080 → 54940 [ACK] Seq=120 Ack=581 Win=15616 Len=0 TSval=3397722683 TSecr=496906367
12 0.684003 105.103.82.47 105.103.15.106 TLSv1.2 1995 Server Hello
13 0.684011 105.103.15.106 105.103.82.47 TCP 66 54940 → 8080 [ACK] Seq=581 Ack=2049 Win=33152 Len=0 TSval=496906476 TSecr=3397723117
14 0.690001 105.103.82.47 105.103.15.106 TLSv1.2 1488 CertificateServer Key Exchange, Server Hello Done
15 0.690866 105.103.15.106 105.103.82.47 TLSv1.2 216 Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
16 0.692974 105.103.82.47 105.103.15.106 TCP 66 8080 → 54940 [ACK] Seq=3471 Ack=731 Win=16640 Len=0 TSval=3397723125 TSecr=496906478
17 0.968807 105.103.82.47 105.103.15.106 TLSv1.2 141 Change Cipher Spec, Encrypted Handshake Message
18 0.969476 105.103.15.106 105.103.82.47 TLSv1.2 679 Application Data
19 0.970992 105.103.82.47 105.103.15.106 TCP 66 8080 → 54940 [ACK] Seq=3546 Ack=1344 Win=17920 Len=0 TSval=3397723403 TSecr=496906547
20 1.319977 105.103.82.47 105.103.15.106 TLSv1.2 617 Application Data
21 1.324998 105.103.82.47 105.103.15.106 TCP 2114 [TCP segment of a reassembled PDU]
22 1.325003 105.103.15.106 105.103.82.47 TCP 66 54940 → 8080 [ACK] Seq=1344 Ack=6145 Win=43008 Len=0 TSval=496906636 TSecr=3397723753
23 1.329979 105.103.82.47 105.103.15.106 TLSv1.2 133 Application Data
24 1.332987 105.103.15.106 105.103.82.47 TCP 66 54940 → 8080 [FIN, ACK] Seq=1344 Ack=6212 Win=43008 Len=0 TSval=496906638 TSecr=3397723763
25 1.373825 105.103.82.47 105.103.15.106 TCP 66 8080 → 54940 [ACK] Seq=6212 Ack=1345 Win=17920 Len=0 TSval=3397723807 TSecr=496906638
26 1.606041 105.103.82.47 105.103.15.106 TLSv1.2 119 Encrypted Alert
27 1.606063 105.103.15.106 105.103.82.47 TCP 54 54940 → 8080 [RST] Seq=1345 Win=0 Len=0
は注意してください、パケット4はパケット5に似ていますJS SDKのそれは要約には示されていませんが、PSHフラグとACKもあります。違いは内容(予想)で、パケット5はそのデータへのプロキシACKです。 aws
ACKがパケット6に到着すると、CLIは次のパックを送信します。aws
CLIはFINを送信し、ACKを受信し、アラートを暗号化し、RSTを送信します(これはEncrypt Alertが必要ではないためです) 。
JS SDKが最後のサーバーACKの後にデータを送信しない理由を見つけることができません。
{ NetworkingError: socket hang up
at TLSSocket.onHangUp (_tls_wrap.js:1124:19)
at TLSSocket.g (events.js:292:16)
at emitNone (events.js:91:20)
at TLSSocket.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
メッセージ:アウトプロキシ時間とは、いつか後にFIN ACKを送って、私のノードのスクリプトは以下のエラーで中止されるまで長い間ハングするようですので、しかし、「NetworkingError」、 地域: コード、「ソケットハングアップ」 : 'us-west-2'、 ホスト名: 'bucket.s3-us-west-2.amazonaws.com'、 再試行可能:true、 時間:2017-07-07T19:31:29.494Z} null
手がかり?
Good find。彼らが「CONNECT」をサポートしないことがどれほど奇妙であるか。アドオンモジュールhttps://www.npmjs.com/package/aws-sdk-proxyに言及して、バグレポートの最後のコメントに注目してください。 –
まだ接続できませんが、プロキシとの会話には時間がかかります。私は調査を続けます。 @ Michael-sqlbot、aws-sdk-proxyは以前と同じ動作をしませんでした。 – JrBenito
TunnelAgentはaws-sdkで動作します – JrBenito