Как перенаправить порт 80 на 8080 на OS X?

9

На OS X 10.6 у вас нет iptables, так каково полное решение для этого перманентного перенаправления всех запросов, отправляемых на порт 80, на другой порт, например 8080?

Это должно быть настойчиво.

Сорин
источник
Я хотел предложить, rinetdпотому что это так просто, я думал, что он скомпилируется где угодно, но, к сожалению, нет порта для OS X ...
Николас Рауль
Я не могу опубликовать это как ответ, потому что этот вопрос защищен, но я имел большой успех, используя встроенный сервер Apache для перенаправления на другой порт. Добавьте следующее в конец /etc/apache2/httpd.conf: <Location />\nProxyPass http://localhost:8080/\n</Location>(где \nэто новая строка ), а затем включите «Общий Интернет» в Системных настройках.
Тобиас

Ответы:

10

Используйте ipfw как в ответе @ bindbn. Это общая идея.

Упорство:

поместите ваши правила в файл:

/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
chiggsy
источник
1
Chinggsy, я попробовал твой метод, и все работает, но как только это происходит, я получаю сообщение об ошибке в консоли. 30.03.11 16:07:01 com.apple.ipfw [342] Строка 1: сокет: операция запрещена. Права доступа к обоим файлам установлены как root, как владелец, и проблема не устранена. Что мне не хватает? peace
концертмейстер
Эта статья исправила это для меня: apple.stackexchange.com/questions/3250/…
Mattijs
1
На самом деле, этот ответ по какой-то причине не сработал. Эта статья сделала, однако: blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x
Mattijs
В OS X Yosemite ipfwбыл удален. Альтернативное решение использования pfбыло размещено в этой сути .
Лихоение
12

Используйте 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

или http://www.hanynet.com/waterroof/

bindbn
источник
Спасибо, но чего-то не хватает, это изменение не является постоянным.
Сорин
ладно ... поместите свой список в Launch agent, а не запускает Daemon. Удивительно, это сработало для меня.
1
«NUMBER» - это какая-то позиция в ipfw, и ее следует заменить на фактическое число
Дрю