
Amazon Linux 2 サーバーの curl に奇妙な問題が発生しています。
約 1 MB のバイトを読み取るだけで終了コード 18 で失敗します。そのため、問題のトラブルシューティングを行うために、ローカル SFTP サーバーをセットアップしました。
私の curl コマンドは次のようになります:
curl -u testuser:12345 -o /tmp/testfile sftp://127.0.0.1/home/testuser/testfile
また、ファイル サイズが 120 KB 未満の場合、問題は発生しません。
以下の変更はどれも役に立ちませんでした:
- 使用していない
-o
- URLを引用
- 使用して
--insecure
localhost
代わりに使用する127.0.0.1
-f
URLの前に使用
デバッグ出力では-vvv
何も分かりません。
トレース出力を使用しても--trace
何も分かりません。
tcpdump データは暗号化されており、何が起こっているのかわかりません。
すべての出力を共有できればよいのですが、リモート デスクトップで作業しているため、ファイルを転送する方法がありません。そのため、何も共有できません。
どうしたの?
はい、sftp セッションを使用してコマンドを取得すると、機能します。
curl 出力:
{ [30000 bytes data]
* transfer closed with 277200 bytes remaining to read
35 420k 35 150k 0 0 1195k 0 --:--:-- --:--:-- --:--:-- 1201k
35 420k 35 150k 0 0 1179k 0 --:--:-- --:--:-- --:--:-- 1179k
* Closing connection
curl: (18) transfer closed with 277200 bytes remaining to read
sftp-server debug3 ログ:
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 0: realpath
Apr 03 21:31:30 my-host sftp-server[3159]: realpath "."
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 0: sent names count 1
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 1: open flags 1
Apr 03 21:31:30 my-host sftp-server[3159]: open "/home/testuser/testfile2" flags READ mode 0100644
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 1: sent handle handle 0
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 2: stat
Apr 03 21:31:30 my-host sftp-server[3159]: stat name "/home/testuser/testfile2"
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 2: sent attrib have 0xf
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 3: read "/home/testuser/testfile2" (handle 0) off 0 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 3: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 4: read "/home/testuser/testfile2" (handle 0) off 30000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 4: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 5: read "/home/testuser/testfile2" (handle 0) off 60000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 5: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 6: read "/home/testuser/testfile2" (handle 0) off 90000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 6: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 7: read "/home/testuser/testfile2" (handle 0) off 120000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 7: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 8: read "/home/testuser/testfile2" (handle 0) off 150000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 8: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 9: read "/home/testuser/testfile2" (handle 0) off 180000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 9: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 10: read "/home/testuser/testfile2" (handle 0) off 210000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 10: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 11: read "/home/testuser/testfile2" (handle 0) off 240000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 11: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 12: read "/home/testuser/testfile2" (handle 0) off 270000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 12: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 13: read "/home/testuser/testfile2" (handle 0) off 300000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 13: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 14: read "/home/testuser/testfile2" (handle 0) off 330000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 14: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 15: read "/home/testuser/testfile2" (handle 0) off 360000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 15: sent data len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 16: read "/home/testuser/testfile2" (handle 0) off 390000 len 19600
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 16: sent data len 19600
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 17: read "/home/testuser/testfile2" (handle 0) off 409600 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 17: sent data len 21400
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 18: read "/home/testuser/testfile2" (handle 0) off 431000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 18: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 19: read "/home/testuser/testfile2" (handle 0) off 461000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 19: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 20: read "/home/testuser/testfile2" (handle 0) off 491000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 20: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 21: read "/home/testuser/testfile2" (handle 0) off 521000 len 30000
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 21: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: request 22: read "/home/testuser/testfile2" (handle 0) off 551000 len 12400
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 22: sent status 1
Apr 03 21:31:30 my-host sftp-server[3159]: sent status End of file
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 23: close handle 0
Apr 03 21:31:30 my-host sftp-server[3159]: close "/home/testuser/testfile2" bytes read 431000 written 0
Apr 03 21:31:30 my-host sftp-server[3159]: debug3: request 23: sent status 0
Apr 03 21:31:30 my-host sftp-server[3159]: sent status Success
Apr 03 21:31:30 my-host sftp-server[3159]: debug1: read eof
Apr 03 21:31:30 my-host sftp-server[3159]: session closed for local user testuser from [127.0.0.1]
Apr 03 21:31:30 my-host sshd[3157]: Received disconnect from 127.0.0.1 port 47854:11: Shutdown
Apr 03 21:31:30 my-host sshd[3157]: Disconnected from 127.0.0.1 port 47854
Apr 03 21:31:30 my-host sshd[3154]: pam_unix(sshd:session): session closed for user testuser
{ [16384 bytes data]
100 420k 100 420k 0 0 4020k 0 --:--:-- --:--:-- --:--:-- 4047k
100 420k 100 420k 0 0 3953k 0 --:--:-- --:--:-- --:--:-- 3953k
* Connection #0 to host 127.0.0.1 left intact
答え1
実際のアドレスのマスクとして 127.0.0.1 を使用しているか、何らかの転送が行われているものと想定します。
やってみました:
curl -u testuser:12345 -o /tmp/テストファイル scp://127.0.0.1/home/testuser/テストファイル
scp は sftp とは異なり、単一のチャネルで動作するように設計されており、また、次のパケットを送信する前に各パケットの確認を必要としません。scp は、バイパスしようとしているファイアウォールを通過できる場合があります。