
Я запускаю сервис, которому требуется более 65535 портов, и использую AWS VPS
Я подумал, что если я прикреплю больше статических IP-адресов к этому VPS, получит ли каждый из этих IP-адресов 65535 портов при подключении к основному серверу или они все будут просто псевдонимами друг для друга?
решение1
TCP-кортежи идентифицируются по IP-адресу назначения и портуиисходный IP-адрес и порт.
Так что в теории 2001:db8:2943:a::1
и 2001:db8:2943:a::2
можеткаждыйподключиться к 2001:db8:2943:b::3
одному порту назначения 443
, 64K раз. В действительности доступно меньше эфемерных портов, и для выполнения 64K подключений чего-либо нетривиального требуется большой и хорошо настроенный хост.
Допустим, был добавлен еще один IP-адрес сервера 2001:db8:2943:b::4
.Каждыйисходный IP может подключатьсядругой64 тыс. раз на этот другой IP-адрес назначения, все на порт назначения 443
.
Очень маловероятно, что вы исчерпаете порты на практике. У вас может быть миллион различных исходных IP-адресов, и ограничение в 64К не применяется.
Возможно, балансировщик нагрузки с одним IP, делающий 64K подключений к одному IP и порту. Это уже довольно много, но при необходимости вы можете добавить еще один IP к бэкэнд-хосту и использовать его.
Или 64K независимых экземпляров вещи, каждый из которых прослушивает уникальный порт назначения. Это огромное количество процессов для запуска. Можно запустить меньше портов прослушивания и перенести сложность на уровень приложений. Например, виртуальный хостинг на основе имени HTTP.