Не удается подключиться к локальному IP-адресу в OSX - PullRequest
3 голосов
/ 09 марта 2010

Я пытаюсь подключиться к веб-серверу, работающему на моем Mac OSX 1.6.Я могу подключиться к нему локально, используя http://127.0.0.1:8888/myapp, но когда я пытаюсь подключиться к нему, используя локальный IP-адрес моей машины (http://192.168.1.15:8888/myapp IP, показанный ниже) с той же машины (или другой насеть) Я не могу подключиться.Я могу пропинговать IP-адрес локальной сети.

Я попытался добавить переадресацию IP на мой маршрутизатор для порта 8888, но это не помогло.Я проверил, и брандмауэр OSX отключен

Кто-нибудь может подсказать, что еще блокирует соединение?

Вот что я получаю при запуске 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

Ответы [ 4 ]

2 голосов
/ 09 марта 2010

Ваш веб-сервер, вероятно, привязан к интерфейсу обратной связи по умолчанию. Приложения могут «привязываться» к определенным интерфейсам - если они будут прослушивать только петлевой интерфейс, вы сможете подключиться через ip 127.x.x.x, но не через внешний ip. Вы можете посмотреть в «Network Utility» -> Netstat -> состояние отображения всех соединений сокетов, которые будут отображать все открытые сокеты. Для дальнейшей отладки потребуются соответствующие строки из этого (вероятно, порта 8888) и, возможно, какой веб-сервер вы используете ...

1 голос
/ 22 сентября 2011

Это работало нормально для меня, а потом вдруг перестало работать. Я не верю, что я что-то изменил в своих конфигурациях Run / Debug, но, возможно, я это сделал.

Независимо от этого, ответ заключается в добавлении параметра --address = 0.0.0.0 в конфигурацию Run / Debug. Для этого:

  1. Щелкните правой кнопкой мыши свой проект.
  2. Выберите Run As ... -> Run Configurations
  3. Убедитесь, что ваш проект выбран в диалоговом окне «Выполнить конфигурации», и выберите вкладку «Аргументы».
  4. Вставьте аргумент: --address = 0.0.0.0

Как я уже сказал, это работало на меня сразу, и я до этого не запомнил этот параметр. Во всяком случае, я добавил его, и теперь все работает нормально.

TR

0 голосов
/ 07 апреля 2010

Кстати - я думаю, что это ошибка пользователя. Я думаю, что я, вероятно, запускал GWT в режиме хостинга с плагином Firefox. Не было ни одного веб-сервера, работающего или слушающего порт 8888, поэтому он не появился!

0 голосов
/ 09 марта 2010

Если это не связано с программированием, этот вопрос может относиться к ServerFault или SuperUser.

В любом случае, если вы пишете приложение в Mac OS, возможно, вам нужно указать точный интерфейс, который слушает ваше приложение.

...