網管人員常會透過ifconfig /all 查來看目前系統的IP設定狀況,
但每次只要在有啟用IPv6的電腦,指令輸入後,就會有一長串的
介面,不易觀看看,既然沒用到就關了它吧。
微軟有提供快速關閉的Fix執行檔,也有手動設定說明,
參考
How to disable IPv6 or its components in Windows
https://support.microsoft.com/en-us/kb/929852
關閉 6to4 & Teredo adapters
netsh int 6to4 set state state=disabled
netsh int teredo set state type=disabled
2015年7月2日 星期四
2014年8月6日 星期三
清除本機DNS暫存(DNS cache)
在做網域名稱除錯時,有時明明已在經DNS主機上修改了網域名稱對應的記錄,但在自己的電腦瀏覽網域或網址,還是連線到舊的IP位址.
通常會發生樣的狀況,大都是使用者指定的DNS主機上的解析資料都還是舊的,未到達網域權威主機設定的TTL到期時間,因此除時間到,
否則該DNS主機並不會再重新去詢該網域的權威主機取得最近的網域對應記錄,另一個問題可能是本機的DNS Cache也有可能造成,清除
本機的DNS Cache方式如下:
Windows :
Linux Ubuntu:
Windows :
c:\> ipconfig /flushdns
Linux Ubuntu:
/etc/init.d/nscd restart
2014年6月5日 星期四
Windows中存在大量CLOSE_WAIT
CLOSE_WAIT狀態的生成原因
如果是CLIENT端主動斷掉當前連接的話,那麼雙方關閉這個TCP連接共需要四個p:
Client ---> FIN ---> Server ## Client 送出 Fin封包給Server
Client <--- ACK <--- Server ## Server 收到結束請求後,會送出確認結束封包給Client端
這時候Client端處於FIN_WAIT_2狀態;而Server 程序處於CLOSE_WAIT狀態。
程序: Client ---> FIN ---> Server
狀態: FIN_WAIT_2 //CLIENT送出結束請求封包FIN, 等待Server的結束請求ACK封包
這時Server 發送FIN給Client,Server 就成為LAST_ACK狀態。
程序: Client <--- ACK <--- Server
狀態: FIN_WAIT_2 LAST_ACK // Server 回覆CLIENT端的結束請求ACK封包
Client回應了ACK,那麼Server 才會成為CLOSED狀態。
程序: Client ---> ACK ---> Server
狀態: CLOSED // CLIENT 回覆SERVER ACK封包
Linux調效方式
預設設定
tcp_fin_timeout 180
tcp_keepalive_time 7200
tcp_window_scaling 1
tcp_sack 1
tcp_timestamps 1
建議值
修改方式1 編輯 /etc/sysctl.conf ,修改下列設定值:
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 30
# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800
# Turn off tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0
#Turn off tcp_timestamps
net.ipv4.tcp_timestamps = 0
修改方式2 編輯 /etc/rc.local , 加入下列設定 :
echo "30">/proc/sys/net/ipv4/tcp_fin_timeout
echo "1800">/proc/sys/net/ipv4/tcp_keepalive_time
echo "0">/proc/sys/net/ipv4/tcp_window_scaling
echo "0">/proc/sys/net/ipv4/tcp_sack
echo "0">/proc/sys/net/ipv4/tcp_timestamps
上述的設定能增加平台可處理的 TCP/IP 連接的數量,縮短服務器在終止失效連接前的等待時間.
參數說明:
net.ipv4.tcp_syncookies = 1 表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。
net.ipv4.tcp_keepalive_time = 1200 表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鐘。
net.ipv4.ip_local_port_range = 1024 65000 表示用於向外連接的端口範圍。缺省情況下很小:32768到61000,改為1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。
net.ipv4.tcp_max_tw_buckets = 5000 表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除並打印警告信息。默認為180000,改為5000。對於Apache、Nginx等服務器,上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對於Squid,效果卻不大。此項參數可以控制TIME_WAIT套接字的最大數量,避免Squid服務器被大量的TIME_WAIT套接字拖死。
執行以下命令使配置生效:
/sbin/sysctl -p
http://blogs.msdn.com/b/spike/archive/2008/10/09/tcp-connections-hanging-in-the-close-wait-and-fin-wait-2-state.aspx
訂閱:
文章 (Atom)