Chciałbym ustawić niektóre usługi Linux na niestandardowe porty - jaki jest najwyższy prawidłowy numer portu?
66
(2 ^ 16) -1 lub 0-65 535 (-1 oznacza, że port 0 jest zarezerwowany i niedostępny). (edytowane, ponieważ o_O Tync przypomniał mi, że nie możemy użyć portu 0, a Steve Folly przypomniał mi, że poprosiłeś o najwyższy port, a nie liczbę portów)
Ale prawdopodobnie robisz to w niewłaściwy sposób. Są ludzie, którzy opowiadają się za i przeciw niestandardowym portom. Mówię, że są one nieistotne, z wyjątkiem zwykłego skanera, a najbardziej zwyczajny skaner można trzymać z daleka za pomocą aktualnego oprogramowania i odpowiednich technik zapory ogniowej, a także silnych haseł. Innymi słowy, najlepsze praktyki bezpieczeństwa.
Dostępne są 1-65535, a porty w zakresie 1-1023 są uprzywilejowane : aplikacja musi być uruchomiona jako root, aby nasłuchiwać tych portów.
źródło
Chociaż 1-65535 to legalne porty TCP i prawdą jest, że 1-1023 są dla dobrze znanych usług portowych. Możesz napotkać przypadkowe problemy z własnymi usługami, jeśli zostaną uruchomione po ustanowieniu efemerycznego portu. Dla tych, którzy mogą nie wiedzieć, efemeryczne porty to te, które są podłączone lokalnie dla zdalnych punktów końcowych (lub coś w tym celu). Więc jeśli napiszesz usługę TCP, która nasłuchuje na porcie 20001. Możesz być dobry dzisiaj ... i jutro. Ale pewnego dnia twoja usługa może się uruchomić i spróbować połączyć się z 20001 i zakończy się niepowodzeniem, ponieważ została uznana za efemeryczny port. Jest rozwiązanie. Musisz poprosić administratora lub siebie o zmianę efemerycznych zasad zakresu portów na swoim serwerze. W systemach Linux odbywa się to w dwóch krokach:
Oba kroki muszą zostać wykonane, bezużyteczne, jeśli planujesz ponowne uruchomienie, w takim przypadku krok dynamiczny nie jest potrzebny. Aby ustawić zakres do 40000 do 65535, wykonaj następujące czynności:
Dynamiczny
echo 40000 65535 > /proc/sys/net/ipv4/ip_local_port_range
lub
sysctl -w net.ipv4.ip_local_port_range="40000 65535"
Stały
Dodaj następujące pliki do /etc/sysctl.conf:
net.ipv4.ip_local_port_range = 40000 65535
Aby odczytać bieżące ustawienie lub potwierdzić zmianę:
/sbin/sysctl net.ipv4.ip_local_port_range
Wynik będzie mniej więcej taki:
net.ipv4.ip_local_port_range = 9000 65500
Upewnij się, że rozumiesz cel swojego serwera. Zbyt duże zmniejszenie zasięgu może prowadzić do innych problemów.
Happy Coding! (lub cokolwiek robisz)
źródło