Mac OS ไม่สามารถเชื่อมต่อกับ SMB ที่ใช้ร่วมกันได้หลังจากหลับ


15

ฉันเคยเข้าถึงการแชร์ SMB ของเซิร์ฟเวอร์ไฟล์ Windows 2008 ในเครื่องของฉัน (อายุ 3 สัปดาห์) MacBook Pro โดยไม่มีปัญหา อย่างไรก็ตามสำหรับสองสามวันตอนนี้มันล้มเหลวในการ (อีกครั้ง) เชื่อมต่อกับเซิร์ฟเวอร์หลังจากที่ตื่นขึ้นจากโหมดสลีป

เครื่องมือค้นหาเพียงแสดง "กำลังเชื่อมต่อ ... " และแฮงค์ไปเรื่อย ๆ สิ่งเดียวกันเกิดขึ้นเมื่อฉันลองจากบรรทัดคำสั่ง ( mount -t smbfs) สิ่งนี้เกิดขึ้นผ่านทั้ง WiFi และเคเบิลฉันยังลองปิดระบบเครือข่ายและเปิดอีกครั้ง สิ่งเดียวที่จะช่วยให้มีการรีบูต

คำใบ้ใด ๆ

แก้ไขเพื่อความกระจ่าง: เป็น Mac ที่เข้าสู่โหมดสลีไม่ใช่เซิร์ฟเวอร์ ฉันค้นพบด้วยว่าถ้าฉันยกเลิกการเชื่อมต่อหุ้นก่อนที่ฉันจะหลับมันจะสามารถเชื่อมต่อใหม่ได้หลังจากตื่นนอน

การแก้ไขอื่น:

ฉันทำการตรวจสอบเพิ่มเติมและดมกลิ่นการรับส่งข้อมูลเครือข่าย Mac ส่งการสอบถามชื่อ NetBIOS และการร้องขอสถานะ (NBSTAT) ไปยังเซิร์ฟเวอร์เซิร์ฟเวอร์ตอบสนองทุกอย่างดูเหมือนจะดี หลังจากนั้น Mac ควรเปิดการเชื่อมต่อ SMB แต่จะไม่ทำอะไรเลย ไม่มีแพ็กเก็ตติดตามอีก

จากนั้นฉันก็พบว่าปัญหาที่แท้จริงนั้นอยู่ลึกลงไป ดูเหมือนว่าจะไม่เปิดการเชื่อมต่อใหม่เพราะคิดว่าอันเก่าซึ่งมีการหมดเวลาใช้งานที่ฝั่งเซิร์ฟเวอร์ยังคงทำงานอยู่ อย่างไรก็ตามโปรแกรมใด ๆ ที่พยายามเข้าถึงจุดเชื่อมต่อหรือเพียงไดเรกทอรี / ไดรฟ์ข้อมูลแฮงค์และไม่สามารถถูกฆ่าได้ umount /Volumes/share- แฮงค์ ls /Volumes- แฮงค์ kill -9สิ่งเหล่านี้ - ไม่ช่วย นอกจากนี้การเปิดกล่องโต้ตอบเปิดไฟล์ในแอพพลิเคชั่นใด ๆ ก็ทำให้มันค้างเช่นกัน!

สิ่งเดียวที่ช่วยได้คือการรีบูทอย่างหนัก ดูเหมือนว่าฉันมีบางอย่างผิดปกติในการใช้ SMB ของ OSX หากการเชื่อมต่อหมดเวลาสามารถกระตุ้นบางสิ่งเช่นนี้ได้

คำตอบ:


6

ฉันมีปัญหาเดียวกันกับ MacBook Pro ของฉัน ฉันทำตามคำแนะนำที่นี่ - http://blog.djmnet.org/2009/02/09/macs-needing-unix-network-geekery/และปัญหาของฉันดูเหมือนจะได้รับการแก้ไข


1
ว้าวขอบคุณ! ดูเหมือนว่าจะได้ทำมัน ฉันปิดการใช้งาน darwin_streams ใน smb.conf และเพิ่มสิ่งนี้ลงใน 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ในการเชื่อมต่อ) ซึ่งสามารถทำได้ใน Terminal:

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

ประการที่สองคือการจัดการกับไฟล์สิทธิ์ / ไฟล์ DS_Store โดยทั่วไปเมื่อคุณตั้งค่า Windows แชร์ Mac จะมีสิทธิ์เข้าถึงเพื่ออ่านเท่านั้น Finder พยายามสร้างมันในทุก ๆ โฟลเดอร์ที่คุณดูและในที่สุดก็สามารถแขวนได้ ดังนั้นจึงมีสองตัวเลือกในการแก้ปัญหานี้ - เปิดใช้งานการอนุญาตไฟล์ที่เพียงพอในเครื่อง Windows หรือหยุด Finder จากการสร้างไฟล์เหล่านี้ในเครือข่ายที่ใช้ร่วมกัน ฉันชอบที่จะปิดการใช้งาน finder จากการสร้างพวกเขาซึ่งสามารถทำได้โดยการเรียกใช้คำสั่งต่อไปนี้ใน terminal:

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_ackคือ310.6, 1.7 และ 1.8 การตั้งค่าให้0แก้ปัญหา แต่2ควรทำงานเช่นกัน
JakeGould

2

ฉันไม่สามารถช่วยแก้ปัญหาได้ แต่ฉันสามารถเพิ่มรายละเอียดได้อีกเล็กน้อย มันยังเกิดขึ้นใน Windows 7 และอุปกรณ์ OS X จะต้องยังคงเชื่อมต่อเมื่อ windows share ถูกพัก หากคุณตัดการเชื่อมต่อหรือนอนหลับ OS X จากนั้น Windows สแตนด์บายคุณจะไม่พบปัญหานี้

ฉันต้องการวิธีแก้ปัญหานี้เช่นกัน

แก้ไข: หลังจากการค้นหาบางคนหลายคนมีปัญหาคล้ายกัน:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.