2台のコンピュータが同じネットワークに接続されていclient PC IP: 10.49.46.5/24
ます。server PC IP: 10.49.46.2/24
これら 2 台のコンピュータ間の対話型通信を生成するためにコマンドを使用しようとすると、telnet
次の結果が表示されます。
[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.
Connection closed by foreign host.
[root@xxx:~]#
サーバーはxinetd.conf
次のとおりです。
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID EXIT
log_on_failure = HOST ATTEMPT
cps = 25 30
}
includedir /etc/xinetd.d
サーバーはtelnet.config
次のとおりです。
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/telnetd
log_on_failure += USERID
instances = 10
disable = no
}
彼らはTCPWrapper hosts.allow
:
telnetd: /etc/telnetd.hosts
tfdpd: /etc/tftpd.hosts
sshd: /etc/sshd.hosts
彼らはTCPWrapper hosts.deny
:
ALL:ALL
今:
- 確認してみると
ssh
実行中ですねport 22
。 - 確認してみると、
/var/log/message
コマンドがxinetd
開始された直後にTelnetが終了することがわかりました。 iptables
以下を使用してTelnetパッケージを削除しないことを確認しました。iptables -L
問題が何であるか、解決策を見つけるのに役立ちますか?
答え1
[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.
これは、リモートデーモンとのTCP接続が正常に確立されたことを意味します。どんなデーモン?xinetd
ハーブの役目を果たすところです。これで接続されているので、xinetd
特定のサービス(telnet
)を起動してみてください。
Connection closed by foreign host.
これは、telnet
サービスの開始に失敗したことを意味します。telnetd
コマンドラインにデバッグオプションを追加してログをxinetd
読んで、何が失敗したのかを確認する必要があります。
BusyBoxのバージョンを実行しているようですtelnetd
。クラシックバージョンとは異なり、telnetd
Busyboxが提供するサービスはスタンドアロンデーモンであり、対話するオプションが-i
必要ですinetd
(スタンドアロンデーモンと互換性のない特定のインターフェイスによって開始されたサービスinetd
:利用できません)。ソケットが開いていてリスニングしている場合は、stdin / stdoutを介してクライアントと通信する必要があります。
したがって、xinetd
構成は次のようにする必要があります。
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/telnetd
server_args = -i
log_on_failure += USERID
instances = 10
disable = no
}
答え2
指定されたTelnetポートを使用してくださいtelnet 10.49.46.2 24
。
Cognexカメラのマニュアルによると、「ポート番号を指定すると、Unixユーザー名/パスワード認証が無効になり、Unixシステムでユーザー名とパスワードの入力を求められます。」
答え3
xhienneはいくつかの良い点を指摘しています。 TCPハンドシェイクはほぼ完了しました。閉じた接続は、2つのうちの1つを意味します。
1) telnetdサービスを開始できませんでした(ログを確認)。
2) 接続するクライアントが /etc/telnetd.hosts にリストされていません (ログを確認するか、一時的に /etc/hosts.deny 名を変更して確認)。
クライアントIP:10.49.46.5/24
いいえ、IPホストアドレスにはネットマスクはありません。
Telnetd の使用を中止します。リモートでログインするたびに子猫が泣きます。 (sshまたはtelnet-tlsを使用)
答え4
次のコマンドを試してください。
sudo apt install tcpd