Тестирование сети в 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 как источник обязательна.