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


9

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

它必须是持久的。


我想提出一个建议,rinetd因为它是如此简单,以至于它可以在任何地方编译,但是不幸的是似乎没有OS X的端口……
Nicolas Raoul

我无法将其发布为答案,因为该问题受到保护,但是使用内置的Apache服务器重定向到另一个端口已经取得了很大的成功。将以下内容添加到/etc/apache2/httpd.conf的末尾:(<Location />\nProxyPass http://localhost:8080/\n</Location>其中\n是换行符),然后在“系统偏好设置”中启用“ Internet共享”。
Tobias

Answers:


10

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

1
Chinggsy,我尝试了您的方法,所有程序都运行了,但是一旦完成,我就会在控制台中收到错误消息。11/3/30 4:07:01 PM com.apple.ipfw [342]第1行:套接字:不允许进行操作这两个文件的权限都设置为root(所有者),问题仍然存在。我想念什么?和平
音乐会演奏者

本文为我解决了这一问题:apple.stackexchange.com/questions/3250/…–
Mattijs

1
实际上,由于某种原因,此答案无效。不过,这篇文章确实做到了:blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x
Mattijs

在OS X中,优胜美地ipfw已被删除。本要点中pf发布一种替代解决方案。
lyschoening 2014年

12

谢谢,但是缺少了一些东西,这种改变不是持久的。
sorin 2010年

好的,...将您的列表放在启动代理而不启动守护程序中。它对我有用。

1
“NUMBER”是某种地位了ipfw,应与实际数字来代替
德鲁
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.