Почему nmap, ss (netscan?) и lsof дают разные результаты?

Почему nmap, ss (netscan?) и lsof дают разные результаты?

Я пытаюсь понять, какие порты активно прослушиваются (используются?) на моей машине и не совсем понимаю, что делаю. Три команды, с которыми я экспериментировал, это nmap, ss(? netscan?) и lsof.

netscanсообщает, что только 1 порт активно прослушивается (631):

$ sudo nmap -sT  localhost
Starting Nmap 7.91 ( https://nmap.org ) at 2021-06-02 21:28 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

ss(? netscan?) сообщает, что используются 2 порта (631 и 53):

$ sudo ss -tulwn | grep LISTEN
tcp    LISTEN  0       4096     127.0.0.53%lo:53           0.0.0.0:*            
tcp    LISTEN  0       5            127.0.0.1:631          0.0.0.0:*            
tcp    LISTEN  0       5                [::1]:631             [::]:*       

Наконец, если я проверю отдельные порты с помощью lsof -i:xx, я увижу результаты для 631 и 53, а также для портов 80 и 443:

$ sudo lsof -i:80

COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
firefox 3481 me   74u  IPv4  85172      0t0  TCP Machine:56024->lga25s63-in-f3.1e100.net:http (ESTABLISHED)

$ sudo lsof -i:443
COMMAND    PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
skypeforl 2426 me   27u  IPv4  77133      0t0  TCP Machine:60396->13.83.65.43:https (ESTABLISHED)
skypeforl 2453 me   72u  IPv4  56536      0t0  TCP Machine:58945->40.86.187.166:https (ESTABLISHED)
firefox   3481 me   95u  IPv4  81375      0t0  TCP Machine:53788->104.16.249.249:https (ESTABLISHED)
firefox   3481 me  157u  IPv4  80283      0t0  TCP Machine:49080->lga34s15-in-f5.1e100.net:https (ESTABLISHED)
chrome-gn 3799 me   74u  IPv4  55080      0t0  TCP Machine:42196->server-52-85-61-100.ewr53.r.cloudfront.net:https (CLOSE_WAIT)
chrome-gn 3799 me   95u  IPv4  55072      0t0  TCP Machine:43998->104.16.248.249:https (CLOSE_WAIT)

Я думал, что эти три команды в основном представляют собой разные представления одной и той же информации. Почему некоторые порты раскрываются только некоторыми из этих команд?

решение1

Начнем с разницы между ssи nmap. Для порта 53 причина заключается в разнице между localhostи другими 16 миллионами адресов, зарезервированными для локальной машины. 127.0.0.1не то же самое, что 127.0.0.53. ssсообщает все порты для локальной машины, в то время как nmapограничивает себя адресом 127.0.0.1.

Что касается дополнительных отчетов от lsof, это ищет что-то совсем другое. Ваши ssи nmapкоманды ищут сокеты в LISTENсостоянии, т.е. ждут входящих соединений. Ваш lsofищет все сокеты, в частности, это включает любые установленные соединения и соединения, которые были разорваны. Вы ищете вещи, гдеиликонец использует порт 80 илииликонец использует порт 443.

Итак, суть в том, что эти 3 команды показывают разные вещи, потому что ваше убеждение, что они показывают одну и ту же информацию, неверно. Это сравнение яблока с апельсином и бананом. 3 разные команды показывают разную информацию, потому что они показывают разную информацию.

Связанный контент