पुरानी उपयोगिता ipfw
को मैक ओएस एक्स के हाल के संस्करणों में हतोत्साहित किया गया था और अब एल कैपिटन से चला गया है।
एल कैपिटान में पोर्ट अग्रेषण करने का आधुनिक तरीका क्या है?
मैं बस 8080 को पोर्ट करना चाहता हूं।
पुरानी उपयोगिता ipfw
को मैक ओएस एक्स के हाल के संस्करणों में हतोत्साहित किया गया था और अब एल कैपिटन से चला गया है।
एल कैपिटान में पोर्ट अग्रेषण करने का आधुनिक तरीका क्या है?
मैं बस 8080 को पोर्ट करना चाहता हूं।
जवाबों:
8080 पोर्ट के लिए सभी पोर्ट 80 ट्रैफ़िक को अग्रेषित करने के लिए, आप टर्मिनल कमांड लाइन से निम्नलिखित दर्ज कर सकते हैं।
echo "
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
" | sudo pfctl -ef -
Https://salferrarello.com/mac-pfctl-port-forwarding/ से लिया गया
sudo pfctl -F all -f /etc/pf.conf
, और अपने वर्तमान पोर्ट अग्रेषण नियमों को प्रदर्शित करने के लिए,sudo pfctl -s nat
pf.conf
फ़ाइल शामिल है
एल कैपिटन में बंदरगाहों को अग्रेषित करने का आधुनिक तरीका उपयोग कर रहा है pf
। सभी पोर्ट के नीचे के उदाहरण में, 80 होस्ट एक ही होस्ट पर पोर्ट 8080 के लिए अग्रेषित किए जाते हैं। कृपया अपनी आवश्यकताओं के लिए पुनर्निर्देशन को समायोजित करें।
एक एंकर फ़ाइल बनाएं। org.user.forwarding in /pStreet/etc/pf.anchors
sudo touch /private/etc/pf.anchors/org.user.forwarding
निम्नलिखित सामग्री और एक अनुगामी खाली लाइन के साथ
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on en0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on en1 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
या
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
फ़ाइल /pStreet/etc/pf.conf को संशोधित करें लेकिन एक अनुगामी खाली लाइन रखें
मूल फ़ाइल:
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
सेवा
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "org.user.forwarding"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "org.user.forwarding" from "/etc/pf.anchors/org.user.forwarding"
पार्स करें और सुनिश्चित करें कि कोई त्रुटि नहीं है, यह सुनिश्चित करने के लिए अपनी एंकर फ़ाइल का परीक्षण करें:
sudo pfctl -vnf /etc/pf.anchors/org.user.forwarding
अब /System/Library/LaunchDaemons/com.apple.pfctl.plist से संशोधित करें
<array>
<string>pfctl</string>
<string>-f</string>
<string>/etc/pf.conf</string>
</array>
सेवा
<array>
<string>pfctl</string>
<string>-e</string>
<string>-f</string>
<string>/etc/pf.conf</string>
</array>
इसे पूरा करने के लिए आपको सिस्टम इंटीग्रिटी प्रोटेक्शन को निष्क्रिय करना होगा। फाइल को एडिट करने के बाद रीएनएबल एसआईपी। रिबूट करने के बाद आपका मैक पीएफ सक्षम हो जाएगा (यह -e विकल्प है)।
वैकल्पिक रूप से आप यहां उत्तर के समान अपना स्वयं का लॉन्च डेमॉन बना सकते हैं: इंटरनेट साझा किए बिना इंटरनेट साझा करने के लिए सर्वर 5.0.15 का उपयोग करना ।
सिस्टम अपडेट के बाद या ऊपर दी गई कुछ मूल फाइलों को अपग्रेड किया जा सकता है और आपको सभी परिवर्तनों को फिर से लागू करना होगा।
यदि आप विभिन्न इंटरफेस में आगे बढ़ना चाहते हैं, तो आपको इसे /etc/sysctl.conf में सक्षम करना होगा:
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
ping
नेटवर्क समस्याओं के निदान में आपका मित्र है।
@ साल-फेर्रेलो उत्तर से समाधान का विस्तार करने के लिए, मैंने पहले से मौजूद प्रविष्टियों से समझौता किए बिना पुनर्निर्देशन को सक्षम या अक्षम करने के लिए दो सुपर-बेसिक शेल लिपियों का निर्माण किया ।pf
I. पहले खोजें कि आपके पास पहले से कौन सी प्रविष्टियाँ हैं:
sudo pfctl -s nat
मेरा आउटपुट ऐसा था:
No ALTQ support in kernel
ALTQ related functions disabled
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
हमें कौन सी रुचियां हैं, वास्तविक प्रविष्टियां हैं इसलिए पहले दो सूचना लाइनें।
द्वितीय। enable.sh
स्क्रिप्ट बनाएँ :
#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
" | sudo pfctl -ef -
sudo pfctl -s nat
पहले दो पंक्तियों के बाद echo
प्रविष्टियाँ हैं जो पहले से ही थीं। तीसरी पंक्ति नए पुनर्निर्देशन के साथ है - इस मामले में 80 से 8080। अंत में हम sudo pfctl -s nat
यह देखने के लिए कॉल करते हैं कि क्या परिवर्तन लागू किए गए थे।
तृतीय। disable.sh
स्क्रिप्ट बनाएँ :
इसी तरह enable.sh
हम स्क्रिप्ट बनाते हैं, लेकिन बिना 80-> 8080 रीडायरेक्ट के, लेकिन पहले से मौजूद प्रविष्टियों के साथ:
#!/bin/sh
echo "
nat-anchor \"com.apple/*\" all
rdr-anchor \"com.apple/*\" all
" | sudo pfctl -ef -
sudo pfctl -s nat