UDP-ассоциации SOCKS5 с пакетом socks для Node
Используйте ассоциацию SOCKS5 и обрамление датаграмм, когда приложению Node нужен UDP через прокси.
Пакет socks для Node использует для UDP экземпляр SocksClient с command: 'associate'. Его удобная фабрика SocksClient.createConnection() вместо этого обрабатывает TCP CONNECT.
Пример ассоциации в проекте объединяет клиент SOCKS с отдельным локальным UDP-сокетом:
- Установите UDP ASSOCIATE и сохраните его управляющее TCP-соединение.
- Прочитайте хост и порт ретранслятора, которые возвращает сервер.
- Используйте
createUDPFrame(), чтобы обрамлять исходящие данные адресом назначения. - Отправьте датаграммы ретранслятору, затем применяйте
parseUDPFrame()к входящим кадрам ретранслятора, прежде чем передавать данные приложению.
Сокет dgram в Node обеспечивает транспорт UDP; он не интерпретирует адрес SOCKS. Ассоциация и обрамление обеспечивают протокол прокси вокруг этих датаграмм.
Сервер должен поддерживать UDP, а конечная точка ретранслятора должна быть доступна. Успешное TCP-соединение с начальным портом прокси не проверяет этот путь. Закрывайте управляющие ресурсы и ресурсы UDP, когда ассоциация больше не нужна.