Cannot assign requested address解決辦法


Cannot assign requested address.是由於linux分配的客戶端連接端口用盡,無法建立socket連接所致,雖然socket正常關閉,但是端口不是立即釋放,而是處於TIME_WAIT狀態,默認等待60s后才釋放。

調低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
    

增加可用端口

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端口可用

改完后,執行命令sysctl -p使參數生效,不需要reboot。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM