То, как проверить, открылось/закрыло порты на моем компьютере?
Я использовал netstat -a
на командной строке.
Можно использовать эту команду:
netstat -tulnp | grep <port no>
, Если это показывает некоторому процессу свой используемый. Его закрытый (не используемый), если нет никакого вывода.
Другая альтернативная командная строка, простая в использовании для обнаружения, какой процесс использует порт:
lsof -n -i4TCP:$PORT | grep LISTEN
я добавил следующую функцию в своем .bash_profile,
function pslisten {
echo `lsof -n -i4TCP:$1 | grep LISTEN`
}
и теперь выполнил "pslisten 5060" для наблюдения, кто захватывает мой порт SIP.
Это - работа с Apple Mac OS X также.
состояние порта "СЛУШАЕТ" обозначенное, что порт открыт?
Да. Это означает, что некоторый сервис слушает тот порт на Вашем компьютере для входящего соединения, т.е. этот порт открыт для установления новых соединений.
Какой-либо порт, которые не показывают в выводе, указал, что это закрывается?
Да. Помните netstat -a
, покажет всем активным ( слушание ) и пассивный ( неслушание ) соединения т.е. порты, которые действуют как оба сервера (некоторые сервисы слушают эти порты для соединений от различной машины/процесса), и установленный (соединения устанавливаются на этих портах независимо от факта, host/a сервис может быть сервером или клиентом)
, порты All TCP и UDP принадлежат категории, названной сокетами и существует многое из тех. Для просмотра информации о сокете, можно проверить man ss
.
Или это могло бы помочь при помощи часов, затем играть вокруг с тем, что Вы хотите видеть.
sudo watch -d -n0 "netstat -atnp | grep ESTA"
sudo watch -d -n0 "netstat -tulnp | grep ESTA"
Попытка это для получения списка открытых портов в том диапазоне.
for p in {1..1023}
do
(echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
done
И эта команда покажет то, что является ею!
cat /etc/services | grep {PORTNumber}
Существует несколько параметров к netstat
это полезно для этого:
-l
или --listening
шоу только сокеты, в настоящее время прислушивающиеся к входящему соединению.-a
или --all
шоу все использующиеся в настоящее время сокеты.-t
или --tcp
показывает сокеты tcp.-u
или --udp
показывает сокеты udp.-n
или --numeric
показывает хосты и порты как числа, вместо того, чтобы решить в DNS и смотреть в/etc/services.Вы используете соединение их для получения то, что Вы хотите. Для знания, какие номера портов используются в настоящее время используйте один из них:
netstat -atn # For tcp
netstat -aun # For udp
netstat -atun # For both
В выводе весь упомянутый порт используется или прислушивающийся к входящему соединению или подключенный к одноранговому узлу **, все другие закрываются. Порты TCP и UDP 16 битов шириной (они идут от 1-65535),
** Они могут также соединять/разъединять от коллеги.
Другая опция является ss. Намного легче использовать....
Ниже команды только произведет список текущих сокетов слушания.
root@server:~# ss -l
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_dgr UNCONN 0 0 * 23353 * 23352
u_dgr UNCONN 0 0 * 568 * 362
u_dgr UNCONN 0 0 * 14836 * 14837
u_dgr UNCONN 0 0 * 20446 * 369
u_dgr UNCONN 0 0 * 22877 * 369
u_dgr UNCONN 0 0 * 504 * 347
u_dgr UNCONN 0 0 * 16298 * 369
u_dgr UNCONN 0 0 * 23343 * 369
u_dgr UNCONN 0 0 * 24125 * 369
u_dgr UNCONN 0 0 * 24617 * 369
u_dgr UNCONN 0 0 * 23352 * 23353
u_dgr UNCONN 0 0 * 23334 * 369
u_dgr UNCONN 0 0 * 17113 * 369
u_dgr UNCONN 0 0 * 16957 * 369
u_dgr UNCONN 0 0 * 14793 * 362
u_dgr UNCONN 0 0 * 23345 * 362
u_dgr UNCONN 0 0 * 24070 * 369
udp UNCONN 0 0 *:sunrpc *:*
udp UNCONN 0 0 *:981 *:*
udp UNCONN 0 0 :::sunrpc :::*
udp UNCONN 0 0 :::981 :::*
tcp LISTEN 0 128 127.0.0.1:85 *:*
tcp LISTEN 0 128 *:ssh *:*
tcp LISTEN 0 128 *:3128 *:*
tcp LISTEN 0 100 127.0.0.1:smtp *:*
tcp LISTEN 0 128 *:8006 *:*
tcp LISTEN 0 128 *:sunrpc *:*
tcp LISTEN 0 128 :::ssh :::*
tcp LISTEN 0 100 ::1:smtp :::*
tcp LISTEN 0 128 :::sunrpc :::*
На самом деле существует лучший способ видеть, какие порты Вы имеете открытый. Проблема с netstat
или lsof
это, они запрашивают сетевой стек и на самом деле не соединяются с машиной, но вместо этого пытающийся видеть то, что работает на системе. Лучший подход должен использовать nmap
как так:
nmap -sT -O localhost
Видеть открытые порты.