私はmacOS Sierraに切り替えましたが、ループバックインターフェースlo0を使ってlocalhost(httpとhttps)のためにポート転送を機能させることはできません。私は使っています pf El Capitanの既存の手順に従うが成功しなかった。
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 / hostsに
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)]
その後localhostにヒットしてもログには何も追加されず、ループバックインターフェイスlo0はそのログには表示されず、en0(イーサネット)だけが表示されることがわかります。私はまたen0とen1を /etc/pf.anchors/myorganization
ファイルは同じ結果。