मैं Ubuntu 11.10 चला रहा हूं - कई अन्य सर्वरों के बीच निर्देशिका साझा करने के लिए एनएफएस की स्थापना। फ़ायरवॉल पर कौन से पोर्ट खोलने की आवश्यकता है?
मैं Ubuntu 11.10 चला रहा हूं - कई अन्य सर्वरों के बीच निर्देशिका साझा करने के लिए एनएफएस की स्थापना। फ़ायरवॉल पर कौन से पोर्ट खोलने की आवश्यकता है?
जवाबों:
$ rpcinfo -p | grep nfs
पोर्ट 111 (टीसीपी और यूडीपी) और एनएफएस सर्वर के लिए 2049 (टीसीपी और यूडीपी)।
क्लस्टर और क्लाइंट स्थिति (पूर्व के लिए पोर्ट 1110 टीसीपी, और बाद के लिए 1110 यूडीपी) के साथ-साथ एनएफएस लॉक मैनेजर (पोर्ट 4045 टीसीपी और यूडीपी) के लिए पोर्ट भी हैं। केवल आप ही यह निर्धारित कर सकते हैं कि किन पोर्ट्स के लिए आपको किन सेवाओं की आवश्यकता है, इसके आधार पर क्रॉस-गेटवे की आवश्यकता है।
grep nfs
, लेकिन मैंने यह जानने के लिए कि यह 111 है के लिए grep छोड़ दिया portmapper
। यह जानकर भी अच्छा लगा! (और जैसा आपने उल्लेख किया है, आवश्यक है)
पोर्टमैप के लिए 111 और एनएफ़एस के लिए 2049 के अलावा, आपको माउंट पोर्ट और संभवतः रैकोटैड, लॉकड, और स्टेट की अनुमति देने की आवश्यकता होगी, जो सभी गतिशील हो सकते हैं। यह उत्कृष्ट एनएफएस सुरक्षा गाइड आपके स्टार्टअप स्क्रिप्ट को बदलने की सिफारिश करता है और कर्नेल मॉड्यूल को स्थिर बंदरगाहों का उपयोग करने के लिए मजबूर करता है।
ऊपर दिए गए गाइड के अलावा, जिसमें फायरवॉल पर एक सेक्शन है , एनएफएस को सख्त करने के बारे में एक और सवाल का मेरा जवाब देखें ।
RPCMOUNTDOPTS="--port 34567"
और फिर से शुरू करें sysctl --system
और/etc/init.d/nfs-kernel-server restart
मुझे इस पृष्ठ पर अपनी समस्या के लिए उपयोगी निर्देश मिले, लेकिन नुस्खा का पालन करना आसान नहीं था। तो यहाँ मेरा नुस्खा है।
टीएल; डीआर - दोनों एनएफएस पोर्ट (111, 2049) और इसे ठीक करने के बाद माउंट पोर्ट की अनुमति देने की आवश्यकता है।
निर्देश:
gksudo gedit /etc/default/nfs-kernel-server
RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="--port 33333"
या कोई अन्य पोर्ट नंबर।
अब nfs का उपयोग करके रीसेट करने का प्रयास करें:
sudo service nfs-kernel-server restart
और परीक्षण अगर यह प्रयोग करने में मदद करता है:
rpcinfo -p | grep "tcp.*mountd"
मेरे लिए यह पर्याप्त नहीं था, लेकिन एक पूर्ण पुनरारंभ ने इस मुद्दे को ठीक कर दिया।
( क्रेडिट )
(1) पुराने नियम हटाएं, इसे मैन्युअल रूप से करें या रीसेट करें यदि यह फ़ायरवॉल के लिए एकमात्र उपयोग है:
sudo ufw reset
sudo ufw enable
(2) nfs और आरोहित पोर्ट जोड़ें
sudo ufw allow in from 10.0.0.1/20 to any port 111
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333
(अपने स्थानीय आईपी या के any
बजाय " " में बदलें 10.0.0.1/20
)
बस इतना ही है।
sudo service nfs-config restart
पुनः आरंभ करने से पहले एक सरल nfs-kernel-server
बस ठीक होगा।
systemctl
, तो यह है systemctl restart nfs-kernel-server.service
।
sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333
इसके बाद (ठीक है, दो प्रफुल्लित फूप्स) sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333
। नोट पोर्ट 33333 उपरोक्त उदाहरण के अनुसार है। उत्तर इंगित करता है के रूप में आप किसी अन्य पोर्ट का उपयोग कर सकते हैं।
यह सभी NFS से संबंधित कार्यक्रम द्वारा उपयोग किए जाने वाले सभी बंदरगाहों की एक सूची देगा:
rpcinfo -p | awk '{print $3" "$4}' | sort -k2n | uniq
FERM के साथ , rpcinfo से पोर्ट्स प्राप्त करने के लिए Backticks का उपयोग कर सकते हैं , उदाहरण के लिए:
सर्वर:
proto tcp {saddr ($CLIENT) {
dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:tcp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
proto udp {saddr ($CLIENT) {
dport (`rpcinfo -p | perl -e 'while(<>){/\s+\d+\s+\d\s+(?:udp)\s+(\d+)/ and $ports{$1}=1}; $, = " "; print sort(keys(%ports)),"\n"'`) ACCEPT; # NFS
}}
ग्राहक:
proto udp {saddr ($SERVER) {ACCEPT;}} # NFS
(यदि आप केवल टीसीपी का उपयोग करने जा रहे हैं तो आपको केवल proto tcp
भाग की आवश्यकता है )।
अभिलेखों के लिए, मुझे एक विन्यास के लिए बंदरगाहों 111, 2049 और 1048 के लिए अनुमतियों को जोड़ना पड़ा जहां एक एनएफएस शेयर विंडोज 2008 आर 2 सर्वर द्वारा निर्यात किया जाता है और ग्राहक उबंटू 12.04.4 हैं।
मुझे उम्मीद है इससे किसी को सहायता मिलेगी।