Почему я могу подключиться к http://127.0.0.1:8000/ но не http://192.168.1.6/
Я запускаю OS X Mountain Lion на машине с локальным IP-адресом 192.168.1.6 (как сообщается как сетевой утилитой, так и ifconfig) и запускаю локальный (Django) веб-сервер разработки на порту 8000, к которому я хотел бы подключиться с виртуальной машины под управлением гостевой ОС на той же машине.
на хост-ОС (т. е. OS X работает на металле машины с адресом 192.168.1.6) я могу подключиться к моему тестовому веб-серверу через браузер, перейдя к 127.0.0.1:8000; или localhost: 8000; но не при использовании локального IP-адреса машины. Вот что делает это дополнительным запутанным:
- маршрутизатор не фильтрует порты; и, чтобы быть уверенным, я установил его для явной переадресации портов 8000 и 22 на 192.168.1.6; и говоря о порту 22,
- когда я запускаю службу SSH, я могу подключиться (из командной строки) через ssh 192.168.1.6
- это не проблема браузера, потому что я также не могу telnet для 192.168.1.6 порт 8000 (соединение отказано), пока я can telnet к порту 127.0.0.1 8000, и я также могу telnet к порту 192.168.1.6 22
- брандмауэр отключен (как сообщается в Системных настройках), но для дополнительной безопасности я также установил правило ipfw, чтобы разрешить все через
вот правила ipfw:
00100 allow tcp from any to any dst-port 8000
65535 allow ip from any to any
вот дополнительное подтверждение того, что порт действительно прослушивается моим тестовым сервером:
netstat -an | grep 8000
tcp4 0 0 127.0.0.1.8000 *.* LISTEN
так что здесь происходит? Каким-то образом порт 22 обрабатывается иначе, чем порт 8000, но в каждом месте, где я могу думать, чтобы искать эти различия, я не могу их найти. Почему я не могу войти в порт 8000 этой машины, используя ее локальный ip-адрес?
3 ответов
когда вы запускаете сервер разработки Django, вам нужно явно указать адрес:
python manage.py runserver 192.168.1.6:8000
или если вы хотите, чтобы сервер работал на всех интерфейсах, вы можете использовать:
python manage.py runserver 0.0.0.0:8000
в другом случае сервер разработки Django по умолчанию работает только на локальном интерфейсе.
Я решил эту проблему.Есть несколько вещей, которые вы могли бы упустить.Перечисляя их ниже -
1.После запуска сервера не нажимайте Ctrl+C в любом случае .u может нажимать его для копирования на url-адрес, и это случайно закрывает сервер, из-за которого это может произойти.
2.вместо http://127.0.0.1:8000/ ...измените номер порта на http://127.0.0.1:8080/ ...Это сработает.
3.Попробуйте изменить настройки брандмауэра и разрешить приложение.
4.Попробуйте открыть его с помощью разных браузеров и инкогнито тоже.
вышеуказанные шаги помогли решить мою проблему.Надеюсь, они тоже помогут вам...:)
Я столкнулся с этой проблемой удаленного входа в мой джейлбрейк iPhone. Я установил OpenSSH в Cydia, чтобы решить проблему. Можешь попробовать.