Cannot assign requested address解決辦法

版權聲明:轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
http://blog.csdn.net/wenshuangzhu/article/details/44060901


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

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章