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

java.net.BindException: Cannot assign requested address

at sun.nio.ch.Net.connect0(Native Method)

at sun.nio.ch.Net.connect(Net.java:364)

at sun.nio.ch.Net.connect(Net.java:356)

at sun.nio.ch.UnixAsynchronousSocketChannelImpl.implConnect(UnixAsynchronousSocketChannelImpl.java:326)

at sun.nio.ch.AsynchronousSocketChannelImpl.connect(AsynchronousSocketChannelImpl.java:195)

at com.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

转载于:https://blog.51cto.com/tenderrain/1753399

Linux对外连接端口数限制相关推荐

  1. 修改Linux SSH连接端口和禁用IP,安装DDoS deflate

    测试系统:centos7 修改连接端口 修改配置文件 vi /etc/ssh/sshd_config 去掉port 22的注释,添加新的端口配置 port your_port_num 自定义端口选择建 ...

  2. linux下修改ssh默认的连接端口及禁止root远程连接等

    一.背景 还是来源于一篇博客,博主的服务器被入侵者无情入侵,所用的手段就是先获取root的密码,然后远程连接root.那么如果我们修改ssh默认连接的端口,并且禁止root远程连接的话,是不是就稍微安 ...

  3. linux 开放1701端口,长连接及Linux 查看长连接端口

    长连接及Linux 查看长连接端口 [日期:2009-02-10] 来源:Linux公社 作者:Linuxidc [字体:大 中 小] unix  3      [ ]         流       ...

  4. Linux FTP 21端口始终无法连接的问题

    记录一下出现的问题 环境如下 环境如下 软件 版本 Linux Centos7.5 ftp软件 Pure-ftpd 宝塔Panel 6.9.9 安装完下面这个插件之后吧,进行了一系列常规设置 1.首先 ...

  5. Linux打开端口1521,Linux开放1521端口允许网络连接Oracle Listener

    症状: 1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动.   lsnrctl status  查看listener状态   lsnrct ...

  6. linux1521端口不通,Linux开放1521端口允许网络连接Oracle Listene

    症状: 1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动. lsnrctl status  查看listener状态 lsnrctl st ...

  7. Kali Linux渗透测试之端口扫描(一)——UDP、TCP、隐蔽端口扫描、全连接端口扫描

    端口扫描 二.三.四层发现的目的就是发现存活的IP,在存活的IP上面,展开进一步的扫描,及端口扫描,发现存活主机上存在着哪些开放的端口,端口后面就对应着各种各样的应用程序,应用程序的漏洞都是通过端口体 ...

  8. rabbitmq linux端口,修改rabbitmq的连接端口

    rabbitmq的默认连接端口是5672,如果要修改的话,可以通过配置文件修改 当然一般情况下都会遇到坑 默认配置文件地址:安装目录下的etc 就这样一个东东 然后为了怕改错复制一份出来保留,就可以把 ...

  9. linux删除80端口,linux下解决80端口被占用

    安装一个nginx服务,在启动的时候报80端口被占用了,我们来检查一下有哪些服务占用了80端口 首先我们查一下占用80端口的有哪些服务,netstat -lnp|grep 80 查看80端口被那些服务 ...

最新文章

  1. bitbucket迁移
  2. 授予数据库账号dba权限_从自建Oracle迁移至云原生数据仓库AnalyticDB PostgreSQL
  3. mysql一对多代码_MySQL实现一对多查询的代码示例
  4. (转)CentOs 设置静态IP 方法
  5. 《MySQL必知必会》读书笔记_3
  6. python 两两组合
  7. Java面试复习大纲2.0(持续更新)
  8. SoapUI接口测试——关联——参数化
  9. 进程的同步、互斥、通信的区别,进程与线程同步的区别
  10. H5+springboot(集成ffmpeg)实现前端视频录制以及webm格式转mp4
  11. iOS 下载和播放 M3U8
  12. mysql 磁盘已满_记一次 mysql 磁盘满解决过程
  13. Mac 上的系统监控工具,可以实时监控系统的 CPU 使用率、内存使用率、硬盘使用、网速、电池等信息
  14. Ubuntu系统下 .7z 文件压缩解压命令
  15. iOS开发之观察者模式
  16. 计算机配置更新太慢,电脑更新速度慢怎么办
  17. 一、Composer下载安装
  18. 使用docker安装zookeeper
  19. 把xml数据集 转为 BDD100K 的json数据格式
  20. Echarts 根据页面宽度自适应

热门文章

  1. JauntVR中文版登陆小米商店,首波内容有《五十度黑》
  2. 软件工程作业 - wordcount
  3. git常见使用场景总结
  4. EJB实体Bean怎样和数据库中表关联?
  5. varnish 4.0 官方文档翻译12-VCL
  6. Hard commits, soft commits and transaction logs
  7. shareSDK(分享第三方库)的 使用
  8. ExtJs 备忘录(6)—— GirdPanl表格(二) [ 搜索分页 ]
  9. C/C++ 程序设计员应聘常见面试试题深入剖析
  10. linux下源码安装rabbitMq