# 中間ホストを経由してホストに接続した場合のファイル転送

あるホストにログインして、そこからさらに他のホストへログインした場合、終端ホストと Tera Term の間のファイル転送 (Kermit, XMODEM, YMODEM, ZMODEM, B-PLUS, Quick-VAN) がうまくいかないことがあります。

Tera Term 作者はこのような状況でのファイル転送を想定してませんので、他の転送法(直接終端ホストに接続する、一旦中間ホストのディスクへアップロード/ダウンロードする、ftp を使用する等)を取ることをお勧めします。

この問題は以下のような原因が考えられ、場合によっては解決できることがあります。

## 1) Tera Term <-> 中間ホスト または 中間ホスト <-> 終端ホストのフロー制御が正しく行われていない。

接続が TCP/IP (ダイアルアップ PPP も含む)ならばフロー制御は正しく行われているはずです。 シリアルポート(モデム+電話回線の非 PPP(パソコン通信)も含む)接続の場合は、フロー制御を正しく設定してください。

## 2) Tera Term <-> 中間ホスト または 中間ホスト <-> 終端ホストで制御文字の一部が失われる。

Telnet 接続の場合、バイナリモードで接続する必要がある場合があります。

Kermit ではこのことは通常問題になりません。B-Plus と ZMODEM では、すべての制御文字をエスケープすることにより正しくファイル転送ができるようになる可能性があります。XMODEM, YMODEM と Quick-VAN では、すべての 8-bit 文字を通す回線を使用しないと正しくファイル転送ができません。

中間ホストから telnet コマンドで終端ホストに接続した場合、Tera Term が送出した制御文字の一部は中間ホストの telnet コマンドにより吸収されてしまい、終端ホストに伝わらないことがあります。これらの制御文字は通常 telnet の "echo", "escape", "erase", "flushoutput", "interrupt", "kill", "quit", "areyouthere" 等の機能に割り当てられています。ホストからファイルのダウンロードはできるが、ホストへのアップロードはできないというような場合、このような状況が原因になっている可能性が高いです。この問題を解決するには telnet コマンドの各機能に対して割り当てられた制御文字を解除するか、あるいは上述のように ZMODEM と B-Plus の場合はすべての制御文字をエスケープするようにしてください。ただし telnet コマンドによっては、各機能に割り当てられた制御文字をうまく解除できない場合があります。

いずれの場合も中間ホスト <-> 終端ホスト間の通信の設定は Tera Term から直接することができません。
この問題はいくつかの原因が重なっておきている場合もあり、Tera Term 作者に解決法を質問されてもお答えできない場合が多いです。
上記のヒントを参考にしても解決できない(上記の内容が理解できない)場合は、残念ですがあきらめてください。