Unixサーバーで空いているポートのリストを取得する方法


15

Solarisマシンのすべてのポートがどのような種類のネットワーク通信にも自由に使用できるかを知る必要があります。

netstat -aコマンドを試しました。しかし、返された情報は、私が書いている新しいアプリケーションに使用できるすべてのポートの説得力のある結果を与えませんでした。この点で提供される支援に感謝します。


どの数値範囲内ですか?使用中の一時ポートは常に存在し、これらは常に変化します。
mdpc 14年

netstat -an納得できなかった結果はどうですか?netstat使用されているすべてをリストする必要があります。他のすべて(通常は数千のポート!)が利用可能です。
セラダ14年

1
また、この情報が必要な理由を知ることが役立つ場合があります。ソケットをバインドするときは、カーネルにポートを割り当てるようにいつでも選択できるため、ポートを取得する限り、取得するポートを気にしない場合は、手動でポートを見つける必要はありません。
セラダ14年

回答:


15

1:匿名ポート(別名一時ポート)を使用してUDPまたはTCPサービスを実装しないでください。

デフォルトでは、これらのポートの範囲は32768〜65535です。

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

2:サービスがルートとして実行されている場合、または必要なRBAC特権を持っている場合を除き、特権ポートを使用しないでください。デフォルトでは、1〜1024のすべてのポートに特権があります。

# ndd /dev/tcp tcp_smallest_nonpriv_port
1024

3:自分が何をしているかわからない限り、予定しているサービスとは異なるサービスを実行することが予想される既知のポートを使用しないでください。既知のポートはにリストされてい/etc/servicesます。例えば:

# 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:既存のサービスで既に使用されているポートを使用しないでください。これらを実行すると取得できます:

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

5:最後に、現在無効になっているサービスで使用されているポートを使用するべきではありませんが、将来有効になる可能性があります。これは、準拠するのが最も難しい部分です...


10

システムで1〜65,535個のポートを使用できます。最初の1024個はルート特権があります。

そのため、空きポートを見つける代わりに、以下のコマンドを使用して使用済みポートのリストを取得できます

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

その後、これらのポートを除く1〜65535の任意のポートを使用できます。


2
netstat使用するオプションの一部は、Solaris netstat実装ではサポートされていません。
jlliagre 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.