怎么限制某個程序的TCP連接數?
listen的backlog參數指定的是已經三次握手完成,達到了established狀態但是等待accept的隊列的容量。當這個容量超過上限的時候服務器端便不處理客戶端的三次握手了。這個隊列的容量當然不是樓主所說的并發連接數。
但是lisen的再后一道程序便是accept了。如果你想要的是在TCP并發連接數量超過上限的時候服務器不再處理了三次握手那么只有兩種辦法:
1.關閉listen的socket
2.自己修改tcp協議棧的實現,當然這個就比較麻煩了。
用iptables防火墻來限制tcp連接,
如下,限制用戶的tcp連接數為50
iptables -I INPUT-p tcp -m connlimit --connlimit-above 50 -j REJECT