Мне нужно проверить, принимает ли сервер входящий трафик с указанного IP. Недостаточно проверить только, прослушивает ли порт, потому что, например, даже если у меня открыт порт 22, я не знаю, принимает ли он трафик с другого сервера. Я видел nmap и netstat, но кажется, что они не могут мне помочь. Вы знаете команду, чтобы сделать это?
2 ответа
Я использую netstat для ответа на подобные вопросы. Я не уверен, почему вы говорите, что netstat не может вам помочь, потому что, безусловно, можно определить, получает ли ваш ПК трафик с определенного IP или нет, используя netstat.
Предполагая, что вы используете текущую версию Windows: перейдите в командную строку и введите netstat -n, чтобы увидеть все соединения с вашим ПК. Оставьте -n, чтобы увидеть имя хоста (где ваш компьютер может определить его) вместо IP-адреса.
Если проблема с использованием netstat для получения того, что вам нужно, заключается в том, что проблема заключается в количестве выходных данных (слишком много строк), тогда попробуйте скопировать / вставить вывод в хороший текстовый редактор или использовать netstat в Windows PowerShell (нажмите клавишу Windows и введите «PowerShell», затем выберите «Windows PowerShell») в сочетании с Select-String для фильтрации только по интересующему вас IP-адресу.
PS C:\> netstat -n | Select-String 10.11.15.41
TCP 192.168.1.1:22 10.11.15.41:62352 ESTABLISHED
TCP 192.168.1.1:22 10.11.15.41:63782 ESTABLISHED
TCP 192.168.1.1:22 10.11.15.41:60185 ESTABLISHED
Если по-прежнему отображается слишком много информации, вы можете использовать вторую строку выбора для фильтрации только по строкам, включающим строку «:22»:
netstat -n | Select-String 10.11.15.41 | Select-String :22
Аналогичные результаты могут быть достигнуты в других операционных системах (например, Linux, OSX) с использованием netstat и grep.
Если вам нужно настроить мониторинг, то это, вероятно, не будет соответствовать вашим потребностям, но для быстрого ответа на вопрос «X подключается ко мне?"netstat практичен и полезен. Я использую варианты этого каждый день.
С другой стороны, если вы спрашиваете: « Как я могу определить, способен ли конкретный хост B установить соединение с моим хостом A через порт 22?«- определение того, что маршрутизация осуществляется от B к A, и никакой брандмауэр не будет блокировать попытку подключения, - тогда я не думаю, что есть какой-либо способ узнать наверняка от A. Вам нужно будет получить доступ к B и провести тест от B до A.
Netstat действительно должен работать для того, что вы просили, используя методы, предложенные FosseWay, но одно ограничение заключается в том, что он будет показывать только точку во времени. Альтернативой, если вы хотите проверять трафик в течение определенного периода времени, будет использование WireShark. Это может быть излишним в некоторых отношениях, так как он имеет возможность перехватывать пакеты и даже воспроизводить их, но его легко использовать и он способен фильтровать трафик и записывать его, скажем, с определенного IP-адреса. Таким образом, вы можете видеть не только трафик с IP, но и каков был трафик.
Хороший учебник по установке и использованию WireShark можно найти здесь. Не стесняйтесь писать обратно, если у вас есть какие-либо вопросы о его функции https://www.howtogeek.com/104278/how-to-use-wireshark-to-capture-filter-and-inspect-packets/