2010-03-09 3 views
3

J'essaie de me connecter à un serveur Web fonctionnant sous mac OSX 1.6. Je suis capable de me connecter localement en utilisant http://127.0.0.1:8888/myapp mais quand j'essaye de me connecter en utilisant l'adresse IP locale de ma machine (http://192.168.1.15:8888/myapp IP montrée ci-dessous) de la même machine (ou autre sur le réseau) je ne peux pas me connecter. Je peux cingler l'adresse IP de LAN.Impossible de se connecter à l'adresse IP locale sous OSX

J'ai essayé d'ajouter le transfert IP à mon routeur pour le port 8888 mais cela n'a pas aidé. J'ai vérifié et le pare-feu OSX est désactivé

Quelqu'un peut-il suggérer quoi d'autre bloque la connexion?

Voici ce que je reçois quand je lance ifconfig:

~ :ifconfig 
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 
    inet6 ::1 prefixlen 128 
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 
stf0: flags=0<> mtu 1280 
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    ether 00:1f:5b:e8:16:4d 
    media: autoselect status: inactive 
    supported media: autoselect 10baseT/UTP <half-duplex> 10baseT/UTP <full-duplex> 10baseT/UTP <full-duplex,hw-loopback> 10baseT/UTP <full-duplex,flow-control> 100baseTX <half-duplex> 100baseTX <full-duplex> 100baseTX <full-duplex,hw-loopback> 100baseTX <full-duplex,flow-control> 1000baseT <full-duplex> 1000baseT <full-duplex,hw-loopback> 1000baseT <full-duplex,flow-control> none 
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
    inet6 fe80::21e:c2ff:febf:4809%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.15 netmask 0xffffff00 broadcast 192.168.1.255 
    ether 00:1e:c2:bf:48:09 
    media: autoselect status: active 
    supported media: autoselect 
fw0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 4078 
    lladdr 00:1f:5b:ff:fe:2b:b3:3c 
    media: autoselect <full-duplex> status: inactive 
    supported media: autoselect <full-duplex> 
en5: flags=8822<BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500 
    ether 00:1e:c2:8e:0f:45 
    media: autoselect status: inactive 
    supported media: none autoselect 10baseT/UTP <half-duplex> 
en2: flags=8922<BROADCAST,SMART,PROMISC,SIMPLEX,MULTICAST> mtu 1500 
    ether 00:1c:42:00:00:00 
    media: autoselect status: inactive 
    supported media: autoselect 
en3: flags=8922<BROADCAST,SMART,PROMISC,SIMPLEX,MULTICAST> mtu 1500 
    ether 00:1c:42:00:00:01 
    media: autoselect status: inactive 
    supported media: autoselect 
+0

Essayez de désactiver le pare-feu OS X. –

Répondre

2

Votre serveur web est obligatoire probablement à l'interface de réalimentation par défaut. Les applications peuvent "lier" à des interfaces spécifiques - si elles ne sont écoutées que sur l'interface de bouclage, vous pourrez vous connecter via une ip 127.x.x.x mais pas une ip externe. Vous pouvez regarder l'état "Network Utility" -> Netstat -> de toutes les connexions socket, ce qui affichera toutes les sockets ouvertes. Un débogage supplémentaire nécessitera les lignes correspondantes (probablement celle du port 8888) et potentiellement quel serveur web vous utilisez ...

+0

Merci Steven, J'ai couru netstat mais je ne vois aucune mention du port 8888. Exécuter "netstat -a | grep 8888" ne retourne rien. Mon serveur (jetée) est toujours en cours d'exécution et répond localement. –

+0

Il apparaît probablement comme http-alt ou quelque chose comme ça? –

0

À moins que cette programmation ne soit liée, cette question pourrait appartenir à ServerFault ou SuperUser.

Dans tous les cas, si vous écrivez une application sur Mac OS, vous devrez peut-être spécifier l'interface exacte sur laquelle votre application écoute.

+0

Salut - Je n'essaie pas vraiment de configurer un serveur - je développe en local et essaie de me connecter à un serveur d'applications Jetty qui héberge mon application GWT. Je ne suis pas sûr de ce que vous entendez par "spécifier l'interface exacte".Voulez-vous dire protocole? –

+0

Salut, Non, il est très probable que vous ayez plusieurs interfaces, telles que l'interface ethernet, l'interface wlan et bien sûr l'interface de bouclage. (fw0, en0, en1, lo0) Vous devrez peut-être être très précis sur les interfaces sur lesquelles votre application doit écouter les demandes entrantes. – TimothyP

0

BTW - Je pense que c'était une erreur de l'utilisateur. Je pense que je courais probablement GWT en mode hébergé avec un plugin Firefox. Il n'y avait pas de serveur web fonctionnant ou écoutant le port 8888, c'est pourquoi il n'apparaissait pas!

1

Cela fonctionnait bien pour moi et ensuite il a juste cessé de fonctionner tout à coup. Je ne crois pas que j'ai changé quelque chose dans mes configurations Run/Debug, mais peut-être que je l'ai fait. Quoiqu'il en soit, la réponse est d'ajouter le paramètre --address = 0.0.0.0 à la configuration Run/Debug. Pour ce faire:

  1. Cliquez avec le bouton droit sur votre projet.
  2. Sélectionnez Exécuter en tant que ... -> Configurations d'exécution
  3. Assurez-vous que votre projet est sélectionné dans la boîte de dialogue Exécuter les configurations et choisissez l'onglet Arguments.
  4. Insérez l'argument: --address = 0.0.0.0

Comme je l'ai dit, cela travaillait pour moi à droite le long et j'avais pas encore défini ce paramètre avant que je me souviens. Quoi qu'il en soit, je l'ai ajouté et maintenant les choses fonctionnent bien.

TR

Questions connexes