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


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

它必须坚持不懈。


9
2017-09-22 11:20




我想建议 rinetd 因为它很简单我认为它可以在任何地方编译,但不幸的是似乎没有OS X的端口...... - Nicolas Raoul
我不能将此作为答案发布,因为这个问题受到保护,但我使用内置Apache服务器重定向到另一个端口取得了巨大成功。将以下内容添加到/etc/apache2/httpd.conf的末尾: <Location />\nProxyPass http://localhost:8080/\n</Location> (哪里 \n 是换行符,然后在“系统偏好设置”中启用“Internet共享”。 - Tobias


答案:


在@ 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

10
2018-02-14 02:00



Chinggsy,我尝试了你的方法,一切都运行,但一旦它,我在控制台中得到一个错误。 3/30/11 4:07:01 PM com.apple.ipfw [342]第1行:套接字:不允许操作两个文件的权限都设置为root作为所有者,问题仍然存在。我错过了什么?和平 - concertman
这篇文章为我解决了这个问题: apple.stackexchange.com/questions/3250/... - Mattijs
实际上,这个答案由于某种原因不起作用。然而,这篇文章做了: blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x - Mattijs
在OS X约塞米蒂 ipfw 已被删除。使用的替代解决方案 pf 已发布 在这个要点。 - lyschoening


使用ipfw(读取 http://discussions.info.apple.com/message.jspa?messageID=10945451  http://discussions.apple.com/thread.jspa?messageID=10996939&#10996939

ipfw add NUMBER fwd 127.0.0.1,8080 tcp from any to me 80

要么 http://www.hanynet.com/waterroof/


12
2017-09-22 13:20



谢谢,但遗漏了一些东西,这种变化并不持久。 - sorin
好吧,...将你的plist放在启动代理中不启动守护进程。太棒了它对我有用。
'NUMBER'是ipfw中的某种位置,应该用实际数字替换 - Drew