2

Я использую туннелирование ssh с: ssh -i <my_file> -R *:0:localhost:80 <my_name>@<host> .

С портом = 0 сервер назначает мне порт. Как сервер выбирает и как настроить диапазон?

2 ответа2

2

Когда ОС назначает порт конечной точке TCP или UDP, она использует диапазон временных портов. Операционные системы будут произвольно выделять неиспользуемый номер порта из этого диапазона. Может выбрать номер случайно. Или он может просто начинаться с нижнего конца диапазона и назначать первый номер, который не используется.

На этой странице описано, как просмотреть и изменить диапазон в нескольких различных операционных системах. В Linux вы можете просмотреть и изменить диапазон, открыв /proc/sys/net/ipv4/ip_local_port_range:

$ cat /proc/sys/net/ipv4/ip_local_port_range 
1024 4999

# echo "49152 65535" > /proc/sys/net/ipv4/ip_local_port_range 

Кроме того, вы можете использовать sysctl для просмотра или установки ключа net.ipv4.ip_local_port_range .

1

Я почти уверен, что вы не можете указать ssh диапазон портов на стороне сервера для выбора, конечно, не на стороне клиента. Предполагая наличие некоторой * nix-подобной системы на сервере, вы сможете установить диапазон временных портов в /proc/sys/net/ipv4/ip_local_port_range .

Возможно, более полезно, вы могли бы просто хотеть назначить порт на стороне сервера, который обсуждался здесь и здесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .