잠자기 후 Mac OS가 SMB 공유에 연결할 수 없음


15

최근 (3 주 전) MacBook Pro에서 문제없이 로컬 Windows 2008 파일 서버의 SMB 공유에 액세스했습니다. 그러나 현재 며칠 동안 절전 모드에서 해제 된 후 서버에 다시 연결하지 못했습니다.

파인더는 "연결 중 ..."을 표시하고 무기한 정지됩니다. 명령 줄 ( mount -t smbfs) 에서 시도 할 때도 마찬가지입니다 . 이것은 WiFi와 케이블을 통해 발생하며 네트워킹을 껐다가 다시 켜 보았습니다. 도움이되는 유일한 것은 재부팅입니다.

힌트가 있습니까?

명확히하기 위해 편집 : 서버가 아니라 잠자기 상태가되는 것은 Mac입니다. 또한 공유하기 전에 공유 연결을 끊으면 깨어 난 후 다시 연결할 수 있다는 것도 알았습니다.

다른 편집 :

좀 더 조사하고 네트워크 트래픽을 스니핑했습니다. Mac은 NetBIOS 이름 쿼리와 상태 요청 (NBSTAT)을 서버에 보내고 서버가 응답하면 모든 것이 잘 보입니다. 그 후 Mac은 SMB 연결을 열어야하지만 아무 것도하지 않습니다. 더 이상 패킷이 뒤 따르지 않습니다.

그런 다음 실제 문제가 더 깊다는 것을 알았습니다. 서버 측에서 시간 초과 된 이전 연결이 여전히 활성 상태 인 것으로 생각하기 때문에 새 연결을 열지 않는 것 같습니다. 그러나 마운트 지점에 액세스하거나 / Volumes 디렉토리에만 액세스하려는 프로그램이 중단되어 종료 될 수 없습니다. umount /Volumes/share-교수형. ls /Volumes-교수형. kill -9이들 중 하나-도움이되지 않습니다. 또한 모든 응용 프로그램에서 파일 열기 대화 상자를 열면 파일이 중단됩니다!

도움이되는 유일한 방법은 하드 재부팅입니다. 시간 초과 연결이 이와 같은 것을 유발할 수 있다면 OSX의 SMB 구현에 근본적으로 잘못된 것이있는 것 같습니다.

답변:


6

MacBook Pro와 같은 문제가 있습니다. http://blog.djmnet.org/2009/02/09/macs-needing-unix-network-geekery/ 의 지침을 따라 문제가 해결 된 것 같습니다.


1
와우 감사합니다! 그렇게 한 것 같습니다. smb.conf에서 darwin_streams를 비활성화하고 이것을 sysctl.conf에 추가했습니다. net.inet.tcp.delayed_ack=0 net.inet.tcp.mssdflt=1440 kern.ipc.maxsockbuf=500000 net.inet.tcp.sendspace=250000 net.inet.tcp.recvspace=250000 재부팅 후 SMB 공유 (이전에 사용했던 것보다 훨씬 적은 시간 이 소요됨)에 연결했으며 몇 번의 절전 모드 후에도 여전히 액세스 할 수 있습니다 완벽하게.
Andreas

실제로 이러한 변경 사항을 적용한 후에도 여전히 문제가 발생했습니다. 그러나 OSX Lion이 문제를 해결 한 것으로 보입니다.
Andreas

4

안녕하세요, 최근에 2010 MBP와 동일한 문제가 있었으며 솔루션이 두 가지를 조합 한 것으로 나타났습니다.

첫 번째는 TCP_NODELAY터미널에서 수행 할 수 있는 커널 조정 (기본적 으로 연결)입니다

sudo sysctl -w net.inet.tcp.delayed_ack=0

둘째, 파일 권한 / DS_Store 파일을 처리합니다. 일반적으로 Windows 공유를 설정하면 Mac은 읽기 권한 만 갖습니다. Finder는 사용자가 보는 모든 폴더에이를 생성하려고 시도하며 결국 중단 될 수 있습니다. 따라서이 문제를 해결하기위한 두 가지 옵션이 있습니다. Windows 시스템에서 충분한 파일 권한을 활성화하거나 Finder가 네트워크 공유에서 이러한 파일을 생성하지 못하게합니다. 파인더에서 생성기를 비활성화하는 것을 선호합니다. 터미널에서 다음 명령을 실행하여 수행 할 수 있습니다.

defaults write com.Apple.desktopservices DSDontWriteNetworkStores true

실행 한 후에 재부팅해야합니다.


Mac OS 10.7.2 시스템에서 기본값 (복원해야 함)은 "net.inet.tcp.delayed_ack : 3"입니다 ( "sudo sysctl -a"를 실행하여 기본값을 얻을 수 있음).
Noalt 당

@ PerNoalt : 이와 같은 문제를 다루었 기 때문에이 스레드에 응답합니다. 기본 설정 net.inet.tcp.delayed_ack310.6, 1.7 및 1.8입니다. 0문제 를 해결 하도록 설정하십시오 . 그러나 2잘 작동합니다.
JakeGould

2

문제를 해결할 수는 없지만 조금 더 자세하게 설명 할 수 있습니다. Windows 7에서도 발생하며 Windows 공유가 절전 모드로 전환 될 때 OS X 장치는 계속 연결되어 있어야합니다. OS X 연결을 끊거나 절전 모드로 전환 한 다음 Windows 대기 모드로 전환하면이 문제가 발생하지 않습니다.

나는 이것에 대한 해결책도 정말로 원합니다.

편집 : 일부 다른 사람들을 검색 한 후 비슷한 문제가 발생했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.