Почему SSH-прокси socks5 работает лучше, чем обычный прокси-сервер socks5?

710
VirtualSmile

В прошлом месяце я пытался настроить прокси-туннель для игр и столкнулся с (для меня) очень странной проблемой.

В настоящее время я использую socksifier, чтобы перенаправить / отредактировать команду connect () в игровом сокете для маршрутизации через наши прокси-серверы Socks5, чтобы создать путь с наименьшей задержкой между клиентским> игровым сервером. Однако этот метод приводит к пикам с высокой задержкой, когда несколько игровых пакетов отправляются всем за короткий промежуток времени. К сожалению, игра отправляет / использует TCP, и я решил сделать то же самое с нашим прокси.

Когда мы используем SSH (plink / putty с параметром nodelay принудительно / set) для создания прокси-сервера socks на 127.0.0.1 (используя динамическую переадресацию портов) и используем socksifier для перенаправления трафика на локальный хост, проблема всплеска задержки исчезает, и он работает очень гораздо более плавно Это похоже на проблему узкого места или перегрузки, но не только серверы одинаковы, но и настройки дисциплины перегрузки и очереди (пробовал fq + bbr, noqueue и pfifo). Первоначально я думал, что использование SSH приведет к снижению производительности из-за шифрования.

Кто-нибудь может объяснить эту проблему, с которой я сталкиваюсь? Это сводит меня с ума, и я попробовал все серверные приложения там. Я уже установил TCP_NODELAY (на сокетах) и попытался возиться с TCP_QUICKACK и TCP_LOWLATENCY.

Некоторая дополнительная информация: Мы также попытались использовать ряд платных и бесплатных Proxifiers, таких как Proxifier и ProxyCap. Странно то, что использование Proxifier (и любой другой бесплатной альтернативы) по-прежнему воспроизводит эту проблему, но использование ProxyCap - нет. Я написал ProxyCap по электронной почте, и они ответили, сказав, что они устанавливают TCP_NODELAY на сокеты серверов, к которым вы подключаетесь (и, возможно, на сокете Windows, который я предполагаю) ... но я уже сделал это. Игра основана на Windows, и прокси-серверы размещены на Linux VPS (пробовал каждый "общий / основной" дистрибутив с теми же результатами)

РЕДАКТИРОВАТЬ: я тестировал разные значения SO_SNDBUF и SO_RCVBUF на обоих концах. Общая задержка изменяется с более низкими / более высокими значениями, но острая проблема все еще остается. Также попытался SO_DONTROUTE на стороне клиента, но безуспешно.

EDIT2: похоже, это как-то связано с пакетами, висящими между игровым сокетом и исходящей сетью. Plink + PCap оба используют loopback для создания прокси-сервера, чтобы затем направлять трафик в исходящую сеть, но наш метод этого не делает. Даже если ничего не редактировать в игре (чисто в игре и больше ничего), эта проблема сохраняется. Сужать это вниз !!!

Спасибо всем, и я ценю любые мысли, высказанные, чтобы помочь определить виновника.

2
Может ли быть так, что у нее приоритет отдается провайдеру? davidgo 5 лет назад 1
Я не думаю, что это так .. как это происходит с 7 различными провайдерами VPS. Даже в этом случае, если бы это была проблема расстановки приоритетов, ProxyCap не работал бы лучше / без проблемы с задержкой, так как он все еще маршрутизирует пакеты через прокси socks. VirtualSmile 5 лет назад 0

0 ответов на вопрос