Linux对外连接端口数限制

这两天做压力测试,发现了一个问题,当模拟TCP client对外发起连接数达到28000左右时,开始大量抛如下异常:

java.net.BindException:Cannot assign requested address

atsun.nio.ch.Net.connect0(Native Method)

atsun.nio.ch.Net.connect(Net.java:364)

atsun.nio.ch.Net.connect(Net.java:356)

atsun.nio.ch.UnixAsynchronousSocketChannelImpl.implConnect(UnixAsynchronousSocketChannelImpl.java:326)

atsun.nio.ch.AsynchronousSocketChannelImpl.connect(AsynchronousSocketChannelImpl.java:195)

atcom.aliyun.talk.mon.stack.comm.AsyncConnection.connect(AsyncConnection.java:85)

研究发现,Linux对外的随机分配端口是由一定限制的,理论上单机对外的端口最大值为65535,除去一些保留端口和被占用端口外,也应该在6W左右,但实际上单机建立对外连接时,默认不超过28232个连接。

执行以下命令就很清楚原因了:

$ cat /proc/sys/net/ipv4/ip_local_port_range

输出结果为:

32768  61000

这就是Linux随机分配端口的范围,如果在该范围内有被占用的端口,那么连接数肯定小于28232.如果想更改这个范围,可以执行以下命令:

#echo "10000 65535" > /proc/sys/net/ipv4/ip_local_port_range

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-30 01:40:36

Linux对外连接端口数限制的相关文章

Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样

百度随时就能搜,你就懒得搜下.http://tieba.baidu.com/p/671327617 Ssh tunnel通常能实现3种功能1) 加密网络传输2) 绕过防火墙3) 让位于广域网的机器连接到局域网内的机器 --------------------------------------------------------------------------------- Delphi能通过SSH登录Linux,连接MYSQL取数么? SSH是远程连接Linux的其中一种通道方式.目前Li

Linux开放1521端口允许网络连接Oracle Listener

症状: 1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动.   lsnrctl status  查看listener状态   lsnrctl start    启动Oracle listener 3. 客户端得到的错误信息通常是:ORA-12170: TNS:连接超时 这时,我们基本可以肯定是服务器没有开放1521端口(假设你用默认设置) 解决方法:   1. 假如你是在一个局域网环境,配置了防火墙.那么可以关闭Linux的防火墙.

linux中某个端口拒绝远程主机连接原因及解决方法

linux中某个端口拒绝远程主机连接原因及解决方法 问题描述: 比如在本机telent到192.168.8.170 主机的9000 端口,被拒绝. [[email protected] log]$ telnet 192.168.8.170 9000 Trying 192.168.8.170... telnet: connect to address 192.168.8.170: Connection refused 原因:原因有两个 一个是被防火墙拦截 或者该端口的监听地址为本机(127.0.0

Linux和Windows端口常用操作

Linux和Windows端口常用操作 一:简介 开发过程中常常会遇到端口被占用的问题.偶尔也会遇到明明服务器上tomcat正常运行.启动正常.运行正常.但是在外部就是访问不了!有时候我们清楚的知道是什么程序占用了端口.但是有的时候就不得不通过命令的方式来查看指定的端口到底被哪个程序占用了.还有较少的一种情况是这个端口到底有没有对外开放.尤其是在Linux当中. 二:Windows指定端口操作 1: 主要命令 主要命令(只做功能介绍.详细使用请 xxx /? 查看): a)     netsta

MYSQL连接端口被占引入文件路径错误

今天早上打算本地win7机器上用Wampserver搭建PHP环境,把自己的小程序配置上去.下载最新的wampserver 3.0.6版本安装后,发现mysql一直无法运行,以为是wampserver版本问题,随后又下载了相关2.4,2.5等相关版本安装,依旧没有解决,主要现象是mysql命令符中输入密码回车之后没有反应,随后命令符自动消失,另外就是在PHPMyAdmin中输入密码直接出现连接超时等的三条错误提示,或者是提示无法连接.后来我直接卸载了wampserver,改用phpStudy搭建

linux TCP UDP 端口映射 及DNS劫持

对于linux下的端口映射问题多出现在使用linux做为网关路由,用来连接ISP使用时并把公司的内网IP地址NAT成ISP提供的IP.保证内网所有主机可以共享一个公网IP来访问internet.但这样做的同时也会带来一个问题就是我们无法在办公室以后的网络中访问或管理我们内网的服务器.要解决这个问题就要在linux网关服务器上将ISP提供的IP的相关端口通过DNAT方式映射到我们内网服务器的开放端口上,即可实现在外网管理内网服务器. 情景1.公网为223.71.x.x,内网IP为172.17.17

linux下ssh端口的修改和登录

linux下ssh端口的修改和登录 首先修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,添加如下一行: Port 50000 然后保存退出 1.端口修改 执行/etc/init.d/sshd restart 这样SSH端口将同时工作在50000上. 2.防火墙修改 现在编辑防火墙配置:vi /etc/sysconfig/iptables 启用50000端口.添加如下一行 1 -A INPUT -m state --state N

WMware 下linux系统连接网络

近日因学习需要尝试安装Linux开源操作系统,当然是在虚拟机环境下安装,选择的Distribution是CentOS(Community Enterprise Operating System).用惯了Windows,初步用起来还是步履维艰,遇到的第一个问题就是安装好Linux操作系统之后连不上Internet.下面就这一问题的解决过程总结一下,由于博主对网络技术领域的知识知之甚少,下面关于原理方面的介绍属于个人理解,重点在于解决遇到的实际问题. 首先介绍一下VMware的网络连接方式.我们的主

禁止远程root登陆,更改远程连接端口

linux 远程连接的配置文件为:/etc/ssh/ssh_config  , 如想要禁止root用户登陆,更改连接端口可对此文件做如下设置: 1.首先创建一个普通用户如:  # useradd username # passwd username 2.vi /etc/ssh/ssh_config 做如下修改 1) 将Port 22  改为 Port  2345  (注意: 2345 为你自己想要设置的远程连接端口,可自己设置) 2) 将#PermitRootLogin no设置为: Permi