SSH iletilen bağlantı noktasını nasıl kaldırırım


52

ssh -L 10002:192.168.0.30:10002 192.168.1.135Liman nakliyesi kurmak için kullanılırdım ama şimdi kaldırmam gerekiyor.

Bunu nasıl yaparım?


Sık sık aynı komutu tekrarlayan ve Warning: remote port forwarding failed for listen portmesaj alan yeni bir ssh oturumu başlattığımızda portun hala iletildiğini fark ediyoruz .
GabLeRoux 08:16

Yanıtlar:


56

Linux kullanıyorsanız, işlemi aşağıdaki şekilde öldürebilirsiniz:

ps aux | grep ssh

ve sonra kullan

kill <id>

Süreci öldürmek için.

Kill komutu başarılı olmazsa deneyebilirsiniz

kill -9 <id>

31
Lütfen sayılı sayılı sayılı, lütfen lütfen değil kullanmak kill -9sadece denedim sonrasına kadar kill. Birçok işlem, kaynaklarını kullanımlarını temizleyen, bağlantıları ve diğer ön kapatma görevlerini net bir şekilde kapatan sinyal işleyicilere sahip olacaktır. -9 ile öldürürseniz, işlem temizlik yapılmadan hemen ölür. Olmadan -9 öldürmek olacaktır çoğu zaman çalışır.
Doug Harris

17
kill -9sebepsiz bir sivrisinek öldürmek için av tüfeği kullanmak gibi. :)
Darren Hall

2
Genelde bir liner yaparım pgrep ssh | xargs kill. -9Gerçekten hiçbir şey için kullanmayın
GabLeRoux 08:16

2
@GabLeRoux Yalnızca tek bir sshkomutunuz olduğunu varsayarsınız veya sshçalıştırdığınız tüm komutların öldürülmesi iyidir. Bu pek iyi bir genel varsayım değildir.
üçlü,

2
@Avamander Her zaman birden sshfazla uzak sunucudaki birden fazla örneğe, bazıları doğrudan etkin katılımım olmadan bağlanırım . Örneğin, Emacs Tramp modu sshuzak bir tamponu ziyaret ettiğimde perde arkasındaki bağlantıyı açar . Bazı insanlar benzer bir şey yapan kullanıcı alanı dosya sistemlerini kullanır. Hiç de nadir değil. Aslında, tek kullanıcılı, tek sshörnekli azınlık saçak kullanım çantası olarak kabul ediyorum . İşe yararsa, senin için iyi, ama genel bir tavsiye değil.
üçlü

19

Ssh multiplexing kullanırken, ssh işlemini öldürmek genellikle istenmez (bu host ile tüm açık bağlantıları öldürür) ve "multiplexed seanslarda kullanılamaz" olduğundan kaçışa kolayca erişemezsiniz. Doğru yol, iptal etmek istediğiniz, ancak ekleyen yönlendirme komutunun analogunu çalıştırmaktır -O cancel. Örneğin:

ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135

Bu, oturumu sonlandırmadan bu bağlantı noktası iletmeyi devre dışı bırakacaktır. Yine, bu yalnızca 192.168.1.135’e bağlantı için ssh multiplexing kullanılıyorsa işe yarar .


Bunun var olmasına çok sevindim ve buldum, çok teşekkürler!
galva

2
Bu en iyi çözümdür. Efendiyi öldürmek için koş ssh -O exit 192.168.1.135.
Orient

Eğer varsa değil oturumları multiplexing'i, exhuma mükemmel cevaba bakınız! (Yazım hatası aldığınız için teşekkürler a3nm.)
Alan De Smet

müthiş! bu seçilen cevap olmalı!
Truong Nguyen,

12

Bağlantınıza bir adım atmak için "escape-key" (genellikle ~) ardından C ile kullanabilirsiniz. Oradan bağlantınızı kesmeden tünelleri kaldırabilirsiniz.


1
Bunun özelliklerini bilmek istiyorum. SSH ye girdikten sonra tünel ekleyebileceğinizi biliyorum , ama nasıl birini ele geçireceğinizi henüz bulamadınız.
umarım

9
CLI modundayken yardım edebilirsiniz. -KL, -L'nin karşıtıdır, -KR, -R'nin karşıtıdır ve -KD, -D'nin karşıtıdır. "Escape-key" (~) ve ardından # işaretinin kullanılması tünellerinizi gösterir.
Jimmy Hedman

1
@JimmyHedman, bir yorum eklerken cevabınızı ek olarak düzenlemek isteyebilirsiniz. Her şeyi daha okunaklı hale getirir. Ve bazen yorumlar gizlenir (çok fazla olması durumunda).
exhuma

12

Halihazırda çalışan bir SSH oturumunda iletilen bağlantı noktası nasıl iptal edilir:

  1. ~+ CTuşlarına basın (tilde + büyük harf C)
  2. tip -KL port
  3. Enter tuşuna basın

Bunu görmelisin:

ssh> -KL 10002
Canceled forwarding.

7

Etkileşimli bir konsola girerek ~C(büyük harf "C") girebilirsiniz . Bu, bağlantı noktası iletimlerini dinamik olarak eklemenizi ve kaldırmanızı sağlar (birkaç şey arasında).

Bu sıra, satır başı / satırsonundan hemen sonra gelmelidir . Bu yüzden şüphede, sadece Enter~C(sırayla) yazın.

Konsolda karakterler görünmüyorsa, doğru yapıyorsunuz :)

Şimdi bir bilgi ssh>istemi görmelisin .

Portunu kaldırmak için, basitçe girin -KL 10002ve ardından Enter(burada 10002Yönlendirilen port).

Ters - yeni bir ileri ekleme - bu şekilde yapılabilir (baştan sona):

Enter~C

ssh> -L 10002:192.168.0.30:10002

Enter


Eğer varsa, bu bölüm doğru cevap değil bağlantılarını multiplexing'i. Eğer öyleyse, ile zıplayacaksınız ~C escape not available to multiplexed sessions. Bu durumda, A3'ün mükemmel cevabını görün.
Alan De Smet
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.