Я хотел бы создать TCP-прокси, поддерживающий несколько хостов. В примере, который я видел, был использован DNS-сервер для указания конкретного хоста на TCP-прокси, в котором хост был жестко запрограммирован. Прокси-сервер TCP не может обрабатывать несколько хостов, потому что, если бы все хосты были направлены на прокси-сервер TCP, прокси-сервер не знал бы, куда отправлять данные. Есть ли какие-либо способы обойти эту проблему?
TCP работает через IP, и IP не имеет понятия об узле (именах), а только об IP-адресах.
Таким образом, TCP также знает только об IP-адресах, но не об именах хостов.
Если вы хотите иметь что-то, обрабатывающее имена хостов, вам понадобится протокол поверх TCP (например, HTTP, SSH и т. Д.) Или преобразовать имена в IP-адреса перед использованием TCP, как обычно предоставляет DNS.
Или вам нужно, чтобы ваш TCP-прокси слушал отдельные порты и прокси, в зависимости от того, к какому порту осуществляется доступ. Однако у вас все еще есть проблема сопоставления имен не только с IP-адресом (прокси), но и с его портом, что возможно, но более сложно с DNS (если вы управляете клиентом, вы можете сделать это с помощью SRV
записей или в будущем SVCB
).