TCP/UDP的埠Dynamic Port Range問題
TCP/UDP的埠採用16bit儲存,所以埠範圍為0~65535.埠被分為3類使用:
Well Known ports: 0 ~ 1023
Registered Ports: 1024 ~ 49151
Dynamic and/or Private Ports: 49152 ~ 65535
作為客戶端連線,我們使用的Dynamic port,埠總數為 16384個。
Registered Ports: 1024 ~ 49151
Dynamic and/or Private Ports: 49152 ~ 65535
作為客戶端連線,我們使用的Dynamic port,埠總數為 16384個。
碰到過2次埠被佔用光的情況:
一次是Oracle RAC連線無法擴充套件,原因為HP NUMA架構下UDP開銷很大,導致當達到1500個連線左右的時候,用於CACHE FUSION的UDP埠被消耗光,導致session無法建立。
還有一次是因為網路問題,出現16000多個的FIN_WAIT_2狀態的FTP連線不釋放,導致TCP埠被佔光,Socket連線無法建立,程式無法fork。
一次是Oracle RAC連線無法擴充套件,原因為HP NUMA架構下UDP開銷很大,導致當達到1500個連線左右的時候,用於CACHE FUSION的UDP埠被消耗光,導致session無法建立。
還有一次是因為網路問題,出現16000多個的FIN_WAIT_2狀態的FTP連線不釋放,導致TCP埠被佔光,Socket連線無法建立,程式無法fork。
在不同的平臺下,對於Dynamic Port Range的預設值也是不同的。
################
AIX
預設的埠範圍
/usr/sbin/no -a | fgrep ephemeral
tcp_ephemeral_low = 32768
tcp_ephemeral_high = 65535
udp_ephemeral_low = 32768
udp_ephemeral_high = 65535
可以通過下面的命令來調整:
/usr/sbin/no -o tcp_ephemeral_low=49152 -o tcp_ephemeral_high=65535
這個命令在重啟後失效,固化的方法是將命令新增到/etc/rc.tcpip
AIX
預設的埠範圍
/usr/sbin/no -a | fgrep ephemeral
tcp_ephemeral_low = 32768
tcp_ephemeral_high = 65535
udp_ephemeral_low = 32768
udp_ephemeral_high = 65535
可以通過下面的命令來調整:
/usr/sbin/no -o tcp_ephemeral_low=49152 -o tcp_ephemeral_high=65535
這個命令在重啟後失效,固化的方法是將命令新增到/etc/rc.tcpip
################
HP-UX
預設的埠範圍
#ndd /dev/tcp tcp_smallest_anon_port
49152
#ndd /dev/tcp tcp_largest_anon_port
65535
#ndd /dev/udp udp_smallest_anon_port
49152
#ndd /dev/udp udp_largest_anon_port
65535
HP-UX
預設的埠範圍
#ndd /dev/tcp tcp_smallest_anon_port
49152
#ndd /dev/tcp tcp_largest_anon_port
65535
#ndd /dev/udp udp_smallest_anon_port
49152
#ndd /dev/udp udp_largest_anon_port
65535
/usr/bin/ndd -set /dev/tcp tcp_smallest_anon_port 50001
這個命令在重啟後失效,固化的方法是將配置新增到/etc/rc.config.d/nddconf
類似如下:
/etc/rc.config.d/nddconf:
這個命令在重啟後失效,固化的方法是將配置新增到/etc/rc.config.d/nddconf
類似如下:
/etc/rc.config.d/nddconf:
TRANSPORT_NAME[0]=tcp
NDD_NAME[0]=tcp_largest_anon_port
NDD_VALUE[0]=65535
NDD_NAME[0]=tcp_largest_anon_port
NDD_VALUE[0]=65535
TRANSPORT_NAME[1]=tcp
NDD_NAME[1]=tcp_smallest_anon_port
NDD_VALUE[1]=49152
NDD_NAME[1]=tcp_smallest_anon_port
NDD_VALUE[1]=49152
################
Linux
預設的埠範圍:
#cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
設定方法,在/etc/sysctl.conf中新增
net.ipv4.ip_local_port_range = 9000 65500
Linux
預設的埠範圍:
#cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
設定方法,在/etc/sysctl.conf中新增
net.ipv4.ip_local_port_range = 9000 65500
################
Solaris
Solaris
預設埠範圍:
/usr/sbin/ndd /dev/tcp tcp_smallest_anon_port
32768
/usr/sbin/ndd /dev/tcp tcp_largest_anon_port
65535
/usr/sbin/ndd /dev/udp udp_smallest_anon_port
32768
/usr/sbin/ndd /dev/udp udp_largest_anon_port
65535
/usr/sbin/ndd /dev/tcp tcp_smallest_anon_port
32768
/usr/sbin/ndd /dev/tcp tcp_largest_anon_port
65535
/usr/sbin/ndd /dev/udp udp_smallest_anon_port
32768
/usr/sbin/ndd /dev/udp udp_largest_anon_port
65535
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10867315/viewspace-712162/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【bash】關於 /dev/(tcp|udp)/${HOST}/${PORT}devTCPUDP
- tcp 埠的time_wait 問題TCPAI
- linux下nc掃描tcp,udp埠LinuxTCPUDP
- postgresql的埠portSQL
- windows 環境 tcp/udp 埠轉發(草稿待寫)WindowsTCPUDP
- 計算機網路 之 TCP和UDP的埠號解析計算機網路TCPUDP
- docker 修改port 埠Docker
- TCP和UDP可以使用同一個埠號嗎?TCPUDP
- MySQL range問題MySql
- TCP 和 UDPTCPUDP
- TCP和UDPTCPUDP
- TCP vs UDPTCPUDP
- UDP與TCPUDPTCP
- TCP與UDPTCPUDP
- MQTT是TCP還是UDP?TCP與UDP區別MQQTTCPUDP
- TCP連線時動態埠的相關問題說明TCP
- Nginx基於TCP/UDP埠的四層負載均衡(stream模組)配置梳理NginxTCPUDP負載
- 修改linux telnet的埠portLinux
- TCP與UDP的區別TCPUDP
- UDP與TCP的區別UDPTCP
- UDP和TCP的差異UDPTCP
- tcp和udp的區別TCPUDP
- TCP 還是 UDP?TCPUDP
- Caused by: java.lang.IllegalArgumentException: port out of range:-1JavaException
- linux上大量tcp埠處於TIME_WAIT的問題LinuxTCPAI
- TCP和UDP是如何工作的TCPUDP
- UDP和TCP以及HTTPUDPTCPHTTP
- TCP和UDP比較TCPUDP
- TCP和UDP協議TCPUDP協議
- .NET TCP、UDP、Socket、WebSocketTCPUDPWeb
- TCP和UDP對比TCPUDP
- because it is a JDK dynamic proxy that implements 問題JDK
- php中TCP和UDP的區別PHPTCPUDP
- python 中的UDP和TCP(1)PythonUDPTCP
- TCP會被UDP取代麼?TCPUDP
- TCP/UDP對比總結TCPUDP
- UDP轉TCP隧道工具udptunnelUDPTCP
- tcp和udp使用總結TCPUDP