Тестирование сети в Linux

Некоторые хирости по отладке Http приложений в Linux

Установка Wireshark

Wireshark можно установить через стандарные установшики дистрибутивов, но часто после такой установки Wireshark не видит интерфейсы. Текущему пользователю просто нехватает прав. Нужно создать группу wireshark и добавить в неё текущего пользователя. Для Ubuntu

$ sudo apt-get install wireshark
$ sudo dpkg-reconfigure wireshark-common
$ sudo usermod -a -G wireshark $USER

Чтение запись в TCP порт средствами Shell script

Доступ к портам на локальной машине возможен через узел /dev/tcp/localhost/port_num. К сожалению список слушаемых портов нельзя получить через ls /dev/tcp/localhost/, нужно использовать netstat -anp --tcp. Пример ниже тестирует локальный прокси:

echo "GET http://www.example.com/ HTTP 1.1\r\n\r\n" > /dev/tcp/localhost/3128

Простейший HTTP сервер

Для тестирования различных http клиентов нет необходимости поднимать apache. Можно воспользоваться простейшей утилитой netcat. Примитивный http сервер получаем командой:

while true; do sudo nc -l 80 < http_simple_response.txt; done

Где http_simple_response.txt файл с http ответом например:

HTTP/1.1 200 OK
Content-Type: text/xml;charset=utf-8

6
string
0

Важно! пустые строки необходимы

Тестирование производительности http серверов и прокси

Утилита ApacheBench первоночально разрабатывалась для тестирования HTTP-сервера Apache. Сейчас ее можно скачать как отдельное приложение. Выполнить 100 запросов до 10 одновременно выглядит:

ab -n 100 -c 10 http://www.example.com/

В случае прокси его необходимо указать дополнительным параметром -X. Если прокси пребует авторизации то она задается параметром -P.

ab -X localhost:3128 -P login:password -n 100 -c 10 http://www.example.com/

Правда выяснилось, что HTTPS в отличии от HTTP через непрозрачный прокси не работает. CONNECT там не предусмотрен.

При копировании или цитировании гиперссылка на http://perviysait.narod.ru/xubuntu_http_test.htm как источник обязательна.