如何在 OS X 上将端口 80 永久重定向到 8080?

sor*_*rin 9 routing osx-snow-leopard

在 OS X 10.6 上,您没有iptables,那么永久重定向所有发送到端口 80 的请求到另一个端口(如 8080)的完整解决方案是什么?

它必须是持久的。

chi*_*gsy 10

在@bindbn 的回答中使用 ipfw。这是一般的想法。

持久性:

将您的规则放入文件中:

/etc/ipfw.conf
Run Code Online (Sandbox Code Playgroud)

添加在文件的最顶部

flush
Run Code Online (Sandbox Code Playgroud)

确保任何行中都没有前导或尾随空格。

添加到 /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>
Run Code Online (Sandbox Code Playgroud)

要么重新启动,要么

launchctl load -w /Library/LaunchDaemons/com.yourdomain.ipfw.plist
Run Code Online (Sandbox Code Playgroud)

第一次。

之后就是

launchctl load com.yourdomain.ipfw
Run Code Online (Sandbox Code Playgroud)