Направление ваших стрелок не зависит от того, какая машина имеет общедоступные IP-адреса с возможностью маршрутизации - вам нужно знать, в каком направлении вы хотите, чтобы ваша стрелка шла, исходя из проблемы, которую вы пытаетесь решить. Соединение всегда будет инициироваться с вашего ноутбука (поскольку оно не может быть адресовано напрямую с другого компьютера), но вы будете использовать один или другой аргумент переадресации соединения, основанный на том, как вы хотите, чтобы переадресация портов работала.
Так как я не знаю putty , я дам соответствующие команды от OpenSSH ; надеюсь, будет легко найти соответствующие опции в окнах конфигурации графического интерфейса putty .
Если вы хотите, чтобы соединения с laptop:7000 пересылались на server:6000 , то вы можете использовать ssh -L 7000:server:6000 . Если соединения происходят на вашем ноутбуке, вы можете слегка изменить это на: ssh -L localhost:7000:server:6000 . Это ограничивает порт вашего ноутбука подключениями, инициированными на самом ноутбуке.
С помощью этой команды программа на сервере должна прослушивать порт 6000 для соединений. Программы на вашем ноутбуке (или в другом месте вашей локальной сети) должны иметь возможность подключаться к локальному localhost:7000 (или не маршрутизируемый адрес вашей машины, порт 7000), чтобы инициировать соединение.
Если вы хотите, чтобы соединения с server:6000 были перенаправлены на laptop:7000 , то вы можете использовать ssh -R 6000:localhost:7000 . По умолчанию это открыто только для подключений, инициированных на сервере. Если вы хотите, чтобы он был открыт для всех машин, которые могут связаться с сервером, вы можете использовать ssh -R *:6000:localhost:7000 .
С помощью этой команды программа на ноутбуке должна прослушивать порт 7000 для соединений. Программы на вашем сервере (или в другом месте в сети сервера) должны иметь возможность подключиться к server:6000 (или маршрутизируемый адрес сервера, порт 6000), чтобы инициировать соединение.
Мне потребовались годы, чтобы понять разницу между переадресацией -L и -R . -L говорит , что программы будут пытаться подключиться L ocally и -R говорит , что программы будут пытаться подключиться R emotely. (Не беспокойтесь о разнице; я должен искать ее в руководстве каждый раз, когда мне это нужно.)