2015-12-07 4 views
3

Локальный сервер выполняется с помощью модуляSimpleHTTPServer из Python 2.7`netstat` не показывает сокеты, привязанные к python SimpleHTTPServer?

$ python -m SimpleHTTPServer 
Serving HTTP on 0.0.0.0 port 8000 ... 

Затем я использую NetStat искать сокет с использованием 8000 в качестве фильтра для номер порта, однако, я не могу найти какой-либо сокет с фильтром (даже когда я открываю окно браузера и получаю доступ к 127.0.0.1:8000).

$ netstat | grep 8000 
// "return Nothing" 

Кто-нибудь есть идеи о том, почему я не могу видеть гнездо переплетены с помощью Python SimpleHTTPServer в netstat?

ответ

2

Имейте в виду, что 0.0.0.0 означает, что сервер будет список всех IP-адресов вашего компьютера, поэтому изменить IP-адрес на вашем коде питона от 0.0.0.0 к 127.0.0.1 или localhost, если вы хотите, чтобы запустить его локально.

И лучше бежать: netstat -an|grep 8000

+0

Если я использую '127.0.0.1', кажется, сервер может быть доступен только локальному компьютеру. Мне просто интересно, почему использование '0.0.0.0: 8000' не может контролироваться' netstat'. –

+0

вместо этого запускать 'netstat -an | grep 8000'? –

+0

Он работает! Благодаря! –

1

При запуске NetStat б/н -n аргумента он будет отображать адреса в качестве имен, в том числе протоколов. Поэтому, если вы слушаете порт 80, он появится, скажем, localhost:http, и ваш grep для 8000 не найдет его. В вашем случае это порт 8000 и в соответствии с

grep 8000 /etc/services 

это, вероятно, показывает, как локальный хост: irdmi

Бега

netstat -na 

получат вокруг этого и сообщить более полезный: 8000. Забавно, как режим netstat по умолчанию более «дружелюбный» и почти всегда менее полезен, чем -n.

+0

imo, это должно быть «принятым» ответом. Кстати, кто задается вопросом: '-n' означает' --numeric: не разрешать имена' и '-a' для' -all: отображать все сокеты (по умолчанию: подключено) ' – kmonsoor

2

Продление ответа на @MK.


По умолчанию netstat показывает только подключенные порты, но НЕ те, которые просто слушать лениво. Следовательно, путаница.
Автор netstat сделал звонок либо для простоты, либо для эстетики.

Если вы подключились к этому порту :8000, он появится только в netstat.

Else, вы должны указать, что хотите это ВСЕ.

netstat -a | grep 8000 
+0

hah, good point.Я даже не понимал, что это значит, - так привыкли печатать его ... –

Смежные вопросы