Як остаточно перенаправити порт 80 на 8080 на OS X?


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є новий рядок), а потім увімкніть "Інтернет-обмін" у Налаштуваннях системи.
Тобіас

Відповіді:


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

1
Chinggsy, я спробував ваш метод, і все працює, але як тільки це відбувається, я отримую помилку в консолі. 3/30/11 16:07:01 com.apple.ipfw [342] Рядок 1: сокет: Операція заборонена Що я пропускаю? мир
концертмен

У цій статті закріплено , що для мене: apple.stackexchange.com/questions/3250 / ...
Mattijs

1
Насправді ця відповідь чомусь не спрацювала. Ця стаття зробила проте: blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x
Mattijs

У ОС X Yosemite ipfwбув видалений. Альтернативне рішення з використанням pfбуло розміщено в цій суті .
lyschoening

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/


Дякую, але чогось не вистачає, ця зміна не є постійною.
sorin

Гаразд, ... розмістіть свій пліст у агентах запуску, а не запускайте Daemon. дивно, що це працювало на мене.

1
'NUMBER' - це якась позиція в ipfw, і його слід замінити фактичним числом
Drew
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.