मैंने macOS Sierra पर स्विच कर लिया है और लूपबैक इंटरफ़ेस lo0 का उपयोग करके लोकलहोस्ट (http और https) के लिए काम करते हुए पोर्ट फ़ॉरवर्डिंग प्राप्त करने में सक्षम नहीं हूँ। मैं El Capitan के लिए मौजूदा निर्देशों का पालन कर रहा हूं लेकिन बिना सफलता के pf का उपयोग कर रहा हूं :
https://apple.stackexchange.com/a/230331/81267 , http://blog.brianjohn.com/forwarding-ports-in-os-x-el-capitan.html
असल में, मैं सेटअप ifconfig:
sudo ifconfig lo0 10.0.0.1 alias
फिर मैं एक pfएंकर फ़ाइल बनाता हूं :/etc/pf.anchors/myorganization
rdr pass on lo0 inet proto tcp from any to 10.0.0.1 port = 80 -> 127.0.0.1 port 3000
rdr pass on lo0 inet proto tcp from any to 10.0.0.1 port = 443 -> 127.0.0.1 port 7000
इसमें pf.conf का संदर्भ जोड़ें (इसे निष्क्रिय करना होगा और फिर SIP को ऐसा करने के लिए फिर से सक्षम करना होगा):
rdr-anchor "myorganization"
...
load anchor "myorganization" from "/etc/pf.anchors/myorganization"
मैं एंकरों का परीक्षण करता हूं:
sudo pfctl -vnf /etc/pf.anchors/myorganization
और परिणाम अच्छा लग रहा है:
...
TRANSLATION RULES:
nat-anchor "com.apple/*" all
rdr-anchor "com.apple/*" all
rdr-anchor "myorganization" all
...
मैंने उन्हें सक्षम किया है:
sudo pfctl -evf /etc/pf.conf
मैंने localhostअपने / etc / host में जोड़ा है
127.0.0.1 localhost
लेकिन जब मैं ब्राउज़ करता http://localhostहूं तो मुझे मिलता है ERR_CONNECTION_REFUSED। यदि मैं http://localhost:3000साइट पर ब्राउज़ करता हूँ तो ठीक काम कर रहा है।
अद्यतन मैंने pf लॉगिंग चालू किया और 10.0.0.1 उपनाम के बिना कोशिश की:
rdr pass log (all) on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 3000
rdr pass log (all) on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 7000
और पहली बार मैंने http: // localhost मारा , मैं लॉग देखता हूं:
00:00:00.000000 rule 4294967295/8(ip-option): pass in on en0: (tos 0x0, ttl 1, id 59674, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
192.168.0.106 > 224.0.1.60: igmp v2 report 224.0.1.60
00:00:00.204784 rule 4294967295/8(ip-option): pass in on en0: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 32, options (RA))
192.168.0.3 > 224.0.0.252: igmp v2 report 224.0.0.252
00:00:00.093232 rule 4294967295/8(ip-option): pass out on en0: (tos 0x0, ttl 1, id 11047, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
192.168.0.77 > 224.0.0.251: igmp v2 report 224.0.0.251
00:00:00.111608 rule 4294967295/8(ip-option): pass in on en0: (tos 0x0, ttl 1, id 60629, offset 0, flags [none], proto IGMP (2), length 32, options (RA))
192.168.0.106 > 239.255.255.250: igmp v2 report 239.255.255.250
00:00:00.102426 rule 4294967295/8(ip-option): pass in on en0: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 32, options (RA))
192.168.0.3 > 224.0.0.251: igmp v2 report 224.0.0.251
00:00:00.000120 rule 4294967295/8(ip-option): pass in on en0: (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 48, options (RA))
192.168.0.3 > 224.0.0.22: igmp v3 report, 2 group record(s) [gaddr 224.0.0.251 is_ex, 0 source(s)] [gaddr 224.0.0.252 is_ex, 0 source(s)]
इसके बाद हिट करने के लिए लोकलहोस्ट लॉग में कुछ भी नहीं जोड़ता है और मैं देखता हूं कि लूपबैक इंटरफ़ेस lo0 उस लॉग में नहीं दिखा, बस en0 (ईथरनेट), इसलिए मुझे यकीन नहीं है कि यह लॉग आउटपुट समस्या के लिए प्रासंगिक है। मैंने /etc/pf.anchors/myorganizationफ़ाइल में en0 और en1 जोड़ने का भी प्रयास किया लेकिन वही परिणाम।