33

Есть ли простой способ, предпочтительно с помощью терминала Linux, проверить, работает ли прокси-сервер Socks5?

4 ответа4

35

Если вы создали прокси-сервер самостоятельно, вы должны прежде всего проверить, существует ли открытый порт (аргумент p работает только в том случае, если соответствующий процесс принадлежит вам или вы являетесь пользователем root):

netstat -tlnp

Это должно дать вам строку вроде: (У меня есть прокси на localhost:8888)

tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN

Если вы нашли такую линию или прокси не ваш, попробуйте отправить через нее пакеты. Например, запрос веб-страницы с curl:

curl --socks5 localhost:8888 binfalse.de

Должен выводить некоторые вещи HTML. Надеюсь, что это помогает искать ошибки ;-)


Aux: Для моего примера я создал прокси через:

ssh -o ServerAliveInterval=60 -D8888 someone@somewhere

Замените someone своим именем пользователя, а somewhere вашим конечным сервером. Конечно, использование OpenSSH - это всего лишь один из множества возможных прокси-серверов socks5.

6

Чтобы получить curl для разрешения DNS с другой стороны, измените --socks5 на --socks5-hostname .

Смотрите man-страницу для получения дополнительной информации.

0

Следующая команда проверит, работает ли прокси Socks 5 на localhost:8080:

timeout 5 curl -x socks5://localhost:8080 http://example.com/

В противном случае время ожидания истечет через 5 секунд.

0

Вы можете подключиться к netcat и следовать правилам RFC 1928, чтобы общаться с сервером. Вы должны были бы иметь возможность печатать и читать непечатаемые символы или записывать их в файл для дальнейшего изучения.

Например, чтобы проверить, является ли он сервером SOCKS5, и выяснить, какой из методов аутентификации no-auth, gssapi или usr+pwd он будет поддерживать, отправьте 0x05 0x03 0x00 0x01 0x02. Сервер SOCKS5, подготовленный для использования аутентификации usr+pwd, ответит 0x05 0x02.

Или вот как проверить, работает ли сервер SOCKS5 и работает ли no-auth (метод 0):

echo 050100 | xxd -p -r | netcat -o out.txt {server} {port}

После того, как вы прервете это, к концу out.txt он должен был выдать 0x05 0x00, если сервер поддерживает этот метод (0), или 0x05 0xFF, если это не так.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .