많은 양의 데이터를 수신하면 SSH 연결이 정지됩니다

많은 양의 데이터를 수신하면 SSH 연결이 정지됩니다

SSH를 통해 연결된 일련의 GNU/Linux 산업용 장치를 사용하는 데 문제가 있습니다. 서버를 변경하지 않았고 클라이언트 측에서는 다음 구성을 사용했기 때문에 구성은 매우 기본적입니다 .ssh/config.

Host <hostname>
    User <username>
    Port <port>

내가 직면한 문제는 많은 출력을 생성하는 명령(예: 긴 결과가 포함된 ls, apt Upgrade 또는 대용량 파일의 cat)을 실행할 때마다 SSH 연결이 응답하지 않고 아무 작업도 수행하지 않는다는 것입니다. 붙어 있거나 얼어 붙은 것 같습니다.

이 문제의 원인이 무엇인지 잘 모르겠습니다. SSH 구성이나 다른 요인과 관련이 있습니까? 어떤 도움이나 조언이라도 대단히 감사하겠습니다.

이는 동일한 구성을 가진 다른 장치에는 문제가 없으므로 SSH 서버가 있는 네트워크에 문제가 있는 것으로 보입니다. 그러나 네트워크를 수정할 수 있는 권한은 없습니다. 내 서버만 제어할 수 있습니다. 서버 이용 시 접근성과 성능을 향상시키기 위해 서버의 리소스를 제한할 수 있는 방법이 있나요?

답변1

OpenVPN 구성 파일에 다음 줄을 추가하여 마침내 문제를 해결했습니다.

mssfix 1410

이는 OpenVPN이 최대 세그먼트 크기(MSS)가 1410바이트로 설정되어 구성되었음을 의미합니다. MSS는 연결을 통해 전송할 수 있는 최대 패킷 크기를 결정하므로 네트워크 연결에서 중요합니다. 낮은 MSS 값은 큰 패킷이 네트워크에서 조각화되거나 성능 문제가 발생할 수 있는 경우 유용합니다. 더 낮은 MSS 값을 설정하면 이러한 문제를 방지하는 데 도움이 될 수 있습니다.

답변2

문제를 일으키는 ls원인이 CPU 문제인 것처럼 보입니다 . cat이 장치는 다른 장치와 동일합니까? topbig 을 실행 해 볼 수 있습니다 ls. 그렇다면 nice -n 10다음과 같이 명령 앞에 접두사를 붙여 보십시오. nice -n 10 ls이렇게 하면 모든 명령의 우선 순위가 낮아집니다.

네트워크 부분을 탐색하고 싶지만 장치에 최소 코어가 없는 경우 bbr을 사용하여 네트워크 버퍼 포화를 방지하고 fq_codel을 사용하여 스트림 간의 더 나은 공존을 달성할 수 있습니다.

cat << EOF > /etc/sysctl.d/99-network.conf
net.core.default_qdisc=fq_codel
net.ipv4.tcp_congestion_control=bbr
EOF
sysctl --system

네트워크이고 bbr/fq_codel이 작업을 수행하지 않는다고 확신하고 해당 커널이 있는 경우 ssh 및 htb를 사용하여 tc트래픽 조절을 설정하고 대역폭을 보존할 수 있습니다.tc

관련 정보