python simpleHTTPServer работает только с локальным компьютером [закрыто]

Я выполнил следующую команду для запуска http-сервера

python -m SimpleHTTPServer

и получил следующее сообщение

Serving HTTP on 0.0.0.0 port 8000 ...

, но я не могу получить к нему доступ на другая машина / мобильный телефон в локальной сети Wi-Fi, я попытался получить к нему доступ с моего локального компьютера и смог получить к нему доступ.

пожалуйста, дайте мне знать, сможет ли кто-нибудь выяснить, в чем проблема. заранее спасибо.

3
задан 7 May 2015 в 10:52

2 ответа

SimpleHTTPServer по умолчанию связывает с IP-адресом 0.0.0.0. Это - специальный адрес, означающий в действительности "любой адрес". Если это должно было связать с, например, localhost или 127.0.0.1, Вы могли только соединиться с ним от локальной машины, потому что 127.0.0.1 принадлежит устройству закольцовывания. Но с 0.0.0.0, сервер, обязательный к lo, eth0 и любые другие сетевые устройства Вы могли бы иметь.

Так, Ваш небольшой сервер должен быть достижимым от других машин в Вашей сети. То, что это не, указывает, что что-то (кроме Вашего небольшого сервера) запрещает его, возможно, брандмауэр. Вы могли проверить состояние порта 8000 с nmap от другой машины (Вы, возможно, должны были бы установить nmap). Скажите, что Ваш небольшой сервер работает на IP 192.168.0.1, другая машина 192.168.2.101. Затем Вы сделали бы от 192.168.2.101

nmap -p 8000 192.168.0.1

Вывод должен быть чем-то как

PORT     STATE SERVICE
8000/tcp open  http-alt

Если состояние "открыто", порт достижим и существует что-то слушающее там, таким образом, Ваш небольшой сервер должен быть достижимым.

Если состояние "закрывается", порт достижим, но нет ничего слушающего там. В этом случае возможно, Ваш сервер завершился, или Вы перепутали IP-адреса или номера портов.

Если состояние "фильтровано", существует некоторый брандмауэр фильтрации IP в действии, который мешает Вам получать доступ к своему небольшому серверу.

4
ответ дан 1 December 2019 в 13:25

После запуска SimpleHTTPServer с: python -m SimpleHTTPServer 8000,

необходимо узнать IP-адрес сервера, в локальной сети, на терминальном использовании:
linux/mac: ifconfig
окна: ipconfig

затем на Вашем мобильном устройстве пытаются достигнуть ip_address:PORT,
, например: 192:168.1.5:8000

3
ответ дан 1 December 2019 в 13:25

Другие вопросы по тегам:

Похожие вопросы: