Answers:
在@bindbn的答案中使用ipfw。那是一般的想法。
将您的规则放入文件中:
/etc/ipfw.conf
在文件的最顶部添加
flush
添加到/Library/LaunchDaemons/com.yourdomain.ipfw.plist中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.yourdomain.ipfw</string>
<key>Program</key>
<string>/sbin/ipfw</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/ipfw</string>
<string>-q</string>
<string>/etc/ipfw.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
重新启动,或者
launchctl load -w /Library/LaunchDaemons/com.yourdomain.ipfw.plist
第一次。
在那之后
launchctl load com.yourdomain.ipfw
使用ipfw(阅读http://discussions.info.apple.com/message.jspa?messageID=10945451 http://discussions.apple.com/thread.jspa?messageID=10996939쳋)
ipfw add NUMBER fwd 127.0.0.1,8080 tcp from any to me 80
rinetd
因为它是如此简单,以至于它可以在任何地方编译,但是不幸的是似乎没有OS X的端口……