Bagaimana saya bisa melihat port apa yang terbuka di mesin saya?

148

Saya ingin melihat port apa yang terbuka pada komputer saya, mis. Port apa yang didengarkan oleh mesin saya. Misalnya port 80 jika saya telah menginstal server web, dan sebagainya.

Apakah ada perintah untuk ini?

Jonas
sumber

Jawaban:

113

nmap Instal nmap

Nmap ("Network Mapper") adalah utilitas sumber terbuka dan gratis untuk eksplorasi jaringan atau audit keamanan

nmap 192.168.1.33 PC internal atau nmap external ip address

informasi lebih lanjut man nmap

hhlp
sumber
11
Terima kasih, nmap localhostbekerja dengan baik.
Jonas
11
Ingatlah bahwa ada perbedaan antara nmap localhostdan nmap 192.168.0.3(atau apa pun mesin IP Anda)
LassePoulsen
6
Saya pikir netstat adalah jawaban yang lebih baik untuk ini. netstat akan mencantumkan apa yang didengarkan sistem secara langsung, dan tanpa menggunakan aplikasi tambahan atau melakukan panggilan yang tidak perlu melalui localhost atau memikirkan jaringan.
Mathieu Trudel-Lapierre
2
Ini bodoh. Jika Anda memiliki akses ke komputer, gunakan saja netstat -ln. Anda akan langsung melihat semua port terbuka.
Alexis Wilke
1
nmap localhosttidak menemukan layanan yang hanya terikat pada localhost. Sebagai contoh, saya menjalankan influxddengan bind-address:localhost:8086. Itu tidak muncul sudo nmap localhost, tetapi muncul di sudo netstat -tulpn.
Dan Dascalescu
279

Saya selalu menggunakan ini:

sudo netstat -ntlp | grep LISTEN
SiLeNCeD
sumber
4
sudo netstat -ntlp | grep LISTEN... gunakan sudosebaliknya ... pid tidak akan dicetak.
Rafaf Tahsin
6
-lsudah menyaring untuk mendengarkan. grep LISTENtidak akan membantu selain menyembunyikan 2 baris informasi header.
Dan Dascalescu
3
-t: tcp -l,: soket pendengaran,: -ptampilkan pid dan nama program,: -ncetak 127.0.0.1:80alih-alih localhost:http. Referensi: linux.die.net/man/8/netstat
Rick
1
instal netstatdengansudo apt-get install net-tools
RichArt
2
Perintah yang diperluas adalah sudo netstat --tcp --listening --programs --numeric. Tidak perlu menggunakan grepkecuali Anda ingin menghilangkan tajuk kolom.
Patrick Dark
60

Cara bagus lainnya untuk mengetahui port apa yang sedang mendengarkan dan apa aturan firewall Anda:

  • sudo netstat -tulpn

  • sudo ufw status

tidak akan
sumber
Saya mengubah jawabannya nmaplagi, kegunaan netstatadalah omong kosong.
Jonas
2
@Jonas: lihat komentar saya di bawah jawaban nmap. Itu tidak akan mencantumkan layanan yang mengikat ke localhost saja.
Dan Dascalescu
27

Untuk membuat daftar port terbuka gunakan netstatperintah.

Sebagai contoh:

    $ sudo netstat -tulpn | grep LISTEN
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      5452/dnsmasq    
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1037/cupsd      
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1037/cupsd

Dalam contoh di atas tiga layanan terikat ke alamat loopback.

Layanan IPv4 terikat ke alamat loopback "127.0.0.1" hanya tersedia di mesin lokal. Alamat loopback setara untuk IPv6 adalah ":: 1". Alamat IPv4 "0.0.0.0" berarti "alamat IP apa saja", yang berarti bahwa mesin lain berpotensi terhubung ke antarmuka jaringan yang dikonfigurasikan secara lokal pada port tertentu.

Metode lain adalah dengan menggunakan lsofperintah:

    $ sudo lsof -nP -i | grep LISTEN
    cupsd     1037   root    9u  IPv6  11276      0t0  TCP [::1]:631 (LISTEN)
    cupsd     1037   root   10u  IPv4  11277      0t0  TCP 127.0.0.1:631 (LISTEN)
    dnsmasq   5452 nobody    5u  IPv4 212707      0t0  TCP 127.0.0.1:53 (LISTEN)

Untuk lebih jelasnya lihat man netstatatau man lsof.

inetpro
sumber
3
Saya pikir -lpilihannya adalah mendaftar LISTENport. Jadi grep akan berlebihan di sini ?!
Alexis Wilke
24

Ini cukup untuk menunjukkan bahwa ada proses mendengarkan pada alamat IP 0.0.0.0(diperlukan sehingga akan membalas permintaan apa pun) pada port 80 (nomor port server web standar). Dalam kasus saya ini menunjukkan itu adalah server weblighttpd

$ sudo netstat -ntlp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          2495/lighttpd

Jika nanti Anda ingin memastikan bahwa satu-satunya hal yang Anda izinkan melalui firewall Anda adalah port 80 Saya sering menggunakan ShieldsUp dari www.grc.com untuk melakukan tes firewall.

rstonehouse
sumber
11

sudo iptables -Lakan mencantumkan aturan port untuk pc Anda. Perhatikan bahwa jika Anda menggunakan firewall ufw atau shorewall, hasilnya mungkin sulit dibaca. Dalam hal ini lebih baik digunakan sudo ufw statusmisalnya.

Ini tidak terlalu berguna dengan sendirinya karena bahkan jika port terbuka akses masih akan ditolak jika tidak ada proses mendengarkan pada port itu.

Liedeman Ciaran
sumber
4

Jika Anda mencari pemantauan berkesinambungan port untuk mesin server atau lokal, saya pikir Anda juga dapat menggunakan versi grafis nmap yaitu Zenmap untuk versi yang lebih terperinci.

Zenmap adalah antarmuka pengguna grafis resmi (GUI) untuk Nmap Security Scanner.

Mendukung yang tersedia (Linux, Windows, Mac OS X, BSD, dll.)

Lihat tampilan alat ini:

masukkan deskripsi gambar di sini

Vishal G
sumber