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

Я думал, что это так же просто, как с сервера за брандмауэром провайдера:

ssh username@remote_server_ip -R remote_server_ip:12345:localhost:12345

А затем просто подключиться с помощью клиентского программного обеспечения к remoteserver:12345 в качестве настройки сервера.

Кроме того, для sshd_config задано значение GatewayPorts clientspecified и при проверке netstat -tln | grep 12345 на удаленном сервере, я вижу: активные интернет-соединения (только серверы)

Proto Recv-Q Send-Q Local Address                Foreign Address             State      
tcp        0      0 remote_server_ip:12345       0.0.0.0:*                   LISTEN 

К сожалению, это, похоже, не работает. Я подозреваю, что я получаю что-то от аргументов ssh. Есть идеи?

1 ответ1

0

Если я правильно понимаю, вы хотите создать ssh-туннель на своей машине за провайдером и предоставить его сервис через порт на SSH-сервере.

Если это так, ваша командная строка выглядит правильно. Я делаю что-то подобное.

Вы включили Gatewayports в конфигурации sshd, так что все, что хорошо, если вы этого не сделали, вы можете привязать порт только к адресу обратной петли 127.0.0.1 на сервере ssh.

Быстрое примечание, мне пришлось перезагрузить мой ssh-сервер, чтобы опция gatewayport начала работать. Перезапуска службы sshd должно быть достаточно, но у меня это не сработало.

Я вижу, что вы не указываете порт для сервера ssh, что означает, что вы используете порт 22, ваш провайдер может каким-то образом закалить его.

Еще одна вещь, к какой бы службе вы не обращались на сервере за ISP, убедитесь, что его порт привязан к интерфейсу 127.0.0.1, потому что именно вы указали свой туннель. Кроме того, убедитесь, что ваша служба принимает соединения от этого интерфейса, и дважды проверьте порт, на котором он работает.

@barlop -R 127.0.0.1:12345:localhost:12345 будет неправильным, служба будет доступна только для тех, кто подключается к адаптеру обратной связи.

Но, читая пост barlop, я кое-что понял, имейте в виду, что при настройке команды порт, который открывается на сервере ssh, будет привязан к тому же IP-адресу, на котором работает ваш SSH-сервер. Это означает, что служба подключена к Интернету, может быть, это то, что вам нужно, но если ppl, которому нужна служба, подключается из локальной сети, вам нужно привязать этот порт к IP-адресу локальной сети сервера ssh. ТАКЖЕ ВЫ УВЕРЕНЫ, что ssh-сервер, к которому вы подключаетесь, не находится за брандмауэром, который перенаправляет порт 22 на сервер? если это так, это означает, что вы просите сервер ssh открыть порт на ip, который принадлежит брандмауэру, что, очевидно, невозможно.

В этом senario вам нужно было бы открыть порт на собственной локальной сети ssh-сервера, тогда локальные машины могли бы подключиться напрямую, если вы хотите предоставить сервис Интернету, вам нужно перенаправить порт с брандмауэра на порт. Вы открыли на сервере ssh.

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

Awww удовольствия от организации сети.

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