Bagaimana cara memeriksa port yang dibuka / ditutup pada komputer saya?


135

Bagaimana cara memeriksa port yang dibuka / ditutup pada komputer saya?

Saya menggunakan netstat -abaris perintah.

  • Apakah status port "MENDENGARKAN" menunjukkan bahwa port terbuka?
  • Apakah ada port, yang tidak ditampilkan dalam output, ditutup?


2
@Justgivemeaname: nmapadalah alat untuk memeriksa port terbuka pada host lain . Jika Anda dapat menjalankan netstatmesin, jauh lebih cepat dan dapat diandalkan untuk menggunakannya.
David Foerster

@ DavidFoerster: Tidak tahu netstat, jadi saya mempelajarinya. Dikatakan di tautan bahwa itu harus digunakan dari host lain. Terima kasih!
Justgivemeaname

Jawaban:


164

Ada beberapa parameter netstatyang berguna untuk ini:

  • -latau --listeninghanya menunjukkan soket yang sedang mendengarkan koneksi masuk.
  • -aatau --allmenunjukkan semua soket yang sedang digunakan.
  • -tatau --tcpmenunjukkan soket tcp.
  • -uatau --udpmenunjukkan soket udp.
  • -natau --numericmenunjukkan host dan port sebagai angka, alih-alih menyelesaikan di dns dan mencari di / etc / services.

Anda menggunakan campuran ini untuk mendapatkan apa yang Anda inginkan. Untuk mengetahui nomor port mana yang sedang digunakan, gunakan salah satu dari ini:

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

Dalam output semua port yang disebutkan sedang digunakan baik mendengarkan koneksi masuk atau terhubung ke peer ** semua yang lain ditutup. Port TCP dan UDP memiliki lebar 16 bit (mulai dari 1-65535)

** Mereka juga dapat terhubung / terputus dari rekan.


71

Anda dapat menggunakan perintah ini:

netstat -tulnp | grep <port no>

Jika itu menunjukkan beberapa proses yang digunakan. Ditutup (tidak digunakan) jika tidak ada output.


20

Baris perintah alternatif lain yang mudah digunakan untuk mengetahui proses mana yang menggunakan port:

lsof -n -i4TCP:$PORT | grep LISTEN

Saya menambahkan fungsi selanjutnya di .bash_profile saya,

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

dan sekarang jalankan "pslisten 5060" untuk melihat siapa yang mengambil port SIP saya.

Ini berfungsi dengan Apple Mac OS X juga.


13

Apakah status port "MENDENGARKAN" menunjukkan bahwa port dibuka?

Iya. Ini berarti bahwa beberapa layanan mendengarkan port tersebut di komputer Anda untuk koneksi masuk, yaitu port ini terbuka untuk membuat koneksi baru.

Adakah port yang tidak ditampilkan dalam output menunjukkan bahwa itu ditutup?

Iya. Ingat netstat -aakan menunjukkan semua koneksi aktif ( mendengarkan ) dan pasif ( non-mendengarkan ) yaitu port yang bertindak sebagai server (beberapa layanan mendengarkan port ini untuk koneksi dari mesin / proses yang berbeda) dan terjalin (koneksi dibuat pada ini port terlepas dari fakta host / layanan dapat berupa server atau klien)

Semua port TCP dan UDP termasuk kategori yang disebut soket dan ada banyak sekali. Untuk melihat info soket, Anda dapat memeriksa man ss.


Terima kasih. Anda menulis itu -aberarti server dan didirikan. Apakah "server" berarti port yang didengarkan oleh beberapa layanan? Apakah "didirikan" berarti port di mana ada koneksi yang ada terlepas dari itu adalah port klien atau server? Lalu apa jenis port yang -atidak ditampilkan?
Tim

Saya tidak berpikir -aopsi berarti soket "semua aktif"; itu hanya berarti "semua". netstat menunjukkan semua soket aktif secara default, tetapi meninggalkan soket pasif (terbuka, mendengarkan). Dengan menggunakan -aopsi, kedua soket aktif dan pasif ditampilkan.
Egon Olieux

@EgonOlieux Terima kasih. Saya berdiri dikoreksi; edit jawabannya.
heemayl

@heemayl Bagian kedua dari jawaban Anda masih belum benar. Soket TCP dalam keadaan "mendengarkan" tidak akan pernah bisa menjadi koneksi; itu tidak terhubung dengan apa pun, itu hanya mendengarkan. Mendengarkan soket TCP juga disebut soket pasif karena ini. Jika klien mencoba untuk terhubung ke soket (mendengarkan) di server, soket baru akan dibuat di server untuk membuat koneksi dengan klien. Soket yang merupakan bagian dari koneksi yang sudah ada disebut soket aktif.
Egon Olieux

3

Pilihan lain adalah ss . Ini jauh lebih mudah digunakan ....

Perintah di bawah ini hanya akan menampilkan daftar soket mendengarkan saat ini.

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
Saya tidak tahu tentang ini, terima kasih zee
nick fox

2

Atau ini bisa membantu dengan menggunakan arloji, lalu bermain-main dengan apa yang ingin Anda lihat.

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

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

1
-sebuah konflik dengan -l, -a mengambil semua apakah DIDIRIKAN atau MENDENGARKAN, dan -l hanya mengambil MENDENGARKAN, jadi pada kenyataannya itu adalah '-ltnp' tcp, '-lunp' udp atau '-ltunp' tcp + udp
ModerateJavaScriptDev

1

Sebenarnya ada cara yang lebih baik untuk melihat port apa yang sudah Anda buka. Masalah dengan netstatatau lsofapakah mereka meminta tumpukan jaringan dan sebenarnya tidak terhubung ke mesin tetapi mencoba untuk melihat apa yang sedang berjalan pada sistem. Pendekatan yang lebih baik adalah menggunakan nmapseperti:

nmap -sT -O localhost

Untuk melihat port terbuka.


0
  1. Coba ini untuk mendapatkan daftar port yang dibuka dalam kisaran itu.

    for p in {1..1023}
    do
       (echo >/dev/tcp/localhost/$p) >/dev/null 2>&1 && echo "$p open"
    done
  2. Dan perintah ini akan menunjukkan apa itu!

    cat /etc/services | grep {PORTNumber}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.