Yerel ve uzak IP yönlendirme arasındaki fark nedir?


10

İkisi arasındaki işlevselliğin farkı nedir? Biraz kafam karıştı.

Yerel yönlendirme, uzak bir bağlantı noktasını yerel olarak kullanılabilir duruma getirir.

Uzaktan yönlendirme, yerel bir bağlantı noktasını uzaktan kullanılabilir hale getirir.

Ama bu 'kullanılabilirlik' her iki yönde de işe yarayacak mı ... yoksa çalışıyor mu?

Örneğin, aşağıdakiler (bir ev sahibinden verilen 'ev')

ssh -R 1234:localhost:2345 user@work

Bu, çalışma :: 1234 ve ev :: 2345 arasında güvenli bir tünel kuracak, değil mi?

Bir uca bir şey koyarsam, diğer ucuna çıkar.

Ama sonra, aynı şeyi 'çalışma' sunucusundan aşağıdaki çağrı ile başarabilirim:

ssh -L 1234:localhost:2345 user@home

Öyleyse, tek fark onu aradığım yer, değil mi?


Örneğinizde işlevsellik açısından bir fark yoktur. Hedef ana bilgisayarları birbiriyle değiştirerek karşıt argümanı kullanmak için kendi kendini telafi et. Eğer olsaydı değil yapmış ve 1 tek konak içinden ikisi de kullanılan - Zaten tamamen zıt bir davranış tetikleyecektir.
XXL

Yanıtlar:


2

En önemli pratik fark, eğer 2 bilgisayar A ve B ve B bağlanıyorsa ve kontrol etmediğiniz bir güvenlik duvarının veya NAT Yönlendiricinin arkasındaysa ve gelenleri engelliyorsa .. A'da oturuyorsunuz. B'ye bağlanmak için. Ancak B gidenleri engellemiyor.

- ek açıklama -

Anketörün anladığı yukarıdaki .. yerel ve uzaktan yönlendirme arasındaki temel pratik fark anlamına gelir. ssh -L ve ssh -R her birini kullandığınızda. Verdiği belirli komutları, -L ve -R'yi nerede değiştirdiğini ve hangi sshd sunucusuna bağlandığını yorumlamıyordum. Ama şimdi bunun hakkında yorum yapmaya çalışacağım. Verdiği ssh komutlarıyla, düzenli müşteri ve düzenli sunucu perspektifinden bakıldığında, "ah bu bir ssh istemcisi," demiyor. bu bir ssh sunucusudur .. "ssh'yi tanımıyor ve ssh'nin istemci / sunucu yönü de normal müşteri ve normal sunucu için anlamsız ve bilinmiyor. Sadece kimin dinlediğini önemsiyorlar ve onların bakış açısından aynı görünüyor. İş bilgisayarı dinliyor ve 1234'te. t Bir durumda sshd.exe ssh sunucusu, diğer durumda ssh.exe ssh istemcisi olduğunu fark etmeyin. Bu arada, ssh müşterisinin olduğu yer yerel kabul edilir.


tamam, teşekkür ederim, bu tam olarak sorumu yanıtladı! :-)
nandaloo

@ nandaloo Bence ters ssh tüneli denir. Hazırlayıcı terimleri ve dinleyiciyi kullanırsak ('çünkü bu terimler müşteri ve sunucudan daha az belirsizdir). Fikir, düzenli başlatıcınız ve dinleyiciniz ile ssh başlatıcınız ve dinleyiciniz olduğu. Düzenli başlatıcınızın ve dinleyicinizin nerede olduğunu seçemezsiniz. örneğin, HTTP sunucusu (normal dinleyici) B'dedir. B bir güvenlik duvarının arkasındadır. A'da HTTP istemcisi var (normal başlatıcı). SSH başlatıcınızı B'ye yerleştiriyorsunuz. SSH başlatıcısını ve dinleyiciyi ters tünelle görün, sıradan başlatıcı ve dinleyicinin karşısındaki bilgisayarlarda.
barlop,

10

Evet, doğru anlarsam, a'dan b'ye yerel bağlantı noktası iletme b'den a'ya uzak bağlantı noktası iletme ile aynı olmalıdır (ve tersi). A'dan b'ye giden (a'dan görülen) giden bir tünel, a'dan b'ye gelen (b'den görülen) gelen tünele eşit olmalıdır.

Yerel port yönlendirme , bir kamu internet bilgisayarını yerel makineye getirmek için kullanılabilecek bir giden tünel yaratır . Yerel bir kullanıcı uzak ana bilgisayara erişebilir: yerel ana bilgisayarda bağlantı noktası birleşimi, çünkü yerel (istemci) ana bilgisayarda verilen bağlantı noktası, belirtilen ana bilgisayara ve uzaktaki bağlantı noktasına iletilir:

ssh -L local_port:remote_host:remote_port user@hostname

Uzaktan port yönlendirme bir oluşturur gelen kamu internet içine yerel bir bilgisayar getirmek için kullanılabilir tüneli. Bir internet kullanıcısı belirli bir yerel ana bilgisayara erişebilir: uzak bir ana bilgisayarda bağlantı noktası birleşimi. Uzaktaki (sunucu) ana bilgisayarda verilen bağlantı noktası, belirtilen ana bilgisayara ve yerel taraftaki bağlantı noktasına iletilir:

ssh -R local_port:remote_host:remote_port user@hostname

1
Sanırım, sözdiziminin yanı sıra, kullanıcının bağlantı kurmasını dinleyen süreç de olabilir. ssh.exe -L, ssh.exe'ye dinlemesini söyler (zaten giden bağlantı dışında). ssh.exe -R, sshd.exe'ye dinlemesini söyler (zaten yaptığı dinlemenin yanı sıra).
barlop

@ 0x4a6f4672, Ne anlama 0x4a6f4672geliyor?
Pacerier

@Pacerier onaltılık gösterimde sadece baş harfleri “JoFr” :-)
0x4a6f4672 16:15

3

Yerel bağlantı noktası iletme işlemiyle (istemci) bilgisayarınızda bir dinleme soketi açın ve uygulama düzeyi protokol istemcinizi bu sokete bağlayın. Şimdi bağlantı SSH üzerinden sunucuya iletilir. Sunucu uzaktaki ana bilgisayara bağlanır ve verileri protokol istemcinizden son hedefe doğru ayarlar.

Uzak bağlantı noktası iletme ile sunucu, sunucu ana bilgisayarında bir dinleme soketi açar. Bazı uzak uygulamalar bu ana bilgisayara bağlanır ve istemci bilgisayarınıza aktarılan bilgileri gönderir. Burada bağlantı nihai hedefe (bilgisayarınızda veya ağınızda çalışan bazı uygulama düzeyinde protokol sunucusu) kurulur ve veriler uzak uygulamadan son hedefe aktarılır.


teşekkürler, bu port yönlendirme nasıl çalıştığını daha net yaptı. Ve soruyu taşıdığınız için teşekkürler - bu süper kullanıcı sitesi hakkında henüz bir şey bilmiyordum :-)
nandaloo

1

Bu en iyi küçük örneklerle anlaşılabilir. Bu örneklerde, bağlantılar bu şekilde yapılandırılmıştır:

Yerel Sunucu - (LAN) - Terminal ----- (SSH, genellikle İnternet üzerinden) ----- Tünel Bitiş Noktası - (LAN) - Uzak Makine

Ssh erişiminiz olan tünel bitiş noktasıyla erişilebilen belirli bir uzak makineye / porta tünel açmak istiyorsanız yerel port yönlendirme özelliğini kullanırsınız. Böylece, bu uzak makinenin portuna kendi terminalinizden yerel olarak da erişilebilir, yani http: // localhost: terminal_port /.

Bu, aşağıdaki sözdizimini kullanarak yapılır:

ssh -L terminal_port:remote_machine_ip:remote_service_port -p tunnel_endpoint_ssh_port ssh-login@tunnel_endpoint_ip

Yerel yerel ağınızdaki bir ip / bağlantı noktasına uzaktan erişebilmek için tünelin bitiş noktasının dinleme bağlantı noktasına ulaşabilen HERKES (!) Uzaktan kumandasını etkinleştirmek istiyorsanız, uzaktan bağlantı noktası iletmeyi kullanabilirsiniz . Yerel sunucunuza, uzak makineden bağlantı terminal tarafından başlatılmış gibi görünüyor.

Sözdizimi:

ssh -R tunnel_endpoint_listen_port:local_server_ip:local_server_port -p tunnel_endpoint_ssh_port ssh-login@tunnel_endpoint_ip

0

Socat'ın manpage'i bunu çok iyi açıklıyor. Evet, ssh ve socat'ın birbirinden tamamen farklı iki şey olduğunu biliyorum - ama socat'ın dokümantasyonu çok iyi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.