Bilgisayarımdaki açık / kapalı portlar nasıl kontrol edilir?


135

Bilgisayarımdaki açık / kapalı portlar nasıl kontrol edilir?

Ben kullanılan netstat -akomut satırında.

  • "LISTENING" bağlantı noktası bağlantı noktasının açık olduğunu gösteriyor mu?
  • Çıkışta gösterilmeyen herhangi bir bağlantı noktası kapalı mı?


2
@Justgivemeaname: başka bir ana bilgisayarda nmapaçık portları kontrol etmek için bir araçtır . Bir makinede çalıştırabilirseniz , kullanımı çok daha hızlı ve güvenilirdir. netstat
David Foerster

@DavidFoerster: Bilmiyordum netstat, o yüzden öğrendim. Yine de linkte başka bir ana bilgisayardan kullanılması gerektiğini söylüyor. Teşekkürler!
Justgivemeaname

Yanıtlar:


163

netstatBunun için yararlı olabilecek birkaç parametre var :

  • -lveya --listeningyalnızca gelen bağlantıyı dinlemekte olan yuvaları gösterir.
  • -aveya --allşu anda kullanımda olan tüm soketleri gösterir.
  • -tveya --tcptcp soketlerini gösterir.
  • -uveya --udpudp soketlerini gösterir.
  • -nveya --numerichostları ve portları, dns içinde çözümlemek ve / etc / services içine bakmak yerine sayı olarak gösterir.

İstediklerini elde etmek için bunların bir karışımını kullanırsın. Hangi port numaralarının kullanımda olduğunu bilmek için şunlardan birini kullanın:

netstat -atn           # For tcp
netstat -aun           # For udp
netstat -atun          # For both

Çıktıda belirtilen tüm portlar ya gelen bağlantıyı dinliyor ya da bir eşine bağlıyken kullanılıyor ** diğerleri kapalı. TCP ve UDP bağlantı noktaları 16 bit genişliğindedir (1-65535 arasındadır)

** Aynı zamanda akrandan bağlantı / bağlantıyı kesmek de mümkündür.


71

Bu komutu kullanabilirsiniz:

netstat -tulnp | grep <port no>

Bazı işlemler gösteriyorsa kullanılır. Çıkış yoksa kapalı (kullanılmaz).


20

Hangi işlemin bir bağlantı noktası kullandığını bulmak için kullanımı kolay bir başka alternatif komut satırı:

lsof -n -i4TCP:$PORT | grep LISTEN

.Bash_profile dosyasına bir sonraki işlevi ekledim,

function pslisten {
    echo `lsof -n -i4TCP:$1 | grep LISTEN`
}

ve şimdi SIP portumu kimin tuttuğunu görmek için "pslisten 5060" komutunu çalıştırın.

Apple Mac OS X ile de çalışır.


13

Bağlantı noktası durumu "DİNLEME" bağlantı noktasının açık olduğunu gösteriyor mu?

Evet. Bu, bazı servislerin bilgisayarınızdaki bağlantıyı gelen bağlantı için dinlemekte olduğu anlamına gelir, yani bu bağlantı noktası yeni bağlantılar kurmak için açıktır.

Çıkışta gösterilmeyen herhangi bir bağlantı noktası kapalı olduğunu gösterdi mi?

Evet. Unutmayın netstat -atüm aktif (gösterecektir dinleme ) ve pasif ( non-dinleme ) bağlantıları (bazı hizmetler farklı makinesi / süreçten bağlantıları için bu portlara dinlerken) hem sunucu olarak davranan ve kurulan bağlantı noktalarını yani (bağlantıları bunlara kurulur Ana bilgisayar / hizmetin bir sunucu veya istemci olabileceğinden bağımsız olarak bağlantı noktaları)

Tüm TCP ve UDP bağlantı noktaları, yuva adı verilen bir kategoriye aittir ve bunlardan birçoğu vardır. Soket bilgilerini görüntülemek için kontrol edebilirsiniz man ss.


Teşekkürler. bunun -asunucu anlamına geldiğini ve kurduğunu yazdın . "Sunucu", bazı servisler tarafından dinlenen bağlantı noktaları anlamına mı geliyor? "Kurulmuş", bir istemcinin veya sunucunun bağlantı noktası olmasına bakılmaksızın mevcut bağlantıların olduğu bağlantı noktaları anlamına mı geliyor? O zaman ne tür portlar -agösterilmez?
Tim

Bu -aseçeneğin "tüm aktif" soketler anlamına geldiğini sanmıyorum ; sadece "hepsi" demek. netstat varsayılan olarak tüm aktif soketleri gösterir, ancak pasif soketleri dışarıda bırakır (açık, dinleme). -aSeçeneği kullanarak hem aktif hem de pasif soketler gösterilmektedir.
Egon Olieux

@EgonOlieux Teşekkürler. Düzeltilmiş dururum; cevabı düzenledi.
heemayl

@heemayl Cevabınızın ikinci kısmı hala doğru değil. "Dinleme" durumunda bir TCP soketi hiçbir zaman bir bağlantı olamaz; hiçbir şeye bağlı değil, sadece dinliyor. Bu nedenle TCP soketlerini dinlemek pasif soketler olarak da adlandırılır. Bir müşteri bir sunucudaki (dinleme) soketine bağlanmaya çalışırsa, müşteri ile bağlantı kurmak için sunucuda yeni bir soket oluşturulur. Kurulmuş bir bağlantının parçası olan sokete aktif soket denir.
Egon Olieux

3

Başka bir seçenek ss . Kullanımı çok daha kolay ....

Aşağıdaki komut yalnızca güncel dinleme yuvalarının bir listesini verir.

root@server:~# ss -l

    Netid  State      Recv-Q Send-Q                                     Local Address:Port                                                      Peer Address:Port   


u_dgr  UNCONN     0      0                                                      * 23353                                                                * 23352                
u_dgr  UNCONN     0      0                                                      * 568                                                                  * 362                  
u_dgr  UNCONN     0      0                                                      * 14836                                                                * 14837                
u_dgr  UNCONN     0      0                                                      * 20446                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 22877                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 504                                                                  * 347                  
u_dgr  UNCONN     0      0                                                      * 16298                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23343                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24125                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 24617                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 23352                                                                * 23353                
u_dgr  UNCONN     0      0                                                      * 23334                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 17113                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 16957                                                                * 369                  
u_dgr  UNCONN     0      0                                                      * 14793                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 23345                                                                * 362                  
u_dgr  UNCONN     0      0                                                      * 24070                                                                * 369                  
udp    UNCONN     0      0                                                      *:sunrpc                                                               *:*                    
udp    UNCONN     0      0                                                      *:981                                                                  *:*                    
udp    UNCONN     0      0                                                     :::sunrpc                                                              :::*                    
udp    UNCONN     0      0                                                     :::981                                                                 :::*                    
tcp    LISTEN     0      128                                            127.0.0.1:85                                                                   *:*                    
tcp    LISTEN     0      128                                                    *:ssh                                                                  *:*                    
tcp    LISTEN     0      128                                                    *:3128                                                                 *:*                    
tcp    LISTEN     0      100                                            127.0.0.1:smtp                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:8006                                                                 *:*                    
tcp    LISTEN     0      128                                                    *:sunrpc                                                               *:*                    
tcp    LISTEN     0      128                                                   :::ssh                                                                 :::*                    
tcp    LISTEN     0      100                                                  ::1:smtp                                                                :::*                    
tcp    LISTEN     0      128                                                   :::sunrpc                                                              :::*                    

1
Bunu bilmiyordum, teşekkürler zee
nick fox

2

Ya da bu saat kullanarak yardımcı olabilir, ardından görmek istediğiniz şeyle uğraşabilirsiniz.

sudo watch -d -n0 "netstat -atnp | grep ESTA"

sudo watch -d -n0 "netstat -tulnp | grep ESTA"

1
-a, -l ile çakışır -a KURULAN veya DİNLENMESİNTİR, hepsini atar ve -l sadece LISTENING'i alır, bu nedenle gerçekte '-ltnp' tcp, '-lunp' udp veya '-ltunp' tcp + udp
ModerateJavaScriptDev

1

Aslında hangi bağlantı noktalarını açtığınızı görmenin daha iyi bir yolu var. İle sorunu netstatya lsofda ağ yığınını sorgulamak ve aslında makineye bağlanmak yok ama onun yerine sistem üzerinde çalışan ne görmeye çalışıyorum olmasıdır. Daha iyi bir yaklaşım böyle kullanmaktır nmap:

nmap -sT -O localhost

Açık portları görmek için.


0
  1. Bu aralıktaki açılan bağlantı noktalarının listesini almak için bunu deneyin.

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
    
  2. Ve bu komut ne olduğunu gösterecek!

    cat /etc/services | grep {PORTNumber}
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.