После входа на сервер я использовал netstat для проверки портов этого сервера и хотел узнать, какой порт взаимодействует со мной.
Мой IP-адрес — 143.248.143.198, и результаты поиска выглядят следующим образом:
[kwagjj@James5 ~]$ netstat | grep 143.248.143.198
tcp 0 52 James5:smakynet 143.248.143.198:49690 ESTABLISHED
[kwagjj@James5 ~]$ netstat | smakynet
smakynet: Command not found.
[kwagjj@James5 ~]$ netstat | grep smakynet
tcp 0 0 James5:smakynet 143.248.143.199:49573 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.198:49690 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.212:51070 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.210:9693 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.217:azeti ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.216:51892 ESTABLISHED
tcp 0 0 James5:smakynet 143.248.143.210:10599 ESTABLISHED
Я попытался проверить, ведет ли James5:smakynet к какому-то другому порту, но, похоже, моя сторона порта взаимодействует только с «James5:smakynet».
Кто-нибудь знает, что это за 'smakynet'? Что он делает? Я гуглил, но никакой толковой информации он мне не дал.
решение1
Всякий раз, когда вы не узнаете порт по имени, вы можете grep
для имени в, /etc/services
чтобы увидеть, что имя там определено. В моих системах Linux smakynet - это TCP/UDP 122.
grep smakynet /etc/services
Используйте man netstat
, чтобы узнать, какие переключатели можно использовать для раскрытия дополнительной информации. В этом случае используйте переключатели, которые помогут найти дополнительную информацию об идентификаторах процессов.
netstat -tulpn | grep smakynet
Теперь вы можете увидеть, какой процесс использует порт. Вы получите вывод, как в следующем примере.
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1565/cupsd
Выше cupsd
был открыт с PID 1565; он использует TCP-порт 631.
Это должно помочь определить, какая программа использует порт. Я не знаю, почему smakynet указан в /etc/services
; хотя, рискну предположить, это может быть древний протокол или, возможно, он был зарегистрирован сИАНАи никогда не развивался.
Итак, какая программа, использующая порт smakynet, на какой ОС вы нашли?
решение2
Обычно полезнее запускать netstat
с ключами -n
и -p
, чтобы можно было увидеть в выходных данных, какой процесс прослушивает или использует заданный порт netstat
.
Пример
$ sudo netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1406/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13203/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1628/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1506/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1712/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 13203/nginx
tcp 0 0 0.0.0.0:35171 0.0.0.0:* LISTEN 1424/rpc.statd
tcp 0 0 192.168.1.228:80 209.190.113.82:36019 ESTABLISHED 13307/nginx
tcp 0 0 192.168.1.228:80 192.168.1.1:58845 TIME_WAIT -
tcp 0 0 192.168.1.228:22 192.168.1.7:52418 ESTABLISHED 2382/sshd
tcp 0 0 192.168.1.228:443 209.190.113.82:46600 TIME_WAIT -
tcp 0 0 :::111 :::* LISTEN 1406/rpcbind
tcp 0 0 :::22 :::* LISTEN 1628/sshd
tcp 0 0 ::1:631 :::* LISTEN 1506/cupsd
tcp 0 0 ::1:25 :::* LISTEN 1712/master
tcp 0 0 :::37115 :::* LISTEN 1424/rpc.statd
Здесь мы видим, что порты 80 и 443 используются процессом nginx
на 2 интерфейсах 0.0.0.0
и 192.168.1.228
. Второй IP-адрес связан с портом Ethernet в этой системе, и этот IP-адрес 0.0.0.0
является специальным, что означает, что демон сервера , nginx
будет привязан к любому интерфейсу, присутствующему на устройстве.
Сетевые интерфейсы
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 54:52:00:ff:ff:f1 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.228/24 brd 192.168.1.255 scope global eth0
inet6 fe80::5652:ff:feff:fff1/64 scope link
valid_lft forever preferred_lft forever