Scop:
Expuneți aplicațiile web care rulează pe mașina locală în lumea exterioară folosind tunelarea inversă (serviciu de tip ngrok).
Am un VM Windows 10 Pro care rulează pe Azure. Am instalat serverul OpenSSH acolo și l-am testat folosind redirecționarea portului local și redirecționarea dinamică a portului (proxy socks). Ambele funcționează bine.
Dar nu se pare că tunelul invers să funcționeze.
Aceasta este comanda pe care o folosesc pe mașina mea locală:
ssh -R 5002:localhost:5002 xx.xx.xx.xxx
Unde,
xx.xx.xx.xxx este IP-ul public al mașinii virtuale Win10 pe Azure.
5002 este portul pe care rulează aplicația mea web pe mașina mea locală și vreau, de asemenea, să păstrez același port pentru VM-ul Azure.
Comanda de mai sus îmi cere să introduc parola și, la introducerea acesteia, afișează următorul prompt pe terminal, care probabil indică că conexiunea a avut succes.
eu@VMW10Pro C:\Utilizatori\eu>
Dar când încerc să accesez aplicația mea web care rulează local, așa cum urmează, nu se întâmplă nimic:
https://xx.xx.xx.xxx:5002/myapp
Am incercat si eu, fara succes:
http://xx.xx.xx.xxx:5002/myapp
Iată cum am configurat regulile portului de intrare pentru VM Azure:
Și iată cum arată regulile portului de ieșire. Am permis chiar și temporar toate porturile.
Și acesta este sshd_config
fișier pe VM Azure. Singura modificare pe care am făcut-o a fost setarea GatewayPorts
la da
:
# Acesta este fișierul de configurare la nivel de sistem al serverului sshd. Vedea
# sshd_config(5) pentru mai multe informații.
# Strategia folosită pentru opțiunile din sshd_config implicit livrate cu
# OpenSSH este de a specifica opțiunile cu valoarea lor implicită unde
# posibil, dar lăsați-le comentate. Opțiunile necomentate înlocuiesc
# valoare implicită.
#Portul 22
#AdresaFamiliei orice
#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
# Cifruri și codare
#RekeyLimit implicit nici unul
# Logare
#SyslogFacility AUTH
INFORMAȚII #LogLevel
# Autentificare:
#LoginGraceTime 2m
#PermitRootLogin prohibit-parolă
#StrictModes da
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication da
# Implicit este să verificați atât .ssh/authorized_keys, cât și .ssh/authorized_keys2
# dar aceasta este suprascrisă, astfel încât instalările vor verifica doar .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile nici unul
# Pentru ca acest lucru să funcționeze, veți avea nevoie și de chei de gazdă în %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication nr
# Schimbați la yes dacă nu aveți încredere în ~/.ssh/known_hosts pentru
# Autentificare bazată pe gazdă
#IgnoreUserKnownHosts nr
# Nu citiți fișierele ~/.rhosts și ~/.shosts ale utilizatorului
#IgnoreRhosts da
# Pentru a dezactiva parolele de text clar tunelizate, schimbați la nu aici!
#PasswordAuthentication da
#PermitEmptyPasswords nr
#AllowAgentForwarding da
#AllowTcpForwarding da
GatewayPorts da
#PermitTTY da
#PrintMotd da
#PrintLastLog da
#TCPKeepAlive da
#UseLogin nr
#PermitUserMediu nr
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS nr
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel nr
#ChrootDirectory niciunul
#VersionAddendum niciunul
# nicio cale implicită pentru banner
#Banner nici unul
# suprascrie valoarea implicită fără subsisteme
Subsistemul sftp sftp-server.exe
# Exemplu de setări de suprascrie pe bază de utilizator
#Match User anoncvs
# AllowTcpForwarding nr
# PermisTTY nr
# Server ForceCommand cvs
Administratorii grupului de potriviri
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
The sshd_config
fișierul de pe mașina mea locală arată la fel ca mai sus cu GatewayPorts
setat la da
.
Vă rugăm să rețineți: nu sunt expert în chestii de rețele. Există și alte tutoriale și instrucțiuni disponibile pentru a face același lucru cu mașinile virtuale Linux. Dar vreau doar să folosesc mașina virtuală Windows existentă.
Orice ajutor ar fi foarte apreciat.