我正在尝试将一个带有两个 NIC 的 Mac OS X 盒配置为带有 DHCP 和 NAT 的路由器,理论上这应该不是一个太大的挑战,但目前我正在学习理论和现实是相当不同的。
我将 en0 连接到互联网,将 en1 连接到 LAN。使用服务器实用程序,我有仅有的已启用 DHCP 和 NAT。我已配置一个包含 DNS、搜索域等的子网。NAT 选项卡已将以太网 1 (en0) 设置为 IP 转发和 NAT。
客户端能够通过接入点连接到网络,并通过机器获得带有 DNS 和搜索域的 DHCP 地址,但是任何客户端都无法通过端口 80 访问互联网或 ping 外部的任何内容,但我们可以正常 ping 局域网内的设备。
我确信我遗漏了更多细节,因此你也可以从服务器实用程序中找到完整的 plist 转储这里。
编辑:忘了说这是 Mac OS 10.5
答案1
您需要设置并运行防火墙“服务”,以便将数据包转移到 natd 进行地址重写。如果我没记错的话,转移规则会自动添加到规则集中,但您需要手动添加规则以允许来自私有网络的出站流量,以及您打算提供服务的服务器端口的入站流量。如果您真的不想处理防火墙,您可以只允许所有地址组的所有端口(我忘记了确切的名称,而且我手边没有相关版本的服务器可以检查)。
答案2
您是否已将内部流量的默认路由设置为外部接口?如果没有,您需要这样做。
编辑:这是有关如何在 OS X 中设置持久路由的链接。它应该适用于 Leopard。 http://blog.irrashai.com/blog/2009/03/how-to-add-static-route-in-mac-os-x/
您可以测试这是否是该命令的问题route
- 尽管它不是持久的。
route -n add 0.0.0.0/0 x.x.x.x
其中 xxxx 是外部接口的网关。