我有点预料到事情会破裂,但是......
我的 pf 转发规则之前在 Yosemite 上运行良好,但在 10.11 上不再运行。
我的转发规则如下:rdr pass on lo0 inet proto tcp from any to any port = 80 -> 127.0.0.1 port 8080
我可以通过访问来访问内容localhost:8080
,但不只是localhost,
预期(和之前)的行为。
他们是否提到过对 pf 实用程序的某些更改?我该怎么做才能使其正常工作?
答案1
这仅适用于 OSX 10.11 - El Capitan - Public Beta 1
在最新的 10.11 测试版中,127.0.0.1 被阻止。解决方案?使用 127.0.0.2。操作如下:
首先将 127.0.0.2 添加到环回别名
sudo ifconfig lo0 alias 127.0.0.2 up
修改您的 pf 规则以使用新的别名。
rdr pass proto tcp from any to any port 80 -> 127.0.0.2 port 8080
对于@williamcwilliams(在上面的评论中),只需放下锚点,它就会起作用。
echo "rdr pass proto tcp from any to any port {80,8080} -> 127.0.0.2 port 8080" | pfctl -Ef -
<-- 请务必添加最后一个勾号,因为您正在使用 STDIN 进行管道传输)