Сеть: устранение неполадок | Использование netcat
Содержание:
1. Введение;
2. Использование netcat (Вы читаете данный раздел);
3. Использование lsof;
4. Использование netstat;
5. Продвинутые техники;
6. Обработка вывода.
Общая форма команды netcat — $ netcat [options] host port generic. Эта команда чаще всего применяется для устранения неполадок, связанных с удаленными сервисами. Важнейший параметр команды — -u, при указании которого netcat работает в режиме UDP как сервер или клиент. Это означает, что с помощью netcat можно проверять UDP-подключения, и это очень важно, так как telnet умеет работать только с подключениями TCP. Если параметр -u не указан, netcat будет использовать TCP. Команда $ netcat -vv -u 8.8.8.8 53 проверяет функциональность сервера DNS с использованием UDP. Также, если указать параметры -I и -u, можно запустить сервер UDP.
Второй важнейший параметр — -v, он делает вывод netcat более подробным. Если нужен еще более подробный вывод, укажите -vv вместо -v. Команда $ nc aWebServer 80 заставит netcat подключиться к web-серверу. Чтобы симулировать остальную клиентскую часть подключения, нужно набрать $ GET / HTTP/1.1 и нажать Enter два или три раза. А вот версия команды, которая делает все это сразу, не требуя никакого дополнительного ввода:
$ echo -en “GET/ HTTP/1.0nnn” | netcat www.linuxformat.com 80
Следующий метод нужно использовать с большой осторожностью, потому что при не правильном применении он может поставить под угрозу безопасность системы Linux. Netcat позволяет превратить любой процесс Linux в сервер с помощью параметра -e. Очень хороший кандидат для серверного процесса—исполняемый файл /bin/bash. Серверная часть должна начинаться с $ nc -vv -l -p 5432 -e /bin/bash. Теперь удаленный клиент сможет подключиться к предыдущему компьютеру с помощью команды $ nc -vv remoteHost 5432. После выполнения предыдущей команды можно начинать запускать команды так, как если бы вы работали на удаленном компьютере. Но у такого подключения есть и недостаток — оно не поддерживает никакого шифрования.

На скриншоте показано, как с помощью netcat быстро вычислить скорость соединения между двумя компьютерами
С помощью netcat можно проверить скорость подключения между двумя компьютерами Linux (скриншот выше) — еще одно умное применение этой утилиты! С помощью утилиты bc также можно определить, что скорость подключения была около 2515579 байт в секунду; для Wi-Fi это очень хорошо.
Как вы сейчас понимаете, netcat больше подходит для проверки работы сети и сервисов, запущенных на различных серверах. Следующая утилита, lsof, больше подходит для проверки работы сети на локальном компьютере.
Ответить на вопрос, какой утилитой воспользоваться, довольно трудно. Лучше всего пользоваться той, которую вы лучше всего знаете, если она способна решить вашу проблему.
Основное преимущество netstat — в том, что для большинства ее параметров не нужны привилегии root. Сейчас должно быть ясно, что netcat делает работу, совершенно отличную от двух других утилит. Эта утилита поможет проверить соединение между двумя компьютерами, а также качество соединения. С другой стороны, и lsof, и netstat отображают информацию об открытых портах, установленных соединениях и т.д. только для локального компьютера.
У каждой утилиты есть свои преимущества и недостатки, и ваша задача как администратора Linux или сетевого администратора — найти самый простой и быстрый способ решить проблему с помощью любых утилит, которыми вы хотите воспользоваться!
Опробовав все возможные варианты, используйте такую утилиту, которая лучше всего подходит для решения задачи. Но помните, что невозможность решить проблему с помощью известных утилит — верный признак того, что надо снова залезть в сундучок с инструментами и поискать что-нибудь новенькое!
1. Введение;
2.
3. Использование lsof;
4. Использование netstat;
5. Продвинутые техники;
6. Обработка вывода.
Общая форма команды netcat — $ netcat [options] host port generic. Эта команда чаще всего применяется для устранения неполадок, связанных с удаленными сервисами. Важнейший параметр команды — -u, при указании которого netcat работает в режиме UDP как сервер или клиент. Это означает, что с помощью netcat можно проверять UDP-подключения, и это очень важно, так как telnet умеет работать только с подключениями TCP. Если параметр -u не указан, netcat будет использовать TCP. Команда $ netcat -vv -u 8.8.8.8 53 проверяет функциональность сервера DNS с использованием UDP. Также, если указать параметры -I и -u, можно запустить сервер UDP.
Второй важнейший параметр — -v, он делает вывод netcat более подробным. Если нужен еще более подробный вывод, укажите -vv вместо -v. Команда $ nc aWebServer 80 заставит netcat подключиться к web-серверу. Чтобы симулировать остальную клиентскую часть подключения, нужно набрать $ GET / HTTP/1.1 и нажать Enter два или три раза. А вот версия команды, которая делает все это сразу, не требуя никакого дополнительного ввода:
$ echo -en “GET/ HTTP/1.0nnn” | netcat www.linuxformat.com 80
Следующий метод нужно использовать с большой осторожностью, потому что при не правильном применении он может поставить под угрозу безопасность системы Linux. Netcat позволяет превратить любой процесс Linux в сервер с помощью параметра -e. Очень хороший кандидат для серверного процесса—исполняемый файл /bin/bash. Серверная часть должна начинаться с $ nc -vv -l -p 5432 -e /bin/bash. Теперь удаленный клиент сможет подключиться к предыдущему компьютеру с помощью команды $ nc -vv remoteHost 5432. После выполнения предыдущей команды можно начинать запускать команды так, как если бы вы работали на удаленном компьютере. Но у такого подключения есть и недостаток — оно не поддерживает никакого шифрования.
На скриншоте показано, как с помощью netcat быстро вычислить скорость соединения между двумя компьютерами
С помощью netcat можно проверить скорость подключения между двумя компьютерами Linux (скриншот выше) — еще одно умное применение этой утилиты! С помощью утилиты bc также можно определить, что скорость подключения была около 2515579 байт в секунду; для Wi-Fi это очень хорошо.
Как вы сейчас понимаете, netcat больше подходит для проверки работы сети и сервисов, запущенных на различных серверах. Следующая утилита, lsof, больше подходит для проверки работы сети на локальном компьютере.
Какой утилитой воспользоваться?
Ответить на вопрос, какой утилитой воспользоваться, довольно трудно. Лучше всего пользоваться той, которую вы лучше всего знаете, если она способна решить вашу проблему.
Основное преимущество netstat — в том, что для большинства ее параметров не нужны привилегии root. Сейчас должно быть ясно, что netcat делает работу, совершенно отличную от двух других утилит. Эта утилита поможет проверить соединение между двумя компьютерами, а также качество соединения. С другой стороны, и lsof, и netstat отображают информацию об открытых портах, установленных соединениях и т.д. только для локального компьютера.
У каждой утилиты есть свои преимущества и недостатки, и ваша задача как администратора Linux или сетевого администратора — найти самый простой и быстрый способ решить проблему с помощью любых утилит, которыми вы хотите воспользоваться!
Опробовав все возможные варианты, используйте такую утилиту, которая лучше всего подходит для решения задачи. Но помните, что невозможность решить проблему с помощью известных утилит — верный признак того, что надо снова залезть в сундучок с инструментами и поискать что-нибудь новенькое!