एनएफएस मुझे एक हिस्सा माउंट करने की अनुमति क्यों नहीं दे रहा है?


14

मेज़बान

मेरे पास एक होस्ट है, जो Ubuntu 12.04 पर चल रहा है 10.0.0.202। यह नेटवर्क पर अन्य मशीनों के लिए NFS शेयर प्रदान करता है। यहाँ की सामग्री है /etc/exports:

/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check)

यहां इरादा /media/storagedriveआईपी ​​रेंज में नेटवर्क पर अन्य मशीनों की सामग्री को साझा करना है 10.0.0.0 - 10.0.0.255

वर्किंग क्लाइंट

यह एक ग्राहक मशीन के साथ सही ढंग से काम करता है 10.0.0.40, जो Ubuntu 13.10 पर चल रहा है, जिसे MattDev के रूप में जाना जाता है। इस मशीन की /etc/fstabतरह लग रहा है:

UUID=8f8c838e-3ea2-457a-87f0-57b12dfab06c /               ext4    errors=remount-ro 0       1
UUID=427089d4-46a2-432d-9df4-7016bdfc7df2 none            swap    sw              0       0
10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive nfs rsize=8192,wsize=8192,timeo=14,intr

और ls -al /mnt/उस मशीन पर इस तरह दिखता है:

total 12K
drwxr-xr-x  3 root root    4.0K Feb  4 17:48 .
drwxr-xr-x 23 root root    4.0K Feb  5 08:44 ..
drwxrwxr-x  7 root plugdev 4.0K Feb  5 11:43 NetworkStorageDrive

इस idतरह दिखता है आउटपुट :

uid=1000(matt) gid=1000(matt) groups=1000(matt),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),112(lpadmin),124(sambashare)

नॉन-वर्किंग वर्चुअल क्लाइंट

मेरे पास एक दूसरी क्लाइंट मशीन है, जो उबंटू 12.10 पर चल रही है, विंडोज 7 होस्ट मशीन पर अतिथि ओएस के रूप में। होस्ट मशीन नेटवर्क पर है10.0.0.28 । वर्चुअल मशीन द्वारा एक प्रदाता के रूप में उपयोग करते हुए, अतिथि मशीन को वैग्रांट द्वारा प्रबंधित किया जा रहा है। मैं विंडोज 7 होस्ट एलेक्सडेवहोस्ट और उबंटू अतिथि एलेक्सडेव्यूस्ट को फोन करूंगा।

showmount -e 10.0.0.202AlexDevGuest पर चल रहा है उत्पादन:

Export list for 10.0.0.202:
/media/storagedrive 10.0.0.0/24

हालाँकि, जब मैं शेयर को माउंट करने की कोशिश करता हूं, तो यह विफल हो जाता है:

$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive

इसलिए मैंने मुद्दों की तलाश शुरू की:

$ ls -alh /mnt/
total 12K
drwxr-xr-x  3 root root 4.0K Feb  5 12:23 .
drwxr-xr-x 26 root root 4.0K Feb  5 12:23 ..
drwxr-xr-x  2 root root 4.0K Feb  5 12:23 NetworkStorageDrive
$ id
uid=1001(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$

वह uid और gid, MattDev पर यूजर मैट के लिए अलग है। इसलिए मैंने योनि के लिए यूआईडी के बारे में कहा, जैसा कि मैंने पढ़ा है कि आईपी पते और यूआईडी के मिलान से एनएफएस पहुंच नियंत्रित होती है। तो अब:

$ id
uid=1000(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
$

फिर भी कोई सफलता नहीं मिली। इसलिए अब मैं विचारों से भाग रहा हूं।

  1. मैं क्या गलत कर रहा हूं?
  2. यदि uid भाग सही है, तो क्या कोई तरीका है जिससे मैं यह सत्यापित कर सकता हूं कि NFS सर्वर मशीन मेरे पहुंच प्रयास को देख रही है 10.0.0.28, और कुछ अन्य IP अनुमत सीमा में नहीं है?

जवाबों:


16

ठीक है, मैंने इसे काम किया है (या कम से कम, मैंने इसे काम किया है, और मुझे लगता है कि मुझे पता है कि यह क्या कारण था)।

मैंने insecureध्वज को /etc/exportsNFS सर्वर पर लाइन में जोड़ा , तो अब यह इस तरह दिखता है:

/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check,insecure)

यह ध्वज कनेक्शन IPPORT_RESERVED (1024) से ऊपर क्लाइंट पोर्ट से उत्पन्न करने की अनुमति देता है।

माउंट कमांड अब काम करता है।

मेरा अनुमान है कि insecureझंडे की कमी के कारण समस्या यह थी कि वर्चुअलबॉक्स NAT का उपयोग भौतिक नेटवर्क के माध्यम से अनुरोध पारित करने के लिए कर रहा था, इसलिए जब उबंटू अतिथि (AlexDevGuest) पर पोर्ट 1024 से नीचे हो सकता है, तो अनुवादित पोर्ट पर विंडोज 7 होस्ट (एलेक्सडेवोस्ट) संभवतः 1024 से ऊपर था, और इसलिए अवरुद्ध किया गया था। insecureध्वज को स्थापित करने का मतलब है कि इसे अनुमति दी गई थी।

यह समस्या स्पष्ट रूप से गैर-आभासी मशीन देवमैट को प्रभावित नहीं करती है।


इस पर शानदार जासूसी का काम। मैं अनबंटू के वर्चुअलबॉक्स VMs को "सैंडबॉक्स" वातावरण के रूप में नियमित रूप से उपयोग करता हूं, मैं उत्पादन स्तर के सर्वर या यहां तक ​​कि एक मंचित देव सर्वर का उपयोग करने के बजाय टॉस या परीक्षण कर सकता हूं और यह बेहद मदद करता है।
जेकगॉल्ड

अनंत लूप में आपको धन्यवाद कहना चाहता हूं, लंबे समय से यह देख रहा हूं और आपने मदद की। किसी भी विचार क्यों वे इस तरह के प्रतिबंध लगा दिया है क्यों वे किसी भी पोर्ट नंबर से आने वाले कनेक्शन को अनुमति नहीं दे सकते हैं कि पोर्ट नंबर कुछ भी कैसे प्रभावित करेगा। किसी भी तरह से बड़ा धन्यवाद।
mSatyam

@mSyam यह इसलिए होगा क्योंकि 1024 से नीचे के पोर्ट पर बाइंड करने के लिए आपको रूट होना होगा, और शायद NFS सामान को रूट के रूप में चलाने की उम्मीद करना कम से कम डिफ़ॉल्ट रूप से उचित होगा। मैं जो पोर्ट फॉरवर्ड कर रहा था वह कुछ हद तक "विशेष मामला" था।
एलेक्स

लेकिन मैं VirtualBox की नेटवर्किंग को 1024 से नीचे के पोर्ट का उपयोग करने के लिए कैसे मना सकता हूं? ..
मिखाइल टी।

बहुत बहुत धन्यवाद ..
johnmin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.