日期:2014-05-16  浏览次数:20786 次

Linux默认的可用端口号不是1024到65535!
vi /etc/sysctl.conf 


添加下面一行:

引用
net.ipv4.ip_local_port_range = 1024 65535


然后执行:

sysctl -p


意思是告诉linux可以使用的端口是从1024到65535,不用编译内核就可以生效。

Linux默认的可用端口范围是:

引用
[root@PerfTestApp3 ~]# sysctl -a|grep ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

1 楼 Magicloud 2009-03-03  
改的目的是什么?
这个设置限制的是对外的连接,类似预分配策略。
2 楼 sdh5724 2009-03-03  
没有什么意义, 最多是傻冒的设计使用大规模 TCP 短连接, 造成本地端口不够用了。 因为DEFAULT情况是30秒TCP TIMEWAIT状态被释放。 当然可以修改到1秒, 但是风险是很大的。 这样的设计见多了, 2分钟TCP 端口全部被占用, 导致系统连接不上,
3 楼 CharlesCui 2009-03-08  
sdh5724 写道

没有什么意义, 最多是傻冒的设计使用大规模 TCP 短连接, 造成本地端口不够用了。 因为DEFAULT情况是30秒TCP TIMEWAIT状态被释放。 当然可以修改到1秒, 但是风险是很大的。 这样的设计见多了, 2分钟TCP 端口全部被占用, 导致系统连接不上,


你这个笨蛋,我们这里正好由一个大规模tcp短链接的应用,而且你们的api也将要在此应用平台上发布,你这都不知道啊?
4 楼 sdh5724 2009-03-08  
我不知道, 大规模短连接是不建议使用的, 莫名其妙的错误都会有。 我们这边的应用没有短连接的行为, 导致性能极其低下。 如果我知道有这样的应用, 肯定会要求修改。
5 楼 joshzhu 2009-03-09  
这个叫做Ephemeral port,在UNP第二章有讲到,实际上,它是一个TCP/IP协议栈实现相关的值,很多系统如BSD、Solaris、Linux都不同。
参考:http://en.wikipedia.org/wiki/Ephemeral_port
IANA的建议值是从49152到65535。