Telnet サーバーの問題
最新のYumアップデート(2016年7月20日)により、仮想マシンの1つのTelnetサーバーが破損しているようです。使用同じサーバーへのSSH接続が正しく機能します。。問題を把握しようとしていますが、私が何をしているのかわかりません。ですから得られる助けをいただきありがとうございます。
兆候
Telnet プロトコルを使用してサーバーにログインすると、次の動作が発生します。
[uniworks@mort ~]$
[uniworks@mort ~]$
[uniworks@mort ~]$
[uniworks@mort ~]$
speed 9600 baud; rows 64; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
ご覧のとおり、コマンドは画面に反映されず(たとえば、「sty -echo」をオンにする)、Enterキーを押すと「階段」効果が表示されます。
おそらく重要なことは、接続するとすぐにいくつかの問題が発生したことです。ログインする前に:
Trying 128.222.3.71...
Connected to mort.
Escape character is '^]'.
Scientific Linux release 6.8 (Carbon)
Kernel 2.6.32-504.16.2.el6.x86_64 on an x86_64
ogin:
Password:
ast login: Mon Jul 25 12:15:44 from sam
ress the <Backspace> key now:
ご覧のとおり、「login:」の最初の文字が欠落しているため、入力したユーザー名は表示されません。
診断
まず、これらの症状はTelnetを使用した場合にのみ表示されます。他の以前のRHEL 4.7サーバーに接続されたセッションを使用し、そのセッションから問題のサーバーにTelnetを試みました。それから出て同じセッションで次に、同じユーザー名などを使用して問題サーバーに接続します。その後、このプロセスを何度も繰り返しましたが、結果は同じでした。したがって、Telnet エミュレータ、ユーザー、その他の設定は問題になりません。
ログイン後、TERMとsttyの設定を確認してみるとほぼ同じです。 Telnet セッションでは、速度は 9600cf に設定されます。 38400 SSH を使用して接続すると、「stty lnext」が「^V」に設定されます。 cf。 "" - どちらも重要には見えません。万が一に備えて同じにしてみましたが、何の違いもありません。
上矢印キー+Enterを使用して前のコマンドを繰り返すと、コマンドが表示されますが、最初の文字がありません。 「man stty」と入力すると、マニュアルページが正常に表示されるようです。
また、テキストファイルからvimを実行しようとしましたが、奇妙な文字が表示され、問題が端末の問題のように見えますが、SSH接続で動作する理由がわかりません...
プラットフォーム
サイエンティフィックLinux 6x:
[root@mort ~]# cat /etc/redhat-release
Scientific Linux release 6.8 (Carbon)
いくつかのパッケージバージョン:
[root@mort ~]# rpm -q glibc xinetd telnet-server ncurses ncurses-base ncurses-libs
glibc-2.12-1.192.el6.x86_64
xinetd-2.3.14-40.el6.x86_64
telnet-server-0.17-48.el6.x86_64
ncurses-5.7-4.20090207.el6.x86_64
ncurses-base-5.7-4.20090207.el6.x86_64
ncurses-libs-5.7-4.20090207.el6.x86_64
答え1
うーん…次のことをしてから問題がなくなったようです。
- パッケージと関連パッケージを
yum update
インストールする他の作業を行いました。kernel-2.6.32-642.3.1.el6.x86_64
kernel-firmware
- 適用されるMicrosoft ユニバーサル修正数年前 - すべて追い出してサーバー(VM)を再起動しました。
(samba4-libs、xorg-x11-drv-ati-firmware、kernel-devel、kernel-headersパッケージのアップデートもありますが、これが重要かどうか疑問です。)
「last」の出力を見ると、この質問を書いた当日の朝にサーバーを再起動したことがわかります。これらのモードは"kernel*"
("*firmware*"
Scientific Linux)パッケージのデフォルト設定から自動アップデートプロセスから明示的に除外されるため、yum-autoupdate
アップデートを手動でインストールした場合は問題が見つからなかった可能性があります。私はこの動作を見たことがありません。実際には、カーネルの更新によって以前に目立つ副作用を見たことがないので、これは私にとって新しい現象です。
答え2
(新しい)ログインを処理するために使用されるttyにまだ接続されているバックグラウンドプロセスがあるようです。再起動するとプロセスが終了し、問題が解決します。
tty
別の解決策は、影響を受けたtty(run)の名前を解決し、それを使用してps -ft {ttyname}
プロセスとそれを識別することですkill
。
ps -t $(tty) | awk 'NR>1 {print $1}' | sudo xargs kill -TERM