
私はさまざまなフォーラムで多くを検索しており、ほとんどの場合、ファイアウォールでポートを開いたりサービスを再開したりすることが解決策であることを示していますxinetd
。場合によっては、これが解決策かもしれませんが、問題は別の問題であり、まだ解決する必要があると思います。
Red Hat 6があり、サービスがダウンしていて/iptables
実行可能ファイルを変更していません。rshd
rsh
最初にシステムを起動したとき、rshは正常に動作しました。
# rsh localhost pwd
/root
「xinetd」サービスを再起動すると、「ポーリング:回線設定でプロトコルが失敗しました」という既知のメッセージが表示されます。
# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
# rsh localhost pwd
poll: protocol failure in circuit setup
この問題を解決するには2つの方法があります。システムを再起動するか、レベル2に移動します。
# init 2; sleep 1; init 3
# rsh localhost pwd
/root
根本的な原因を見つけたいです。これはファイアウォールの問題ではありません。
strace
失敗時の出力は次のとおりです。
(強調された段落を参照)
ソケット(PF_INET、SOCK_STREAM、IPPROTO_IP)= 3 バインディング(3, {sa_family = AF_INET, sin_port = htons(1023), in_addr = inet_addr("0.0.0.0")}, 16) = 0 fcntl(3, F_SETOWN, 23277) = 0 接続(3, {sa_family=AF_INET, sin_port=htons(514), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 ソケット(PF_INET、SOCK_STREAM、IPPROTO_IP)= 4 バインディング(4, {sa_family=AF_INET, sin_port=htons(1022), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 リスニング(4、1)= 0 書き込み(3, "1022\0", 5) = 5 poll([{fd=3, イベント=POLLIN}, {fd=4, イベント=POLLIN}], 2, -1) = 1([{fd=3, revents=POLLIN|POLLERR|POLLHUP}]) write(2, "ポーリング: 回路でプロトコルが失敗しました"..., 40) = 40 オフ(4) = 0 オフ(3) = 0 rt_sigprocmask(SIG_SETMASK, [], [URG], 8) = 0 グループ終了(1)
strace
正常に動作したときの出力は次のとおりです。
(強調された段落を参照)
ソケット(PF_INET、SOCK_STREAM、IPPROTO_IP)= 3 バインディング(3, {sa_family = AF_INET, sin_port = htons(1023), in_addr = inet_addr("0.0.0.0")}, 16) = 0 fcntl(3, F_SETOWN, 24718) = 0 接続(3, {sa_family=AF_INET, sin_port=htons(514), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 ソケット(PF_INET、SOCK_STREAM、IPPROTO_IP)= 4 バインディング(4, {sa_family=AF_INET, sin_port=htons(1022), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 リスニング(4、1)= 0 書き込み(3, "1022\0", 5) = 5 poll([{fd=3, イベント=POLLIN}, {fd=4, イベント=POLLIN}], 2, -1) = 1([{fd=4, revents=POLLIN}]) accept(4, {sa_family = AF_INET, sin_port = htons(1020), in_addr = inet_addr("127.0.0.1")}, [16]) = 5 オフ(4) = 0 writev(3, [{"root\0", 5}, {"root\0", 5}, {"pwd\0", 4}], 3) = 14 読み取り(3, "\0", 1) = 1 rt_sigprocmask(SIG_SETMASK, [], [URG], 8) = 0 setuid(0) = 0 rt_sigprocmask(SIG_BLOCK, [INT QUIT TERM], [], 8) = 0 rt_sigaction(SIGINT, {SIG_IGN, [INT], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGINT, {0x2abd2db30080, [INT], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, {SIG_IGN, [INT], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, 8) rt_sigaction(SIGQUIT, {SIG_IGN, [終了], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGQUIT, {0x2abd2db30080, [終了], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, {SIG_IGN, [終了], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, 1 rt_sigaction(SIGTERM, {SIG_IGN, [用語], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTERM, {0x2abd2db30080, [用語], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, {SIG_IGN, [用語], SA_RESTORER|SA_RESTART, 0x2abd2e3c1920}, 8 クローン (child_stack = 0, フラグ = CLONE_CHILD_CLEARTID | CLONE_CHILD_SETTID | SIGCHLD, child_tidptr = 0x2abd2eb893b0) = 24721 ioctl(5, FIONBIO, [1]) = 0 ioctl(3, FIONBIO, [1]) = 0 rt_sigprocmask(SIG_SETMASK, [], [INT 終了期間], 8) = 0 select(6, [3 5], NULL, NULL, NULL) = 1([3] から) 読み取り(3, "/root\n", 8192) = 6 書き込み(1, "/root\n", 6) = 6 select(6, [3 5], NULL, NULL, NULL) = 1([3] から) 読み取り(3,"",8192) = 0 select(6, [5], NULL, NULL, NULL) = 1([5] から) 読み取り(5,"",8192) = 0 キル(24721,SIGKILL) = 0 グループ終了(0)=?
助けてくれてありがとう。
ありがとう、
オクタビオ