Тествайте HTTP прокси с curl
Използвайте ограничен във времето curl тест, за да проверите връзката с проксито, HTTPS тунела, статуса на отговора и правилата за заобикаляне, без да променяте глобалното прокси на устройството.
Заменете 127.0.0.1:8080 с крайна точка от услугата си или от списъка с HTTP проксита и изпълнете това към безвредна HTTPS цел:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Адресът за обратна връзка означава слушаща крайна точка на собствения ви компютър. Командата я избира изрично, изчиства списъка за заобикаляне на curl за това извикване и допуска пет секунди за установяване на връзката и петнадесет секунди общо. Тя не променя прокси настройките на браузъра и системата.
Използвайте действителния изпълним файл на curl, ако обвивката задава curl като псевдоним на друга програма; curl --version показва използваната компилация. Ако самата слушаща крайна точка изисква TLS, използвайте схемата на URL на проксито, посочена в документацията ѝ.
Прочетете четири резултата, а не само един знак за успех
- Свързване с избраното прокси: адресът и портът са достъпни.
- CONNECT е приет: проксито е отворило тунел към HTTPS целта.
- Сертификатът на целта е проверен: TLS е завършил с очакваните проверки за доверие.
- Получен е отговор от целта: проверете статуса и съдържанието за резултата, от който приложението ви се нуждае.
Работещ тунел може да бъде последван от 403 или 429 от целта. curl може също да приключи успешно след HTTP отговор за грешка, затова записвайте както статуса на отговора, така и резултата за грешка на curl. Само TCP връзка или успешен CONNECT не са достатъчни.
Кратък резултат за многократни сравнения
В Unix-подобна обвивка изхвърлете тялото и изведете статуса на тунела, статуса на целта, другата страна на връзката и изминалото време:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/http_connect описва отговора на тунела; http_code описва крайния HTTP отговор. remote_ip е другата страна на връзката на curl, а не независимо измерване на изходния адрес на проксито. На други системи заменете /dev/null или запазете тялото на отговора.
Ако тестът е неуспешен, намерете неуспешната стъпка при установяване на връзката или прехвърлянето и сравнете със същата цел директно, където този маршрут е разрешен:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/--noproxy '*' заобикаля прокситата. Неуспешната проверка на сертификата по двата маршрута насочва към общ проблем с доверието; успешен директен достъп при отхвърлен CONNECT насочва към удостоверяване или политика на проксито. Прегледайте подробния изход, преди да го споделяте, защото може да съдържа идентифицираща информация.
Запазете крайната точка, целта и времевия печат с резултата. Това установява какво е работило за конкретната заявка; бъдещата достъпност, поверителността и производителността под товар изискват отделни доказателства.