답변:
사용하다 -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3
이 조합으로 ServerAliveInterval=15,ServerAliveCountMax=3
인해 1 분의 네트워크 중단 후 I / O 오류가 발생합니다. 이것은 중요하지만 대부분 문서화되지 않았습니다. 경우 ServerAliveInterval
옵션 (그래서 살아 체크하지 않고) 기본에 남아, I / O를 끊지 것 경험 프로세스는 SSHFS 가져 후에도 계속 잠 reconnect
'에드. 나는 이것이 쓸모없는 행동이라고 생각합니다.
즉, -o reconnect
할당하지 않고 발생 하는 ServerAliveInterval
일은 I / O가 성공하거나 ssh가 다시 연결되면 응용 프로그램이 무기한 중단되는 것입니다. 결과적으로 일반적인 응용 프로그램이 완전히 중단됩니다. I / O가 오류를 반환하고 응용 프로그램을 다시 시작하도록하려면 ServerAliveInterval=1
이상 이 필요합니다 .
는 ServerAliveCountMax=3
어쨌든 기본,하지만 난 가독성을 위해 그것을 지정할 것을 좋아합니다.
man 5 ssh_config
자세한 내용은 @ PJBrunet 이지만 요점은 15 초마다 ssh가 15 초마다 'keep-alive'핑과 같은 것을 보내 컴퓨터가 여전히 서로 응답하는지 확인하는 것입니다. 3 회 연속 핑이 실패하면 (45 초) 다시 연결하십시오.
ServerAliveCountMax=3
다른 의미를 가지고 있다고 생각 합니다. 실패하면 3 번 더 재 연결을 시도한 다음 포기합니다. 어떤 시점에서 재 시도는 헛된 일이지만, 응용 프로그램에 따라 다릅니다. 다시 한 번 매뉴얼 페이지가 더 구체적 일 수 있다고 생각합니다. IMO라는 단어를 해석하는 방법에는 여러 가지가 있습니다. 그러나 ProtonVPN으로 전환 한 후 특정 문제가 사라졌습니다. 클라이언트와 서버에서 ssh 구성을 확인할 가치가 있다고 생각합니다. 별도의 옵션이 있으므로 실제로 필요한 것은-o reconnect
autossh 및 autofs의 팁에 감사합니다.
그러나 필자의 직접적인 목적으로 문서화되지 않은 훨씬 간단한 솔루션을 찾았습니다.
sshfs -o reconnect server:/path/to/mount
SSH 클라이언트가 연결을 끊지 않도록 구성 할 수 있다고하더라도 지정된 비활성 기간이 지나면 서버가 그렇게하도록 구성되어 있기 때문에 서버를 무시할 수 없기 때문입니다. 연결을 다시 시작하지 않으면 서버가 정지 상태가되어 시간이 지남에 따라 서버 리소스가 크게 낭비 될 수 있습니다.
더 좋은 기술은 컴퓨터를 일시 중지하기 전에 파일 시스템을 마운트 해제하고 컴퓨터가 다시 깨어날 때 다시 마운트하는 것입니다. 이를 수행하는 메커니즘은 컴퓨터를 일시 중지하는 방법에 따라 달라질 수 있습니다. tuxonice 커널을 사용하여 이와 같은 작업을 수행하려면 다음과 같은 지시문이 있습니다.
Unmount /mnt/sshfs
에서 /etc/hibernate/common.conf
.
kubanczyk 의 답변 은 훌륭합니다. 너무 욕심 많은 sshfs로 인해 전체 인터페이스를 정지시키는 데 문제가 있었으므로 이제 랩톱을 열 때 다시 연결되고 연결 속도가 느려도 고정되지 않는 스크립트로 쉽게 연결하기 위해 bash 스크립트를 사용할 수 있습니다 (아마도 매우 안전하지는 않지만 많은 웹 프로젝트에 편리합니다.
#!/bin/bash
echo PWD | sshfs USER@SERVER:/ MOUNT_PATH -o password_stdin,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 -p PORT -C -oStrictHostKeyChecking=no
if xhost >& /dev/null ; then
pcmanfm MOUNT_PATH
fi