Цель:
Открывайте веб-приложения, работающие на локальном компьютере, внешнему миру с помощью обратного туннелирования (сервис, подобный ngrok).
У меня есть виртуальная машина Windows 10 Pro, работающая в Azure. Я установил там сервер OpenSSH и протестировал его, используя переадресацию локальных портов и динамическую переадресацию портов (socks-прокси). Оба работают нормально.
Но у меня не работает обратное туннелирование.
Это команда, которую я использую на своей локальной машине:
ssh -R 5002: локальный: 5002 хх.хх.хх.ххх
Где,
xx.xx.xx.xxx — общедоступный IP-адрес виртуальной машины Win10 в Azure.
5002 — это порт, на котором мое веб-приложение работает на моем локальном компьютере, и я также хочу сохранить тот же порт для виртуальной машины Azure.
Приведенная выше команда предлагает мне ввести пароль, и после его ввода на терминале отображается следующее приглашение, которое, вероятно, указывает на то, что соединение было успешным.
я@VMW10Pro C:\Пользователи\я>
Но когда я пытаюсь получить доступ к моему локально работающему веб-приложению, как показано ниже, ничего не происходит:
https://xx.xx.xx.xxx:5002/myapp
Я также пробовал, но безуспешно:
http://xx.xx.xx.xxx:5002/myapp
Вот как я настроил правила входящего порта для виртуальной машины Azure:
А вот как выглядят правила исходящего порта. Я даже временно разрешил все порты.
И это sshd_config
файл на виртуальной машине Azure. Единственное изменение, которое я сделал, это настройка Порты шлюза
к да
:
# Это общесистемный файл конфигурации сервера sshd. Видеть
# sshd_config(5) для получения дополнительной информации.
# Стратегия, используемая для опций в sshd_config по умолчанию, поставляемой с
# OpenSSH должен указать параметры со значением по умолчанию, где
# возможно, но оставьте их комментариями. Незакомментированные параметры переопределяют
# значение по умолчанию.
#Порт 22
#AddressFamily любой
#ListenAddress 0.0.0.0
#ListenAddress ::
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
# Шифры и ключи
#RekeyLimit по умолчанию нет
# Логирование
#SyslogFacility АУТЕНТИФИКАЦИЯ
#LogLevel ИНФОРМАЦИЯ
# Аутентификация:
#LoginGraceTime 2 м
#PermitRootLogin запретить пароль
#Строгиережимы да
#MaxAuthTries 6
#МаксСеансов 10
#PubkeyАутентификация да
# По умолчанию проверяются оба .ssh/authorized_keys и .ssh/authorized_keys2
# но это переопределено, поэтому при установке будут проверяться только .ssh/authorized_keys
Файл авторизованных ключей .ssh/authorized_keys
#AuthorizedPrincipalsFile нет
# Для этого вам также понадобятся ключи хоста в %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication нет
# Измените на yes, если вы не доверяете ~/.ssh/known_hosts для
# Аутентификация на основе хоста
#IgnoreUserKnownHosts нет
# Не читать пользовательские файлы ~/.rhosts и ~/.shosts
#ИгнорироватьRhosts да
# Чтобы отключить туннелируемые пароли в открытом виде, измените здесь на no!
#Аутентификация по паролю да
#PermitEmptyPasswords нет
#AllowAgentForwarding да
#AllowTcpForwarding да
Порты шлюза да
#PermitTTY да
#PrintMotd да
#PrintLastLog да
#TCPKeepAlive да
#UseLogin нет
#PermitUserEnvironment нет
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS нет
#PidFile /var/run/sshd.pid
#Макс.Запусков 10:30:100
#PermitTunnel нет
#ChrootDirectory нет
#VersionAddendum нет
# нет пути к баннеру по умолчанию
#Баннер нет
# переопределить значение по умолчанию отсутствия подсистем
Подсистема sftp sftp-server.exe
# Пример переопределения настроек для каждого пользователя
#Соответствие пользователю anoncvs
# AllowTcpForwarding нет
# РазрешитьTTY нет
# cvs-сервер ForceCommand
Администраторы Match Group
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
sshd_config
файл на моем локальном компьютере также выглядит так же, как и выше, с Порты шлюза
установлен в да
.
Обратите внимание: я не эксперт в области сетевых технологий. Существуют и другие учебные пособия и инструкции, которые помогут сделать то же самое с виртуальными машинами Linux. Но я просто хочу использовать существующую виртуальную машину Windows.
Любая помощь приветствуется.