ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Telnet とは
Telnet (TELetype NETwork) は、ネットワーク経由でリモートホストの仮想端末を開くためのアプリケーション層プロトコルです。1969 年に RFC 15 で初版が定義された、TCP/IP プロトコル群の中でも最古参の一つです。
当時は LAN 内のメインフレーム・UNIX ホストにダム端末からログインする用途で広く使われましたが、通信内容を一切暗号化しないため、現在ではリモートログイン用途で使うことは事実上ありません。
仕様の概要
| 項目 | 内容 |
|---|---|
| RFC | RFC 854 / 855 (1983 改訂版が現行) |
| ポート | TCP 23 |
| 暗号化 | なし (ID/PW を含めて全て平文) |
| 認証 | ホスト側の login プロセスに委譲 (平文) |
| OSI 層 | アプリケーション層 |
| 主な後継 | SSH (RFC 4250-4256, ポート 22) |
なぜ危険なのか
Telnet セッションのトラフィックを tcpdump や Wireshark でキャプチャすると、キー入力 1 文字ごとにそのままの ASCII コードが流れているのが見えます。
$ sudo tcpdump -i any -A 'port 23'
12:00:01.111 IP client.49152 > srv.23: Flags [P.], length 1
"l"
12:00:01.234 IP client.49152 > srv.23: Flags [P.], length 1
"o"
12:00:01.345 IP client.49152 > srv.23: Flags [P.], length 1
"g"
12:00:01.456 IP client.49152 > srv.23: Flags [P.], length 1
"i"
12:00:01.567 IP client.49152 > srv.23: Flags [P.], length 1
"n"
:
"P" "a" "s" "s" "w" "0" "r" "d" "1" "2" "3" ← 丸見え
これは同一 LAN にいる攻撃者や、経路上の Wi-Fi AP / ISP でも全て読めることを意味します。ARP スプーフィングやMan-in-the-Middle (中間者) 攻撃で容易に資格情報が抜かれます。
SSH への移行
1995 年に Tatu Ylönen が SSH (Secure Shell) を発表して以来、リモートログイン用途は SSH に完全に置き換わりました。
| 観点 | Telnet | SSH |
|---|---|---|
| ポート | TCP 23 | TCP 22 |
| 暗号化 | なし | AES / ChaCha20 等 |
| サーバ認証 | なし | ホスト鍵 (公開鍵) |
| クライアント認証 | パスワード平文 | 公開鍵 / パスワード (暗号化路上) |
| 付加機能 | 端末エミュレーションのみ | ポート転送 / SFTP / SCP / X11 転送 |
| クライアント | telnet | ssh / PuTTY / OpenSSH |
# 昔: Telnet で UNIX ホストにログイン (現代は厳禁)
telnet 192.0.2.10
# login: alice
# Password: ****
# 現代: SSH を使う
ssh alice@192.0.2.10
ssh -i ~/.ssh/id_ed25519 alice@example.com
現代でも残る用途: TCP ポート疎通確認
リモートログインとしての出番は無くなりましたが、telnet コマンドは「指定ホストの指定 TCP ポートに繋がるか」を見る軽量な疎通テストツールとして今も使えます。
# Web サーバの 80 が開いているか
telnet www.example.com 80
# → "Connected to www.example.com." なら疎通 OK
# 抜けるには Ctrl+] → quit
# SMTP の 25
telnet mail.example.com 25
# → 220 mail.example.com ESMTP Postfix
# EHLO myhost
# → 250-mail.example.com
# 接続失敗時の見え方
telnet 192.0.2.99 22
# → "Trying 192.0.2.99..." のまま帰ってこない (Firewall 等で破棄)
# → "Connection refused" (ホストに届くがリッスンしてない)
HTTP の手動疎通
telnet www.example.com 80
# 接続後、以下を貼り付けて空行 2 回
GET / HTTP/1.1
Host: www.example.com
Connection: close
# レスポンスが返ってくる
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html
:
SMTP の手動疎通
telnet mail.example.com 25
220 mail.example.com ESMTP Postfix
EHLO myhost.example.org
250-mail.example.com
250-PIPELINING
250-SIZE 10485760
250 8BITMIME
MAIL FROM:<alice@example.org>
250 2.1.0 Ok
RCPT TO:<bob@example.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: telnet test
hello
.
250 2.0.0 Ok: queued as ABC123
QUIT
221 2.0.0 Bye
Windows での有効化
Windows 10/11 では既定で Telnet クライアントが無効化されています。
# GUI からは
# コントロールパネル → プログラム → Windows の機能の有効化または無効化
# → 「Telnet クライアント」にチェック → OK
# PowerShell から (管理者)
Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient
# 確認
Get-WindowsOptionalFeature -Online -FeatureName TelnetClient | Select State
# 使い方は Unix と同じ
telnet www.example.com 80
Mac / Linux での状況と代替
macOS は 10.13 High Sierra (2018) から telnet / ftp バイナリが同梱されなくなりました。Homebrew でインストール可能ですが、代替手段の方が現代的です。
# macOS で入れたい場合
brew install telnet
# 代替1: nc (netcat) - macOS / 主要 Linux に標準
nc -vz www.example.com 80
# → Connection to www.example.com 80 port [tcp/http] succeeded!
# 代替2: curl で HTTP 含めて確認
curl -v https://www.example.com/
# 代替3: PowerShell の Test-NetConnection (Windows)
Test-NetConnection www.example.com -Port 443
# → TcpTestSucceeded : True
# 代替4: bash の /dev/tcp (依存無しで便利)
echo > /dev/tcp/www.example.com/80 && echo OPEN || echo CLOSED
サーバ側 (telnetd) を絶対に開けない理由
- パスワードが平文 → 同一 LAN でキャプチャ即漏洩
- root ログインを許す古典的設定が多く、踏み台にされる
- セッション乗っ取り (TCP hijack) も容易
- 商用機器でもファームウェア管理用に Telnet が残っているケースがあるため、管理用 VLAN への ACL 隔離と使い終わったら無効化が必須
FAQ
Q: Could not open connection to the host と出る
A: ファイアウォール / セキュリティグループで TCP 23 がブロックされているか、対象がポートを開いていません。ポート番号を疎通確認したいだけなら、SSH の 22 や HTTPS の 443 を telnet host port で試して、ネットワーク経路自体は通ることを確認してください。
Q: telnet で繋がるけど画面が崩れる
A: 端末タイプの折衝失敗です。TERM=vt100 telnet host や、改行コードの CR/LF オプションを telnet> set crlf で切り替えると改善することがあります。
Q: 業務システムがまだ Telnet 必須なのですが
A: SSH トンネル経由でアクセスする、または IPSec / VPN 内に閉じ込めるのが現実解です。Telnet パケット自体を VPN で包めば、暗号路の上に乗ります。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?