Как создать TCP-прокси, поддерживающий несколько хостов?

Как создать TCP-прокси, поддерживающий несколько хостов?

Я хотел бы создать TCP-прокси, который поддерживает несколько хостов. Пример, который я видел, был, когда DNS-сервер использовался для указания определенного хоста на TCP-прокси, в котором хост был жестко закодирован. TCP-прокси не может обрабатывать несколько хостов, потому что если бы все хосты были направлены на TCP-прокси, прокси не знал бы, куда отправлять данные. Есть ли способы обойти эту проблему?

решение1

TCP работает поверх IP, а IP не имеет понятия хоста (имен), а только IP-адреса.

Таким образом, TCP знает только IP-адреса, но не имена хостов.

Если вы хотите, чтобы что-то обрабатывало имена хостов, вам нужен протокол поверх TCP (например, HTTP, SSH и т. д.) или нужно преобразовывать имена в IP-адреса перед использованием TCP, как это обычно делает DNS.

Или вам нужно, чтобы ваш "TCP" прокси слушал отдельные порты и проксировал вещи в зависимости от того, к какому порту осуществляется доступ. Однако у вас все еще есть проблема сопоставления имен не только с IP-адресом (прокси), но и с его портом, что возможно, но сложнее с DNS (если вы контролируете клиента, вы можете сделать это с помощью SRVзаписей или в будущем SVCB).

Связанный контент