Custom Search

JITAKU_SVR_Wiki



telnet

telnetは非常によく使うのでメモ。

メール関係

telnetで25番、110番を叩いてSMTP、POPを操作する。

SMTP

# telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.hogehoge.com ESMTP
helo localhost
250 smtp.hogehoge.com
mail from:hogehoge@localdomain.localhost
250 ok
rcpt to:foo@hage.com
250 ok
data
354 go ahead
subject:testmail
testmail
.
250 ok 1296816201 qp 31061
quit
221 smtp.hogehoge.com
Connection closed by foreign host.

上記の太文字部分が実際に入力するコマンド。

やっていることは、上から説明したかったが、以下のサイトが非常にわかりやすい説明だったのでそのまま拝借。
http://www.puni.net/~mimori/smtp/ref.html




SMTPセッションの開始
helo localhost

EHLOにより、SMTPサーバはSMTPクライアントを識別し、もしそのクライアント がそのSMTPサーバを利用できるならばセッションが開始される。
これに対して、 SMTPサーバは応答コード250で以下の情報(普通複数行)を返す(グリーティング)。
なお、SMTPサーバは、実際にはTCP/IP接続のIPアドレスなどの情報からクライア ントを識別すべきである。


メールトランザクションの開始
mail from:hogehoge@localdomain.localhost

このメールの(エンベロープ上:つまり、配送システム上)の送り主を示す。 
メールヘッダのFrom: (RFC 2822で定義されている)とは意味が違う点に注意
EHLO(HELO)がメールセッション(クライアントとサーバの接続に関する処理)の 初期化をするのに対し、
メールトランザクション(ある1つのメールについての 処理)を初期化する(このコマンド以前にサーバに渡された宛て先やデータは消 去される)。
メールトランザクションが進行している時にはMAILコマンドは利 用できない。普通、EHLOコマンド直後に使われる。


受信者の決定
rcpt to:foo@hage.com

メールをどこに送るのか、という受信者を指定するコマンド。
メールヘッダのTo:やCc:など(RFC 2822で定義されている)とは意味が違う点に注意。
同じメッセージを複数の宛て先に送る場合、1回のメールトランザクションでこのコマンドを複数回使うことができる。
なお、MAILコマンドより後にしか利用できない。


メッセージの転送 data

メールのデータを送信するためのコマンドで、MAIL, RCPTの後に使われる。 
DATAコマンドに対してパラメータはなく、サーバが受理するならコマンドそのものに対してまず354応答が返される。
これが返されたら、クライアントは DATAの内容(つまりメールメッセージの内容:ヘッダとボディ)を送信する。
ここで1行は78文字(全角なら39文字)以内であるべきで、998文字以内でなければならない(RFC 2822)。
送信してよいデータは7ビットASCIIすべて。ただし、スペース、CRLF以外は送 信すると誤動作するかもしれない。
また、「8bitMIME」で拡張されることもある。

subjectはdata以降で記述したものが件名として扱われる。
ない場合は当然件名なしで送信される。
メールの最後は「.(ピリオド)」でメールのdataを完了させる。

メールセッションの終了
quit

メールセッションを終了する。これに対して221の応答を受信したら、コネクションを閉じる。


基本的に上記の説明ですべてだが、ほかにもヘッダの操作なども出来る。

尚、バージョンやクライアントの違い(?)でsmtpのコマンドが違うと怒られることもあるので、そのときはしっかりエラーを読む。

pop

popに関してはあまり使うことがないので、セッションを張れたらOKという感じの使い方。
telnetでメールの中身の確認も出来るのでメモ程度に。
http://ash.jp/net/telnet_pop3.htm

# telnet localhost 110

+OK Dovecot ready. <7c91.5cd2.4d50eb9c.ISrq2xBfJ8/9vwgAFnwFlA==@mx.server>

user foo@hage.com

+OK

pass password

+OK Logged in.

stat

+OK 7526 124002676

list
 -----省略-----
7522 7116
7523 7138
7524 106360
7525 15417
7526 2313
.
retr 2313

+OK 3416 octets
 -----省略-----

quit

特に説明は必要ではないと思うので、メモを以下に。
太文字が入力コマンド

user = ユーザ名
pass = パスワード
stat = 現在サーバにあるメール数
list = メッセージID(?)が表示される
retr = メールを確認
quit = telnetを終了

ブラウジング

http

httpをtelnetで操作することは自分の職務上ほぼないのだが、apacheを再起動したり、ログの出力を確認するためにtelnetでしようすることがある。
詳細関しては分かりやすく説明してくれているページがたくさんあるのでそちらを。

# telnet localhost 80
GET /dunce-wiki/ http/1.0
HTTP/1.1 200 OK
Date: Tue, 08 Feb 2011 07:29:23 GMT
Server: Apache/2.2.13 (Linux/SUSE)
X-Powered-By: PHP/5.3.3
Cache-control: no-cache
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=UTF-8
 -----省略-----~

自分の場合はGETメソッドでアクセスするだけなので、ほかの使い方は説明なし。
上記のコマンド(太文字)を入力すると、応答コード200で返答が来るので問題なし。
ちなみにアクセスログには以下のように表示される。

192.168.0.1 - - [08/Feb/2011:16:35:19 +0900] "GET /dunce-wiki/ http/1.0" 200 35694 "-" "-"

これにりapacheに問題がないことが確認できる。

https

http://moruho.cocolog-nifty.com/blog/2010/01/telnet-localhos.html
普段ほぼしないのでやっている人を参考に。

proxy経由

数ある環境なので、きっとproxy経由で確認をしたい人も多いと思う。
そんな時は以下の方法で。

$ telnet プロキシサーバ ポート番号
※プロキシサーバに接続後telnetプロンプトで
GET http://IPアドレス(または名前)/ HTTP/1.0

と言うようにリクエストを発行する。

もし、上記でもうまく接続できない場合は、wgetやcurlでも疎通確認であれば可能。

参考URL

http://www.puni.net/~mimori/smtp/ref.html
http://ash.jp/net/telnet_pop3.htm
http://ash.jp/net/telnet_http.htm
http://moruho.cocolog-nifty.com/blog/2010/01/telnet-localhos.html
http://www.atmarkit.co.jp/fsecurity/rensai/httpbasic02/httpbasic01.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-17 (木) 17:27:20 (702d)