Jak trwale przekierować port 80 na 8080 w OS X?

9

W systemie OS X 10.6 nie masz iptables, więc jakie jest pełne rozwiązanie tego stałego przekierowania wszystkich żądań wysłanych do portu 80 na inny port, na przykład 8080?

To musi być trwałe.

sorin
źródło
Chciałem zasugerować, rinetdponieważ jest tak prosty, że pomyślałem, że można go skompilować w dowolnym miejscu, ale nie wydaje się, że nie ma portu dla OS X, niestety ...
Nicolas Raoul,
Nie mogę opublikować tego jako odpowiedzi, ponieważ to pytanie jest chronione, ale odniosłem wielki sukces, używając wbudowanego serwera Apache do przekierowania na inny port. Dodaj następujące na końcu /etc/apache2/httpd.conf: <Location />\nProxyPass http://localhost:8080/\n</Location>(gdzie \njest nowa linia), a następnie włącz „Udostępnianie Internetu” w Preferencjach systemowych.
Tobias

Odpowiedzi:

10

Użyj ipfw jak w odpowiedzi @ bindbn. To jest ogólny pomysł.

Trwałość:

umieść swoje reguły w pliku:

/etc/ipfw.conf

dodaj na samym początku pliku

flush

Upewnij się, że w żadnym wierszu nie ma żadnych początkowych ani końcowych białych znaków.

dodaj do /Library/LaunchDaemons/com.twojadomena.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>

Uruchom ponownie komputer lub

launchctl load -w /Library/LaunchDaemons/com.yourdomain.ipfw.plist

pierwszy raz.

Po tym jest

launchctl load com.yourdomain.ipfw
chiggsy
źródło
1
Chinggsy, wypróbowałem twoją metodę i wszystko działa, ale kiedy to się dzieje, pojawia się błąd w konsoli. 30.03.11 16:07:01 com.apple.ipfw [342] Linia 1: gniazdo: Operacja niedozwolona Uprawnienia do obu plików są ustawione na rootowanie jako właściciel, a problem nadal występuje. czego mi brakuje? pokój
koncertman
Ten artykuł naprawił to dla mnie: apple.stackexchange.com/questions/3250/…
Mattijs
1
Właściwie ta odpowiedź z jakiegoś powodu nie zadziałała. Ten artykuł zrobił jednak: blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x
Mattijs
W OS X Yosemite ipfwzostał usunięty. Alternatywne rozwiązanie wykorzystujące pfzostało zamieszczone w tej treści .
lizosening
12

Użyj ipfw (czytaj 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

lub http://www.hanynet.com/waterroof/

bindbn
źródło
Dziękuję, ale czegoś brakuje, ta zmiana nie jest trwała.
sorin
okej ... umieść swoją listę w Uruchom agentów, a nie uruchom Daemona. niesamowite, że zadziałało dla mnie.
1
„NUMBER” to jakaś pozycja w ipfw i powinna zostać zastąpiona rzeczywistą liczbą
Drew