कैसे पता एक्टिविस्ट ssh पोर्ट फॉरवर्डिंग


12

मैंने ~/.ssh/configप्रत्येक सर्वर के लिए अलग पोर्ट के साथ VNC के लिए कई पोर्ट अग्रेषण में कॉन्फ़िगर किया है।

क्या कोई कमांड है जो मुझे यह जानने में मदद कर सकता है कि एसएसएच सत्र खोलते समय कौन सा पोर्ट आगे बढ़ रहा है?

जवाबों:


13

यदि आप इसके -vविकल्प का उपयोग करते हैं, तो आपको sshयह दिखाएगा कि आप क्या अग्रेषित कर रहे हैं (लेकिन यह आपको अन्य डिबग संदेशों का एक गुच्छा दिखाएगा, भी):

ssh -v -L2222:localhost:22 remotehost

दिखा दूंगा तुझे:

...debug messages...
debug1: Authentication succeeded (publickey).
Authenticated to remotehost ([10.0.0.23]:22).
debug1: Local connections to LOCALHOST:2222 forwarded to remote address localhost:22
debug1: Local forwarding listening on ::1 port 2222.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 2222.
...debug messages...

और फिर जब आप उस दूरस्थ शेल से जुड़े होते हैं तो आप एक विशेष कुंजी अनुक्रम टाइप कर सकते हैं:

~#

जो इस तरह से कनेक्शन की सूची देगा:

The following connections are open:
  #3 client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
  #4 direct-tcpip: listening port 2222 for localhost port 22, connect from 127.0.0.1 port 59742 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)

ध्यान दें, हालांकि, यह केवल अग्रेषित बंदरगाहों को सूचीबद्ध करेगा जो वास्तव में किसी अन्य प्रोग्राम द्वारा उपयोग किए जा रहे हैं (इस मामले में मैंने अभी-अभी इसे telnet localhost 2222अपने स्थानीय मशीन पर किया था remotehost

यदि आपके पास कोई कनेक्शन नहीं है जो वर्तमान में अग्रेषित किया जा रहा है, तो आप अभी भी देख सकते हैं कि आपके ssh कमांड को स्थानीय रूप से netstatकमांड का उपयोग करके क्या सुनना है :

% netstat -tpln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:2222          0.0.0.0:*               LISTEN      28995/ssh       
tcp6       0      0 ::1:2222                :::*                    LISTEN      28995/ssh       

netstatआदेश भी शायद अन्य बातों सूची जाएगा, लेकिन क्या आप उत्पादन में देखने के लिए चाहते हैं PID/Programके लिए देखो करने के लिए स्तंभ sshप्रक्रियाओं, और Local Addressस्तंभ जो आपको बताएंगे कि क्या बंदरगाहों की बात सुनी जा रही है। इस उदाहरण में यह port 2222मेरी मशीन पर IPv4 और IPv6 इंटरफेस दोनों के लिए सुन रहा है ।


1
इस उत्तर के लिए धन्यवाद, मेरा लक्ष्य बंदरगाहों को पुनर्निर्देशित प्रदर्शित करने के लिए /etc/update-motd.d/ में स्क्रिप्ट जोड़ना था। लेकिन ~ # कमांड के साथ मेरे पास केवल सर्वर पर रीडायरेक्ट किए गए पोर्ट हैं। और लक्ष्य को प्रदर्शित करना था (ssh -v आउटपुट का हिस्सा): LOCALHOST के लिए स्थानीय कनेक्शन: 5901 को दूरस्थ पते पर अग्रेषित 127.0.0.1.1900 स्थानीय अग्रेषण को सुनते हुए :: 1 बंदरगाह 5901। यह केवल इन 2 लाइनों के ग्राहक को प्रदर्शित करना असंभव लगता है पक्ष।
slc66

2020+ में आने वाले लोगों के लिए: के netstatपक्ष में मान लिया गया है ss
स्कमकोडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.