| 前へ << inetdを利用してechoサーバを作ってみよう | tcpdumpでプロトコルを解析してみよう >> 次へ |
ポートを指定せずに普通に telnet してログインする場合、 キーボードを押してから画面に文字が表示されるまでに わずかですがタイムラグがあります。これは接続先の telnet サーバが 表示すべき文字を返してきて、その文字をこちらの telnet クライアントが 画面に表示するからです。これによってログイン時の パスワード入力するときには文字を画面に表示しない、などの 細かな設定が可能になっています。タイプした文字がそのまま画面に表示されることを「エコーバック」と いいます。つまり標準ではエコーバックが OFF になっているのです。
しかし WWW サーバ、FTP サーバ、POP3 サーバなどは タイプした文字をわざわざ返してはくれません。そのため 何をタイプしても画面に表示されないことになります。
Windows の telnet.exe ではエコーバックの ON、OFF を設定できますので、 エコーバックを ON にしておいてください。
UNIXの telnet ではエコーバックのあり/なしが自動的に設定されますので、 このような設定変更は必要ありません。 telnet クライアントが telnet サーバに接続するときは(つまりポート23に 接続してリモートログインする場合は)、相手の telnet サーバがエコーバックを 送り返してきて、telnet クライアントはそれを表示します。 一方、ポート23番以外のサーバに接続するときは telnetクライアント自身が エコーバックを表示します(ローカルエコー)。 UNIX の telnet は telnet サーバ(ポート23)に 接続するときだけネゴシエーションを行い、そこで どのようにエコーバックするかを決めるわけです。
GET /index.html HTTP/1.0(リターン) (続けてリターン)などと書いてある場合、とりあえず書いてあるとおりにやってみて ください。もしうまくいかなかったら、「リターン」と書いて ある部分は「Ctrl-j」とタイプしてみてください。つまり、GET /index.html HTTP/1.0(Ctrl-j) (Ctrl-j)となるわけです。同じ Windows の telnet でも、仕様の違いが あるようで、Windows95 の telnet.exe … Enter=CR, Ctrl-m=CR, Ctrl-j=LF WindowsNT (4.0) 以降の telnet.exe … Enter=CRLF, Ctrl-m=CR, Ctrl-j=LF となっているようです。ですから Windows95 の telnet.exe の 場合はリターンキーの代わりに Ctrl-j を押してみてください。
telnet で% telnet www.cs.gunma-u.ac.jp 80 Trying 133.8.2.7... Connected to www.cs.gunma-u.ac.jp. Escape character is '^]'. GET /index.html HTTP/1.0(リターン) (続けてリターン)などとやっても、どうしてもうまくいかない場合は 外部ホストのポート80宛のパケットが破棄されているのかもしれません (firewall によるパケットフィルタリング)。プロバイダから「web を閲覧する際はこの proxy を使ってください」と言われている方で、 ブラウザ上でも その proxy を経由しないと絶対に外部の web を見られないなら、 上記のやり方ではうまくいきません。その場合、
% telnet proxy.foo.com 8080 Trying 10.11.12.13... Connected to proxy.foo.com. Escape character is '^]'. GET http://www.cs.gunma-u.ac.jp/index.html HTTP/1.0(リターン) (続けてリターン)などと proxy サーバに接続するようにしてください。 proxy.foo.com と 8080 の部分は、ご自分の環境に合わせて変更して下さい。
| 前へ << inetdを利用してechoサーバを作ってみよう | tcpdumpでプロトコルを解析してみよう >> 次へ |