Linux Fedora는 터미널에서 동시 개방 연결을 제한합니까?

Linux Fedora는 터미널에서 동시 개방 연결을 제한합니까?

저는 주변에 웹 서버가 있고 클러스터를 관리하기 위해 자동으로 연결을 열고 Python 스크립트를 사용하여 파일을 동기화하는 스크립트를 사용하기도 합니다. 이상한 문제가 발생했는데 어떻게 해결해야 할지 모르겠습니다.

테스트 사례를 재현하려면 즉시 연결을 수행하지 않는 원격 대상이 있어야 하며(LAN 및 localhost가 아님) 비밀번호를 묻지 않고 연결이 실행되어야 합니다(키 파일 사용).

/etc/hosts나는 Fedora를 실행하는 16대의 PC를 가지고 있고, 서버에는 Cent OS 5, s120 & s121이 있습니다. -- s121 & s120에 IP 주소가 할당된 2대의 서버를 소유하고 있습니다.

이것은 동일한 셸에서 동시에 s120에 대한 9개의 연결 + s121에 대한 9개의 연결을 여는 샘플 명령입니다. 그리고 작동합니다!

gnome-terminal --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab
-  e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh
root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" -- tab 
-e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh
root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab 
-e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh
 root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab -e "bash -c \"ssh root@s121;\"" --tab 
-e "bash -c \"ssh root@s121;\""

이 명령은 동일한 쉘에서 15개의 연결을 열려고 시도합니다. 모두 15 TO-> s120

gnome-terminal --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab
-e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh 
root@s120;\"" --tab -e "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\""       
--tab - e   "bash -c \"ssh root@s120;\"" --tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash 
- c \"ssh
 root@s120;\""  --tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash -c \"ssh root@s120;\""  
--tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash -c \"ssh root@s120;\""  --tab -e "bash -c 
\"ssh root@s120;\""

15개의 연결을 열려고 시도하면 거의 즉시 5개의 탭이 자동으로 닫히고 10개의 연결만 열려 있습니다. 이 문제는 또한 발생합니다 terminal_xfce(그놈 터미널이 조금 덜 안정적이라는 것을 알았기 때문에 선호합니다)

10개 이상의 동시 연결 연결은 허용되지 않는 것 같습니다.

처음에는 10개 이하의 동시 연결이 허용되는 것 같지만 10개의 탭을 열고 연결이 시작될 때까지 기다리면 동일한 서버에 대해 10개의 탭이 있는 다른 터미널을 열 수 있습니다.

(또한 이 테스트 결과는 클라이언트와 서버 모두에서 IP TABLES 방화벽이 비활성화된 경우에도 동일하다고 말하고 싶습니다.)

또한 이 문제는 특히 짜증나고 파일 시스템의 여러 대상을 동일한 서버로 동기화하는 동안 lsyncd실행 rsync하면 OS에 의해 연결이 종료되기 때문에 예기치 않은 결과가 발생합니다. 터미널 테스트 사례는 재현하기가 더 간단합니다. 처리하기가 덜 문제가 됩니다.

답변1

모든 연결이 스크립트 명령을 사용한다면... gnome-terminal 탭을 사용하는 이유는 무엇입니까? 실제로 필요하지 않은 많은 리소스를 사용하고 있으며 이로 인해 현재 겪고 있는 제한 요인이 발생할 수 있습니다.

gnome-terminal을 강제로 실행하는 대신 시스템이 연결을 처리하도록 허용한다면 거의 (귀하의 목적에 따라) 무제한의 연결을 얻을 수 있어야 합니다.

for a in $( seq 1 50 ); do
  ssh root@s120 my_cool_script &
  ssh root@s121 my_cool_script &
done
wait

이렇게 하면 몇 초 내에 100개의 연결(50~s120, 50~s121)이 생성되고 모두 'my_cool_script'. 당신이 하고 있는 모든 일이 스크립트로 작성되어 있는 한, 그것은 훌륭하게 진행될 것입니다.

'wait' 명령을 사용하면 스크립트가 계속되기 전에 모든 백그라운드 작업이 완료될 때까지 기다리게 됩니다. 당신은 그것이 필요하지 않거나 원하지 않을 수도 있습니다.

(게다가 타이핑도 훨씬 적습니다...)

답변2

/etc/ssh/sshd_config에서 MaxStartups를 찾으십시오.

  • sshd에 대한 무단 동시 로그인을 제한합니다.

  • 기본값은 10입니다.

관련 정보