xinetd 서비스를 다시 시작한 후 rsh는 "poll: 프로토콜이 회로 설정에 실패했습니다"를 표시합니다.

xinetd 서비스를 다시 시작한 후 rsh는 "poll: 프로토콜이 회로 설정에 실패했습니다"를 표시합니다.

나는 다양한 포럼에서 많은 것을 검색했으며 대부분의 경우 방화벽에서 포트를 열거나 서비스를 다시 시작하는 것이 해결책이라는 것을 나타냅니다 xinetd. 어떤 경우에는 이것이 해결책이 될 수도 있지만, 문제는 또 다른 문제이고 여전히 해결되어야 한다고 생각합니다.

Red Hat 6이 있고 서비스가 다운되었으며 / iptables실행 파일을 수정하지 않았습니다 .rshdrsh

처음에 시스템을 부팅했을 때 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로 이동하는 것입니다.

# 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, [{"루트\0", 5}, {"루트\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) = 0
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}, 8) = 0
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) = 0
클론(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) =?

도움을 주셔서 미리 감사드립니다.

감사합니다,

옥타비오

관련 정보