文档章节

nginx Cannot assign requested address TIME_WAIT解决

千惊万喜
 千惊万喜
发布于 2016/12/09 14:01
字数 439
阅读 71
收藏 0

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 查看端口状态

“Cannot assign requested address.”是由于linux分配的客户端连接端口用尽,无法建立socket连接所致,虽然socket正常关闭,但是端口不是立即释放,而是处于TIME_WAIT状态,默认等待60s后才释放。

解决方法1 调低time_wait状态端口等待时间:

  1. 调低端口释放后的等待时间,默认为60s,修改为15~30s sysctl -w net.ipv4.tcp_fin_timeout=30
  2. 修改tcp/ip协议配置, 通过配置/proc/sys/net/ipv4/tcp_tw_resue, 默认为0,修改为1,释放TIME_WAIT端口给新连接使用 sysctl -w net.ipv4.tcp_timestamps=1
  3. 修改tcp/ip协议配置,快速回收socket资源,默认为0,修改为1 sysctl -w net.ipv4.tcp_tw_recycle=1

可能解决办法2--增加可用端口: CCH:~ # sysctl -a |grep port_range net.ipv4.ip_local_port_range = 50000 65000 -----意味着50000~65000端口可用

修改参数: $ vi /etc/sysctl.conf net.ipv4.ip_local_port_range = 10000 65000 -----意味着10000~65000端口可用

永久解决方案(重启有效)

$ vi /etc/sysctl.conf

加入

net.ipv4.ip_local_port_range = 1024 65535

net.ipv4.tcp_timestamps=1

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_tw_reuse=1

改完后,执行命令“sysctl -p”使参数生效,不需要reboot。

另外一种

vi /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse=1 #让TIME_WAIT状态可以重用,这样即使TIME_WAIT占满了所有端口,也不会拒绝新的请求造成障碍 默认是0

net.ipv4.tcp_tw_recycle=1 #让TIME_WAIT尽快回收 默认0

net.ipv4.tcp_fin_timeout=30

/sbin/sysctl -p 让修改生效

##linux文件打开数限制

sysctl -w fs.file-max=10485760

msysctl -w net.ipv4.tcp_rmem=1024

sysctl -w net.ipv4.tcp_wmem=1024

sysctl -w net.ipv4.ip_local_port_range='1024 65535' #

sysctl -w net.ipv4.tcp_tw_recycle=1

sysctl -w net.ipv4.tcp_tw_reuse=1

echo '* soft nofile 1048576' >> /etc/security/limits.conf

echo '* hard nofile 1048576' >> /etc/security/limits.conf

© 著作权归作者所有

共有 人打赏支持
千惊万喜
粉丝 4
博文 56
码字总数 15471
作品 0
海淀
程序员
高并发下,自己写的基于httpclient发送post请求的工具类,求高手分析代码中的问题

基于httpclient4.5.1写了一个发送http请求的工具类: 目前是每秒发送2000的post请求,服务器是一个apache服务器, 出现的问题有如下: 1.可能存在内存溢出,可能是httpclient没有关闭导致的,...

ahdkk
2016/09/29
1K
4
Can’t connect to MySQL server有关linux tcp连接优化

最近有2台web机器链接mysql有时会出现Can’t connect to MySQL server的情况,查看exception日志: 如下: [message:protected] => SQLSTATE[HY000] [2003] Can’t connect to MySQL server......

SANSOM
2013/07/30
0
0
ossutil报"Cannot assign requested address"解决方案

问题 某用户使用如下命令上传目录到OSS,中间隐去bucket name。 出现如下错误。 分析 原因 由于Linux分配的客户端连接端口用尽,无法建立socket连接所致,虽然socket正常关闭,但是端口不是立...

zuozhao
06/15
0
0
nginx 报错 99: Cannot assign requested address

nginx 报错 99: Cannot assign requested address net.ipv4.iplocalport_range = 10240 65535 >> /etc/sysctl.conf awk '{print $1}' log/test-access.log | sort | uniq -c | sort -nr | he......

wennan
2014/07/06
0
0
树莓派(Cannot assign requested address)的解决过程

树莓派一个无法分配被请求地址问题(Cannot assign requested address)的解决过程 问题描述 在用 加载 服务端时返回错误: 第一次尝试 先以 作为关键字在网上查了半天, 绝大多数的都说是连接太...

FreeBlues
2016/05/29
91
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

获取多个集合列表的笛卡尔积

获取多个集合笛卡尔积 电商中典型业务场景:商品搜索 单属性属性值之间为并查询 不同属性的属性值之间查询为与查询 import java.util.ArrayList;import java.util.List;/** * Created w...

键走偏锋
22分钟前
0
0
echarts 迁移地图 控制鼠标缩放大小比例

在网上找了好久没有找到解决方式,还是重新看了一下文档,终于找到的解决方案, zoom:1, //默认显示级别 scaleLimit:{min:1,max:3}, // 缩放级别 echarts 文档-配置项链接 http://echarts.b...

心驰
25分钟前
0
0
Boot2Docker ISO is out-of-date,

Boot2Docker ISO is out-of-date, downloading the latest release. 使用docker-machine时无法更新Boot2Docker ISO导致创建vm machine失败 解决方法:关闭网络,创建好之后再开启...

writeademo
33分钟前
0
0
在 Tomcat 中设置 Tapestry 框架的 html 热加载

如果开发中使用到了 Tapestry 这个框架,如果事先没有设置过的话,开发的时候 html 是不会热加载的,也就是说修改了 html 文件,不能刷新浏览器后立马看到修改完的效果,必须先重新启动应用服...

LeoXu
55分钟前
0
0
【微服务】开启巨石应用到微服务的探索

背景 在过去的一年时间里,我一直在从事一件事情,将现有的单体应用(巨石应用)向微服务改造。 接下来,将持续整理一些在微服务路上的学习与成长。 为什么要做微服务 单体应用,开发、部署简...

艳沐石
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部