Ters port tünelleri

52

Yarın makinemde çalışan bir web sitesini göstermem gerekiyor. Normalde bunu yerel yönlendiricimde port yönlendirme ile gerçekleştiririm, ancak başarısız donanım ve yedeklemenin berbat olması sayesinde, şu anki yönlendiricim bağlantı noktası yönlendirmesi yapmama izin vermiyor.

Bu gecikmeyle takıldım ve her şeyi doğru bir sunucuya zorlamak istemedim, çılgın bir fikrim vardı: Bağlantı noktasını SSH üzerinden harici bir sunucuya iletebilir miyim?

Daha önce tünel açma işlemini yaptım ama genellikle doğru yolu yaparım:

  • Uzak bir kutuya bağlanıyorum ve 12345 numaralı bağlantı noktasının yerel makinemde 12345 numaralı bağlantı noktasından görüntülendiğini sorun.
  • Uzak makinede P12345 üzerinde bir şeyler başlatıyorum
  • Yerel ana bilgisayar üzerinden erişebilirim: 12345

Ne yapmak istediğim :

  • Uzak bir bilgisayara bağlanın ve bunun kendi yerel P12345'ini yerel P12345'imden (tünel üzerinden) şeyler almasını isteyin
  • Yerel bilgisayarımda P12345 üzerinde bir şeyler başlatıyorum
  • Diğer kullanıcılar uzaktan erişebilir: 12345 ve yerel halim gör: 12345
sordu Oli 22.06.2011 18:46

2 cevap

84

Yerel makinenizden 80 bağlantı noktasını ( localhost ) 8000 numaralı bağlantı noktasındaki uzak ana bilgisayara iletme komutu şöyledir:

ssh -R 8000:localhost:80 [email protected]

Bu, SSH sunucusunda ek bir ince ayar gerektirir, satırları /etc/ssh/sshd_config 'ye ekleyin:

Match User oli
   GatewayPorts yes

Ardından, yapılandırmayı sudo reload ssh yürüten sunucuyla yeniden yükleyin.

GatewayPorts yes ayarı, SSH'nin wildcard adresindeki 8000 bağlantı noktasına bağlanmasına neden oluyor; bu nedenle, remote-machine ( remote-machine:8000 ) adlı ortak adrese erişilebiliyor.

Joker karakter adresinde her şeyi bağlamama seçeneğiniz varsa, GatewayPorts yes 'yi GatewayPorts clientspecified ' ye değiştirin. % Co_de% varsayılan olarak geridöngü adresine bağlandığından, joker karakterinin ciltlenmesi için boş bir ssh belirtmeniz gerekir:

ssh -R :8000:localhost:80 [email protected]

bind_address öğesinden önce : zorunluysa, 8000 değeri GatewayPorts olarak ayarlandıysa ve genel olarak clientspecified 'ye erişime izin vermek istiyorsanız.

İlgili manuel alıntılar:

ssh (1)

  

-R [bind_address:] bağlantı noktası: ana bilgisayar: hostport
  Uzaktaki (sunucu) ana bilgisayardaki verilen bağlantı noktasının yerel taraftaki belirli ana bilgisayara ve bağlantı noktasına iletileceğini belirtir. Bu, uzak taraftaki bağlantı noktasını dinlemek için bir soket tahsis ederek çalışır ve bu bağlantı noktasına bir bağlantı yapıldığında, bağlantı güvenli kanal üzerinden iletilir ve yerel makineden ana makine bağlantı noktası ana bilgisayarına bir bağlantı yapılır. Varsayılan olarak, sunucudaki dinleme soketi yalnızca geri döngü arabirimine bağlı olacaktır. Bu, bir bind_address belirtilerek geçersiz kılınabilir. Boş bir bind_adresi veya '*' adresi, uzak soketin tüm arabirimleri dinlemesi gerektiğini belirtir. Uzak bir bind_address'in belirtilmesi, yalnızca sunucunun GatewayPorts seçeneği etkinleştirilirse başarılı olur (sshd_config (5) konusuna bakın). .

sshd_config (5)

  

GatewayPorts
  Uzak ana bilgisayarların, istemci için yönlendirilen bağlantı noktalarına bağlanmasına izin verilip verilmediğini belirtir. GatewayPorts, sshd'nin uzak bağlantı noktası iletimlerinin geri döngü dışı adreslere bağlanmasına izin vermesi gerektiğini belirtmek için kullanılabilir, böylece diğer ana bilgisayarların bağlanmasına izin verilir. Bağımsız bağlantı noktası iletimlerinin yalnızca yerel ana makineye sunulmasını zorlamak için argüman 'hayır', uzak bağlantı noktalarını joker karakterine bağlamaya zorlamak için 'evet' veya istemcinin seçmesine izin vermek için 'istemci tarafından belirtilmiş' olabilir. iletimin bağlı olduğu adres. Varsayılan değer 'hayır'.

Ayrıca bkz:

verilen cevap Lekensteyn 22.06.2011 19:28
12

Sunucuda GatewayPorts no varsa, istemcide ssh -g -L 8001:localhost:8000 [email protected] komutunu çalıştırdıktan sonra sunucuda ssh -R dosyasını çalıştırarak aynı sonucu elde edebilirsiniz. Bu, 8001 bağlantı noktasındaki tüm arabirimlerde erişilebilen sunucuda geridöngü bağlantı noktası 8000'i oluşturacaktır.

    
verilen cevap FaST4 20.06.2016 12:17

Etiketlerdeki diğer soruları oku