阿里云
开发者分会场
发表主题 回复主题
  • 7741阅读
  • 0回复

[来自工单]Linux连接高端口提示“Cannot assign requested address”

发帖
26
云币
60
9fCO7AE0#  
问题描述: ssh 可以正常连接服务,ping也正常。但是执行telnet 高端口被提示Cannot assign requested address。其他测试主机可以正常连接。 V0T<eH<  
9<Ag1l  
j`Nh7+qs  
_/ Tlqzp  
1gk0l'.z  
?&\h;11T  
解决过程: u#!GMZJN  
khS/'b  
\ %_)_"Q  
进入被连接端内部,执行ss  统计,显示27017端口连接数有28248 6d};|#}  
j`hNZ%a  
'DeW<Sa~  
bZK+9IR  
_ flg Q  
g@}6N.]#  
Linux对外的随机分配端口是由一定限制的,理论上单机对外的端口最大值为65535,除去一些保留端口和被占用端口外,也应该在6W左右,但实际上单机建立对外连接时,默认不超过28232个连接。 J$#D:KaU:N  
{sl~2#,}b1  
L1rA T  
执行以下命令: J+0/ :00(  
,,Jjr[A_j  
x g{VP7  
引用
cat  /proc/sys/net/ipv4/ip_local_port_range
&b!vWX1N  
2*Va9HP!q  
nZ541o@t9  
输出结果为: tz"5+uuu  
K_Z+]]$#  
@|E;}:?u  
引用
32768   61000
|$Qp0vOA}  
,cPkx~w0  
j6RJC  
这就是Linux随机分配端口的范围,如果在该范围内有被占用的端口,那么连接数肯定小于28232。 219R&[cb  
如果想更改这个范围,可以执行以下命令: Kq8 (d`g}  
FoQ?U=er  
/i> ?i@O-  
引用
# echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range
:a=ro2NH  
?U}sQ;c$  
@>+^W&  
永久生效: fYb KmB  
$^] 9  
h\/^Aa0  
引用
# vim /etc/sysctl.conf =7FE/S  
net.ipv4.ip_local_ports_range= 10000 65535 CQj/e+eE4  
sysctl -p
>-UD]?>  
G~JC gi  
CM`x>J  
W]} #\\$z  
如果是想保留某个端口不被随机分配占用,最好的做法是将服务监听的端口以逗号分隔全部添加到ip_local_reserved_ports中,TCP/IP协议栈从ip_local_port_range中随机选取源端口时,会排除ip_local_reserved_ports中定义的端口: !}z%#$  
qw9e) `3$  
引用
$ cat /proc/sys/net/ipv4/ip_local_port_range v!nm &"  
32000 61000 <GSQ2bX[  
$ cat /proc/sys/net/ipv4/ip_local_reserved_ports mipi]*ZfXE  
8080,9148
q2[+-B)m  
:yd=No@  
zNNzsT8na  
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 75 - 8 = ?
上一个 下一个