Comment rediriger définitivement le port 80 vers 8080 sous OS X?

9

Sur OS X 10.6, vous ne l'avez pas iptables, alors quelle est la solution complète pour cette redirection permanente de toutes les demandes envoyées au port 80 vers un autre port, comme 8080?

Cela doit être persistant.

Sorin
la source
Je voulais suggérer rinetdparce que c'est si simple que je pensais que ça se compilerait n'importe où, mais il ne semble pas y avoir de port pour OS X, malheureusement ...
Nicolas Raoul
Je ne peux pas poster ceci comme réponse car cette question est protégée, mais j'ai eu beaucoup de succès en utilisant le serveur Apache intégré pour rediriger vers un autre port. Ajoutez ce qui suit à la fin de /etc/apache2/httpd.conf: <Location />\nProxyPass http://localhost:8080/\n</Location>(où \nest une nouvelle ligne), puis activez «Partage Internet» dans les Préférences Système.
Tobias

Réponses:

10

Utilisez ipfw comme dans la réponse de @ bindbn. Voilà l'idée générale.

Persistance:

mettez vos règles dans un fichier:

/etc/ipfw.conf

ajouter tout en haut de votre fichier

flush

Assurez-vous qu'il n'y a pas d'espaces blancs avant ou arrière dans aucune ligne.

ajouter à /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>

Soit redémarrer, soit

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

la première fois.

Après c'est

launchctl load com.yourdomain.ipfw
chiggsy
la source
1
Chinggsy, j'ai essayé votre méthode et tout fonctionne, mais une fois que c'est le cas, j'obtiens une erreur dans la console. 30/03/11 16:07:01 com.apple.ipfw [342] Ligne 1: socket: opération non autorisée Les autorisations sur les deux fichiers sont définies comme root en tant que propriétaire et le problème persiste. Qu'est-ce que je rate? paix
concertiste
Cet article a corrigé cela pour moi: apple.stackexchange.com/questions/3250/…
Mattijs
1
En fait, cette réponse n'a pas fonctionné pour une raison quelconque. Cet article a cependant: blog.scottlowe.org/2012/04/05/setting-up-ipfw-on-mac-os-x
Mattijs
Sous OS X, Yosemite ipfwa été supprimé. Une solution alternative utilisant pfa été publiée dans cet article .
lyschoening
12

Utilisez ipfw (lire 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

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

bindbn
la source
Merci mais il manque quelque chose, ce changement n'est pas persistant.
sorin
ok, ... placez votre plist dans Launch agents not launch Daemon. incroyable, cela a fonctionné pour moi.
1
'NUMBER' est une sorte de position dans ipfw et devrait être remplacé par un nombre réel
Drew