Cannot assign requested address出现的原因及解决方案
  

牵网线的 57683人觉得有帮助

{{ttag.title}}

今天启动服务时,服务显示请求服务时,出现Cannot assign requested address错误

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

client端频繁建立连接,而端口释放较慢,导致建立新连接时无可用端口。
  1. netstat -a|grep TIME_WAIT
  2. tcp        0      0 e100069210180.zmf:49477     e100069202104.zmf.tbs:websm TIME_WAIT   
  3. tcp        0      0 e100069210180.zmf:49481     e100069202104.zmf.tbs:websm TIME_WAIT   
  4. tcp        0      0 e100069210180.zmf:49469     e100069202104.zmf.tbs:websm TIME_WAIT   
  5. tcp        0      0 e100069210180.zmf:49505     e100069202104.zmf.tbs:websm TIME_WAIT   
  6. tcp        0      0 e100069210180.zmf:49547     e100069202104.zmf.tbs:websm TIME_WAIT   
  7. tcp        0      0 e100069210180.zmf:49513     e100069202104.zmf.tbs:websm TIME_WAIT   
  8. tcp        0      0 e100069210180.zmf:49543     e100069202104.zmf.tbs:websm TIME_WAIT   
  9. tcp        0      0 e100069210180.zmf:49571     e100069202104.zmf.tbs:websm TIME_WAIT   
  10. tcp        0      0 e100069210180.zmf:49488     e100069202104.zmf.tbs:websm TIME_WAIT   
  11. tcp        0      0 e100069210180.zmf:49582     e100069202104.zmf.tbs:websm TIME_WAIT   
  12. tcp        0      0 e100069210180.zmf:49476     e100069202104.zmf.tbs:websm TIME_WAIT   
  13. tcp        0      0 e100069210180.zmf:49462     e100069202104.zmf.tbs:websm TIME_WAIT   
  14. tcp        0      0 e100069210180.zmf:49561     e100069202104.zmf.tbs:websm TIME_WAIT   
  15. tcp        0      0 e100069210180.zmf:49259     e100069202104.zmf.tbs:websm TIME_WAIT   
  16. tcp        0      0 e100069210180.zmf:49371     e100069202104.zmf.tbs:websm TIME_WAIT   
  17. tcp        0      0 e100069210180.zmf:49455     e100069202104.zmf.tbs:websm TIME_WAIT   
  18. tcp        0      0 e100069210180.zmf:49572     e100069202104.zmf.tbs:websm TIME_WAIT   
  19. tcp        0      0 e100069210180.zmf:49509     e100069202104.zmf.tbs:websm TIME_WAIT   
  20. tcp        0      0 e100069210180.zmf:49546     e100069202104.zmf.tbs:websm TIME_WAIT   
  21. tcp        0      0 e100069210180.zmf:49539     e100069202104.zmf.tbs:websm TIME_WAIT   
  22. tcp        0      0 e100069210180.zmf:49468     e100069202104.zmf.tbs:websm TIME_WAIT   
  23. tcp        0      0 e100069210180.zmf:49496     e100069202104.zmf.tbs:websm TIME_WAIT   
  24. tcp        0      0 e100069210180.zmf:49313     e100069202104.zmf.tbs:websm TIME_WAIT   
  25. tcp        0      0 e100069210180.zmf:49479     e100069202104.zmf.tbs:websm TIME_WAIT   
  26. tcp        0      0 e100069210180.zmf:49486     e100069202104.zmf.tbs:websm TIME_WAIT   
  27. tcp        0      0 e100069210180.zmf:49452     e100069202104.zmf.tbs:websm TIME_WAIT   
  28. tcp        0      0 e100069210180.zmf:49500     e100069202104.zmf.tbs:websm TIME_WAIT   
  29. tcp        0      0 e100069210180.zmf:49447     e100069202104.zmf.tbs:websm TIME_WAIT   
  30. tcp        0      0 e100069210180.zmf:49580     e100069202104.zmf.tbs:websm TIME_WAIT   
  31. tcp        0      0 e100069210180.zmf:49565     e100069202104.zmf.tbs:websm TIME_WAIT   
  32. tcp        0      0 e100069210180.zmf:49454     e100069202104.zmf.tbs:websm TIME_WAIT   
  33. tcp        0      0 e100069210180.zmf:49499     e100069202104.zmf.tbs:websm TIME_WAIT   
  34. tcp        0      0 e100069210180.zmf:49494     e100069202104.zmf.tbs:websm TIME_WAIT   
  35. tcp        0      0 e100069210180.zmf:49591     e100069202104.zmf.tbs:websm TIME_WAIT   
  36. tcp        0      0 e100069210180.zmf:49566     e100069202104.zmf.tbs:websm TIME_WAIT   
  37. tcp        0      0 e100069210180.zmf:49557     e100069202104.zmf.tbs:websm TIME_WAIT   
  38. tcp        0      0 e100069210180.zmf:49495     e100069202104.zmf.tbs:websm TIME_WAIT
复制代码

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

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

  3. 修改参数:
  4. $ vi /etc/sysctl.conf
  5. net.ipv4.ip_local_port_range = 10000     65000      -----意味着10000~65000端口可用
复制代码

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

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

平凡的小网工 发表于 2022-6-12 17:04
  
楼主的文章图文并茂,清晰易懂,看完这波操作可以轻松上手了,如遇到问题再向楼主请教~
一个无趣的人 发表于 2022-7-25 11:23
  
楼主的文章图文并茂,清晰易懂,看完这波操作可以轻松上手了,如遇到问题再向楼主请教~
好懒 发表于 2023-4-20 09:50
  
楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢你!在看完这帖子以后,我没有立即回复,因为我生怕我庸俗不堪的回复会玷污了这社区少有的帖子。但是我还是回复了,因为觉得如果不能在如此精彩的帖子后面留下自己的网名,那我会遗憾终生的!
天青色 发表于 2023-6-12 10:33
  
每日一学,坚持打卡。
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
干货满满
技术笔记
新版本体验
标准化排查
产品连连看
技术晨报
GIF动图学习
安装部署配置
技术咨询
功能体验
信服课堂视频
玩转零信任
用户认证
2023技术争霸赛专题
自助服务平台操作指引
运维工具
答题自测
解决方案
VPN 对接
专家分享
社区帮助指南
通用技术
秒懂零信任
每周精选
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
云计算知识
原创分享
sangfor周刊
项目案例
SANGFOR资讯
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播

本版版主

12
185
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人