Bagaimana menemukan jumlah port terbuka di linux?


17

Bagaimana menemukan jumlah port terbuka di linux? Saya ingin melihat apakah saya kehabisan port. Juga, bagaimana cara melihat batas OS saya?


2
Apa yang Anda lakukan sehingga Anda takut kehabisan port?
MDMarra

Jawaban:


27

Di linux modern, gunakan utilitas ss (socket stats).

$ ss -s
Total: 10160 (kernel 10262)
TCP:   10349 (estab 8886, closed 408, orphaned 0, synrecv 0, timewait 393/0), ports 3147

Transport Total     IP        IPv6
*         10262     -         -        
RAW       0         0         0        
UDP       5         5         0        
TCP       9941      9941      0        
INET      9946      9946      0        
FRAG      0         0         0        

9
netstat -an | grep ESTABLISHED | wc -l

akan memberi Anda jumlah port terbuka, 32 dalam kasus saya.

cat /proc/sys/net/ipv4/ip_local_port_range

Akan mengembalikan sesuatu seperti:

32768 61000

yang berarti, 61000 - 32768 - $ OPENPORTS = AvailablePorts

Di kotak saya, itu:

61000-32768-32 = 28200 nomor port yang tersedia.


-a46 tidak bekerja. Ada bantuan?
erotsppa

distro apa yang kamu jalankan? (yang berfungsi di server ubuntu 10,04 LTS). Tentu saja, jika Anda tidak menginstal ipv6, maka gunakan saja netstat -a.
Grizly

Diuji pada kotak CentOS saya, sepertinya hang jika Anda tidak menggunakan "-n" untuk menghentikan resolusi nama. (netstat -an | grep ESTABLISHED | wc -l)
Grizly

Hanya melihat "ss" di bawah, itu luar biasa, tidak tahu tentang itu .. jauh lebih baik! Gunakan ip_local_port_range untuk menentukan apa yang dikonfigurasi untuk diizinkan oleh linux Anda, tetapi itu menunjukkan apa yang Anda gunakan saat ini dalam format yang jauh lebih mudah diakses!
Grizly

8

Seperti yang disebutkan orang lain, netstat adalah alat yang digunakan untuk menentukan port apa yang sedang digunakan saat ini. Adapun batasnya, jumlah port yang tersedia adalah integer unsigned 16bit yang memberi Anda kisaran 0-65535. Port yang tersedia untuk diikat aplikasi adalah port khusus / root yang dicadangkan (0-1024) plus apa pun yang tidak dicakup oleh rentang port sesaat Anda.

Anda dapat melihat porta sesaat Anda dengan menjalankan cat /proc/sys/net/ipv4/ip_local_port_range.

Untuk memodifikasi itu terus-menerus, Anda harus menambahkan / memodifikasi "net.ipv4.ip_local_port_range" di file /etc/sysctl.conf, atau secara interaktif dengan sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"


1
nit picking, tapi itu bukan batas ipv4. Ini adalah batas tcp / udp. dan yang dijalankan secara independen dari ipv4. (mis. ipv6 tidak melakukan apa pun untuk layer transport)
Joel K

Aaah, kamu benar. Saya telah menghapus referensi IPV4 dalam jawaban saya.
Alex

1

Secara pribadi saya lebih suka nmap. Anda dapat menemukan status semua port dengan mengeluarkan target nmap -P 1-65535. Kebanyakan distribusi harus menyediakan paket ini melalui manajer paket mereka.


1

Mencoba

# lsof -n -i -P 

Demi kelengkapan :)


0

netstat akan memungkinkan Anda untuk melihat port apa yang terbuka, lakukan "netstat -" untuk melihat yang paling sesuai dengan kebutuhan Anda.


1
netstat --inetakan sangat membantu.
Paul Tomblin

Maksud saya -? karakter yang hilang.
jer.salamon

atau baca halaman manual
MDMarra

Juga sertakan --inet6 (kependekan dari keduanya: -4 -6), untuk mendapatkan soket IPv6 dan soket ip-agnostik (yang terakhir adalah default pada host tumpukan ganda, lihat rfc 3493 bagian 3.7).
Tobu


0

netstat -tulnp

Argumen untuk program netstat tercantum di bawah ini:

*

  t - Show TCP
*

  u - Show UDP
*

  l - Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too)
*

  n - Do not resolve network IP address names or port numbers
*

  p - Show the process name that is listening on the port

0

gunakan perintah berikut pada terminal untuk memeriksa semua port

netstat -lntu

Untuk melihat status port tertentu, gunakan perintah berikut

netstat -an | grep ':6060'

ganti 6060 dengan nomor port spesifik Anda.

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.