私はCentOSシステムをDHCPから静的ルーティングに切り替えましたが、Telnetを使用して接続するのにほぼ瞬間から初期ログインプロンプトが表示されるまで約30秒かかります。
確かに、これは、ホストファイルに依存するボックスに誰が接続されているかを確認するためにリバースDNSルックアップを実行するサーバーに関連しています。
このプロセスをスピードアップするには、/ etc / hostsに何かを追加する必要がありますか?現在、私のファイルは非常に制限されており、これはほとんど新しくインストールされています。
[root@Azaz07]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
Telnet0 ローカルはすぐに応答を完了します。
答え1
私のTelnetホアンジャンダム
通常は使用しないで、telnet
代わりに使用することをお勧めしますssh
。 Telnetはセキュリティの責任を負い、今日は誰もそれを使用しないでください。 Wiresharkを使用してネットワークを通過している間に誰かが簡単にTelnetパケットをスニッフィングして資格情報にアクセスできる方法については、この記事を参照してください。この記事のタイトルは次のとおりです。Wiresharkを使用したTelnetスニッフィング。以下は、Telnetを使用したログイン試行のスクリーンショットです。
問題を解決する
ただし、必ず使用する必要がある場合は、ツールで使用するコマンドをtelnet
診断することから始めます。telnet
strace
はい
最終的に発生する問題を示すために、/etc/resolv.conf
偽のDNSサーバーが含まれるようにファイルを修正しました。これによりOPが遅くなります。
# /etc/resolv.conf
# Generated by NetworkManager
domain mydom.net.
search mydom.net.
nameserver 1.2.3.4
nameserver 192.168.1.101
次に、telnet
次のように実行します。
$ strace -T telnet skinner
出力のこの部分は、時間がかかる理由を示しています。
...
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 3 <0.000021>
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("1.2.3.4")}, 16) = 0 <0.000023>
poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}]) <0.000012>
sendto(3, "\275N\1\0\0\1\0\0\0\0\0\0\7grinchy\5bubba\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000073>
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000012>
sendto(3, "\373\262\1\0\0\1\0\0\0\0\0\0\7grinchy\5bubba\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000027>
poll([{fd=3, events=POLLIN}], 1, 4999) = 0 (Timeout) <5.004038>
...
上記で「タイムアウト」が発生するのは、poll
ポート53のサーバー1.2.3.4に対するDNSクエリです。スイッチを使用すると、-T
この関数呼び出しがタイムアウトするのに約5秒かかります。
time
次のコマンドを使用して時間の長さを確認することもできます。
$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused
real 0m10.030s
user 0m0.001s
sys 0m0.003s
正しいDNSサーバーを使用してください。
/etc/resolv.conf
これで、正しいDNSサーバーを展開するとtelnet
パフォーマンスが向上します。
$ strace -T telnet skinner
...
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, 16) = 0 <0.000018>
poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}]) <0.000010>
sendto(3, "D\363\1\0\0\1\0\0\0\0\0\0\7grinchy\5mydom\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000054>
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 5000) = 1 ([{fd=3, revents=POLLOUT}]) <0.000009>
sendto(3, "s\342\1\0\0\1\0\0\0\0\0\0\7grinchy\5mydom\3net\0\0"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000021>
poll([{fd=3, events=POLLIN}], 1, 4999) = 1 ([{fd=3, revents=POLLIN}]) <0.005300>
ioctl(3, FIONREAD, [84]) = 0 <0.000024>
recvfrom(3, "D\363\205\200\0\1\0\1\0\1\0\1\7grinchy\5mydom\3net\0\0"..., 2048, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.1.101")}, [16]) = 84 <0.000016>
poll([{fd=3, events=POLLIN}], 1, 4994) = 1 ([{fd=3, revents=POLLIN}]) <0.003688>
...
timingを使用してtime
も同じ結果が表示されます。
$ time telnet skinner
Trying 192.168.1.3...
telnet: connect to address 192.168.1.3: Connection refused
real 0m0.009s
user 0m0.000s
sys 0m0.002s
答え2
私は4.2.2.1と4.2.2.2を静的に割り当てられたDNSサーバーとして使用していました。ルータで192.168.0.1に切り替えたところ、問題が解決しました。