telnet の際の注意点

前へ << inetdを利用してechoサーバを作ってみよう tcpdumpでプロトコルを解析してみよう >> 次へ

エコーバックについて (Windows のみ)

ポートを指定せずに普通に 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)に 接続するときだけネゴシエーションを行い、そこで どのようにエコーバックするかを決めるわけです。

改行コードについて (Windows のみ)

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 を押してみてください。

    Proxy について(UNIX・Windows 共通)

    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でプロトコルを解析してみよう >> 次へ