博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cannot assign requested address的解决办法 (nginx报错)
阅读量:4215 次
发布时间:2019-05-26

本文共 1075 字,大约阅读时间需要 3 分钟。

xshell客户端连续进行100000访问,却出现以了Cannot assign requested address的问题,原因是客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端 口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAIT状态的连接。

解决办法:

执行命令修改如下2个内核参数
 
 

sysctl -w net.ipv4.tcp_timestamps=1  开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用

sysctl -w net.ipv4.tcp_tw_recycle=1  表示开启TCP连接中TIME-WAIT sockets的快速回收

只有root用户才能有修改这两个参数的权限

备注:
sysctl 只是临时的修改配置信息,可以直接修改 /etc/sysctl.conf 文件进行永久修改

sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。

    命令格式:

    sysctl [-n] [-e] -w variable=value

    sysctl [-n] [-e] -p (default /etc/sysctl.conf)

    sysctl [-n] [-e] -a

    常用参数的意义:

    -w   临时改变某个指定参数的值,如

         sysctl -w net.ipv4.ip_forward=1

    -a   显示所有的系统参数

    -p   从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

    如果仅仅是想临时改变某个系统参数的值,可以用两种方法来实现,例如想启用IP路由转发功能:

    1) #echo 1 > /proc/sys/net/ipv4/ip_forward

    2) #sysctl -w net.ipv4.ip_forward=1

    以上两种方法都可能立即开启路由功能,但如果系统重启,或执行了

    # service network restart

 命令,所设置的值即会丢失,如果想永久保留配置,可以修改/etc/sysctl.conf文件

 将 net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1

转载地址:http://nqnmi.baihongyu.com/

你可能感兴趣的文章
ios 应用内跳转微信
查看>>
iOS上如何让按钮文本左对齐问题
查看>>
Xcode8 兼容iOS 10 整理笔记
查看>>
iOS 枚举的巧用
查看>>
让你的 Xcode8 继续使用插件
查看>>
iOS去除导航栏和tabbar的1px横线
查看>>
iOS GitHub上常用第三方框架
查看>>
ios 隐藏cell分割线和自定义cell分割线颜色
查看>>
ios 图片保存到系统相册
查看>>
UIAlertController样式集合
查看>>
数据结构之—图
查看>>
计算机网络基础
查看>>
C++中内存(堆和栈)
查看>>
循环队列
查看>>
网络基础知识点总结1
查看>>
操作系统知识点总结1
查看>>
C++常见知识点总结
查看>>
Linux知识点小结One
查看>>
数据库知识点小结
查看>>
指针、内存和字节
查看>>