Відповіді:
(2 ^ 16) -1, або 0-65,535 (-1 тому, що порт 0 зарезервований і недоступний). (відредаговано тому, що o_O Tync нагадав мені, що ми не можемо використовувати порт 0, а Стів Фоллі нагадав мені, що ви просили найвищий порт, а не кількість портів)
Але ти, мабуть, підеш про це неправильним шляхом. Є люди, які сперечаються за і проти нестандартних портів. Я кажу, що вони не мають значення, за винятком самого випадкового сканера, і самий випадковий сканер можна тримати в страху, використовуючи сучасне програмне забезпечення та належні методи брандмауера, а також міцні паролі. Іншими словами, найкращі практики безпеки.
Хоча 1-65535 є законними портами TCP, і правда, що 1-1023 призначені для добре відомих сервісів портів. Ви можете зіткнутися з випадковими проблемами з власними службами, якщо вони запускаються після встановлення ефемерного порту. Для тих, хто може не знати, ефемерні порти - це ті, які підключені локально для віддалених кінцевих точок (або щось для цього). Тож якщо ви пишете послугу TCP, яка слухає порт 20001. Ви можете бути хорошими сьогодні ... і завтра. Але одного дня ваша служба може запуститись і спробувати прив’язатись до 20001, і вона не вдасться, оскільки вона була сприйнята як ефемерний порт. Є рішення. Потрібно, щоб ваш адміністратор або сам змінили політику ефемерного порту системи на своєму сервері. У системах Linux це робиться в два етапи:
Обидва кроки повинні бути зроблені, марні ви плануєте перезавантажувати, і в цьому випадку динамічний крок не потрібен. Щоб встановити діапазон до 40000 до 65535, виконайте наступне:
Динамічний
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
або
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
Постійний
Додайте до /etc/sysctl.conf:
net.ipv4.ip_local_port_range = 40000 65535
Щоб прочитати поточний параметр або підтвердити зміну:
/sbin/sysctl net.ipv4.ip_local_port_range
Вихід буде приблизно таким:
net.ipv4.ip_local_port_range = 9000 65500
Будьте впевнені, що ви розумієте призначення свого сервера. Занадто велике скорочення діапазону може призвести до інших проблем.
Щасливе кодування! (або що ви робите)