OSX防火墙:转发端口和忽略非本地请求


1

在我的生产Debian服务器上,我使用它来将进入端口80的请求转发到在端口8080上运行的非根进程:

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

(该过程是Node.js集群,但我怀疑它与此问题相关。)

我在我的Mac上开发,我正在尝试为自己构建一个更优雅的环境,而不会在我的计算机上添加任何不必要的软件。我在我的/private/etc/hosts文件中添加了一个条目,因此我可以使用一个非常本地的域:

127.0.0.1 myapp.dev

现在我想在不指定端口的情况下访问它。换句话说,而不是http://myapp.dev:8080,我更喜欢http://myapp.dev。我也不希望直接在端口80上运行我的Web服务器,因此它没有root权限。

我知道我的电脑配有防火墙,但我无法找到有关它的更多信息。所以我正在寻找一种简单的方法来将端口80上的任何东西转发到端口8080,就像Debian上的IP Tables解决方案一样。我最希望使用计算机附带的防火墙,并以最简单的方式进行设置。

谁能告诉我怎么做?

奖励要点:是否有一种简单的方法可以忽略来自端口80(以及8080)的所有请求,除了那些来自我自己的运行Web服务器的计算机的请求?


Mac OS X曾经使用过一个名为ipfw的实用程序,但它被弃用而不支持BSD的pf端口。Apple提供的文档可在developer.apple.com/library/mac/documentation/Darwin/Reference / ...中找到
Dave

有GUI工具可能会有所帮助。IPFW有hanynet.com/waterroof,PFhanynet.com/icefloor。我试图通过而不安装这些,因为我可能永远不会再使用它们。

Answers:


1

使用IPFW的一种解决方案,与OS X 10.9(Mavericks)的PF共存,就是简单地运行命令:

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to me 80
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.