Unix sunucusunda ücretsiz olan bağlantı noktalarının listesi nasıl alınır


15

Solaris makinemdeki tüm bağlantı noktalarının her tür ağ iletişimi için ücretsiz olduğunu bilmek zorundayım.

netstat -aKomutu denedim . Ancak döndürülen bilgiler, yazdığım yeni bir uygulama için kullanabileceğim tüm bağlantı noktalarının inandırıcı bir sonucunu vermedi. Bu konuda sağlanan yardımı takdir edin.


Hangi sayısal aralıkta? Her zaman geçici bağlantı noktaları vardır ve bunlar sürekli değişir.
mdpc

Ya netstat -anikna olmamanın sonucu ne olacak? netstatkullanılan her şeyi listelemelidir. Diğer her şey (normalde binlerce bağlantı noktası!) Mevcuttur.
Celada

1
Ayrıca, bu bilgilere neden ihtiyacınız olduğunu bilmek de yardımcı olabilir. Bir soketi bağlarken her zaman çekirdeğin sizin için bir port atamasına izin vermeyi seçebilirsiniz, bu nedenle hangi portu aldığınız sürece aldığınız önemli değilse, manuel olarak bulmanız gerekmez.
Celada

Yanıtlar:


15

1: UDP veya TCP hizmeti uygulamak için anonim bağlantı noktaları (geçici bağlantı noktaları olarak da bilinir) kullanmamalısınız.

Varsayılan olarak, bu bağlantı noktaları 32768 - 65535 aralığındadır.

# ndd /dev/tcp tcp_smallest_anon_port
32768
# ndd /dev/tcp tcp_largest_anon_port 
65535

2: Hizmetiniz kök olarak çalışmıyorsa veya gerekli RBAC ayrıcalığına sahip değilse, ayrıcalıklı bir bağlantı noktası kullanmamalısınız. Varsayılan olarak 1 ile 1024 arasındaki tüm bağlantı noktaları ayrıcalıklıdır:

# ndd /dev/tcp tcp_smallest_nonpriv_port
1024

3: Ne yaptığınızı bilmiyorsanız, planladığınızdan farklı bir hizmet çalıştırması beklenen iyi bilinen bir bağlantı noktasını kullanmamalısınız. İyi bilinen bağlantı noktaları /etc/services. Örneğin:

# tail /etc/services
dtspc           6112/tcp                        # CDE subprocess control
fs              7100/tcp                        # Font server
solaris-audit   16162/tcp                       # Secure remote audit logging
servicetag      6481/udp
servicetag      6481/tcp
wnn6            22273/tcp                       # Wnn6 jserver
wnn6            22273/udp                       # Wnn6 jserver
rdc             121/tcp                         # SNDR server daemon
snmpd           161/udp        snmp             # Net-SNMP snmp daemon
swat            901/tcp                         # Samba Web Adm.Tool

4: Mevcut bir servis tarafından zaten kullanılan bir port kullanmamalısınız. Bunları koşu ile alabilirsiniz:

# netstat -an | grep LISTEN | nawk '{$0=$1;gsub(".*\\.","");print}' | sort -un

5: Son olarak, şu anda devre dışı bırakılmış ancak gelecekte etkinleştirilecek bir hizmet tarafından kullanılan bir bağlantı noktasını kullanmamalısınız. Bu uymak için en zor kısmı ...


10

Sisteminizde ilk 1024'ün kök ayrıcalıklı olduğu 1-65.535 bağlantı noktasını kullanabilirsiniz.

Bu nedenle, ücretsiz bağlantı noktasını bulmak yerine, aşağıdaki komutu kullanarak kullanılan bağlantı noktalarının listesini alabilirsiniz.

netstat -tunlep | grep LISTEN | awk '{print $4}'

Sonra 1-65535 arasındaki bağlantı noktaları dışında bu bağlantı noktalarını kullanabilirsiniz.


2
Kullandığınız netstatseçeneklerin bazıları Solaris netstatuygulaması tarafından desteklenmiyor .
jlliagre
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.