Ò»¡¢ÍøÂç“ÒþÐÎɱÊÖ”£ºDNS½Ù³ÖÓëMTUÒì³£Òý·¢±ÀÀ£
²¿·ÖÍæ¼Ò¼´Ê¹Ó²¼þÅäÖôï±ê¡¢ÓÎÏ·ÎļþÍêÕû£¬ÈÔ»áÔâÓö¡¶ÄæÕ½¡·²»Ã÷ÔÒòËÀ»ú¡£ÕâÀàÎÊÌâÍùÍùÓëÍøÂç²ãµÄÒþ±Î³åÍ»Ïà¹Ø£¬ÓÈÆäÊÇDNS½Ù³Ö¡¢MTUÖµ²»Æ¥Åä»òÍøÂçÐÒéÕ»Òì³£¡£
DNS½Ù³ÖµÄ“ºûµûЧӦ”
µäÐÍÏÖÏó£º
ÓÎÏ·¼ÓÔØÊ±¿¨ÔÚ“³õʼ»¯ÍøÂçÁ¬½Ó”½çÃæ£¬»òÍÅսʱͻȻºÚÆÁ¡£
ä¯ÀÀÆ÷·ÃÎÊÆäËûÍøÕ¾Õý³££¬µ«ÓÎϷרÓÐÐÒ飨ÈçUDP 7899£©±»½Ù³Ö¡£
¸ùÔ´£º
±¾µØDNS·þÎñÆ÷·µ»Ø´íÎóIP£¨ÈçÔËÓªÉÌ¹ã¸æ×¢È룩£¬µ¼ÖÂÓÎÏ·¿Í»§¶ËÁ¬½ÓÒì³£·þÎñÆ÷£¬´¥·¢SSLÎÕÊÖʧ°Ü»òÊý¾Ý°ü³¬Ê±¡£
MTUÖµ“¹ýÔØ”µ¼ÖÂÊý¾Ý°ü·ÖƬ
±íÏÖ£º
ÓÎÏ·ÖÐÆµ·±³öÏÖ“ÍøÂç¶¶¶¯”£¬RTT£¨ÑÓ³Ù£©²¨¶¯¾çÁÒ£¬ÉõÖÁ´¥·¢“ÍøÂç²»¿É´ï”´íÎó¡£
ÔÀí£º
±¾µØÍøÂçMTU£¨×î´ó´«Êäµ¥Ôª£©ÓëÓÎÏ··þÎñÆ÷²»Æ¥Å䣨ÈçPPPoE²¦ºÅδ¼õ14×Ö½Ú£©£¬µ¼ÖÂÊý¾Ý°ü·ÖƬ£¬GPUäÖȾÓëÍøÂç½ÓÊÕÏ̲߳»Í¬²½¡£
TCP/IPÐÒéÕ»“ÄÚ´æÐ¹Â©”
¼ì²â·½·¨£º
ʹÓÃWireshark×¥°ü·¢ÏÖ´óÁ¿[TCP Retransmission]»ò[TCP ZeroWindow]±êÖ¾£¬ÇÒÓÎÏ·½ø³ÌÕ¼Óö˿ÚÊýÒì³£Ôö³¤¡£
ÔÒò£º
ϵͳTCP/IPÐÒéÕ»³¤Ê±¼äÔËÐкó£¬SocketÁ¬½ÓδÕýÈ·ÊÍ·Å£¬Õ¼ÓÃÄÚ´æÖ±ÖÁ±ÀÀ£¡£
¶þ¡¢·Ö²½ÅŲ飺´ÓDNSÇåÏ´µ½MTUµ÷ÓÅ
²½Öè1£ºDNS½Ù³Ö¼ì²âÓëÐÞ¸´
ÊÖ¶¯²éѯÓÎÏ·ÓòÃû½âÎö£º
nslookup game.qq.com
Èô·µ»ØIPµØÖ·ÓëÌÚѶ¹Ù·½¹«²¼µÄ²»·û£¨Èç¾³ÍâIP£©£¬Ôò´æÔÚ½Ù³Ö¡£
Ç¿ÖÆÖ¸¶¨DNS·þÎñÆ÷£º
ÔÚÏµÍ³ÍøÂçÉèÖÃÖУ¬½«DNS¸ÄΪ119.29.29.29£¨ÌÚÑ¶ÔÆDNS£©»ò8.8.8.8£¨Google DNS£©¡£
·ÓÉÆ÷¼¶ÐÞ¸´£ºµÇ¼·ÓÉÆ÷ºǫ́£¬¹Ø±Õ“DNSת·¢”¹¦ÄÜ¡£
²½Öè2£ºMTUÖµÓÅ»¯ÊµÑé
²âÊÔ×î¼ÑMTUÖµ£º
ping -l 1472 -f game.qq.com
Öð²½¼õС-l²ÎÊýÖµ£¨Ã¿´Î¼õ10£©£¬Ö±µ½pingͨÎÞ¶ª°ü¡£
×îÖÕMTUÖµ = ³É¹¦Öµ + 28£¨IPÍ·20×Ö½Ú + UDPÍ·8×Ö½Ú£©¡£
È«¾ÖMTUÉèÖãº
Winϵͳ£º
netsh interface ipv4 set subinterface "ÒÔÌ«Íø" mtu=1450 store=persistent
·ÓÉÆ÷£ºÔÚWAN¿ÚÉèÖÃÖÐÆôÓÓPPPoE MTUÐÞÕý”¡£
²½Öè3£ºÐÒéÕ»ÄÚ´æÐ¹Â©ÐÞ¸´
ÖØÖÃTCP/IPÐÒéÕ»£º
netsh int ip reset
netsh winsock reset
ÖØÆôºóÉúЧ¡£
ÏÞÖÆ²¢·¢Á¬½ÓÊý£º
ʹÓù¤¾ßNetBalancer£¬Îª¡¶ÄæÕ½¡·½ø³ÌÉèÖÃ×î´ó²¢·¢Á¬½ÓÊýΪ500¡£
Èý¡¢×Ô¶¯»¯ÔËά£º½Å±¾¼à¿ØÓëÖÇÄÜÐÞ¸´
ÍøÂ罡¿µ¶Èʵʱ¼à¿Ø½Å±¾
¼à¿ØÓÎÏ·ÑÓ³ÙÓ붪°üÂÊ
while ($true) {
$pingResult = Test-NetConnection game.qq.com -Port 7899
if (pingResult.TcpTestSucceeded -eq false) {
Write-Host "ÍøÂçÒì³££¡ÕýÔÚÖØÖÃÁ¬½Ó..."
netsh int ip reset
Restart-Service "Dnscache"
Start-Sleep -Seconds 60
¹¦ÄÜ£ºÃ¿·ÖÖÓ¼ì²âÓÎÏ·¶Ë¿ÚÁ¬Í¨ÐÔ£¬Ò쳣ʱ×Ô¶¯ÖØÖÃÍøÂçÅäÖá£
MTU¶¯Ì¬ÊÊÅ乤¾ß
ÍÆ¼ö¹¤¾ß£ºClumsy£¨Ä£ÄâÍøÂç¹ÊÕÏ£©»òSimple MTU Tester£¨Ò»¼üÓÅ»¯£©¡£
²Ù×÷Á÷³Ì£º
ÔËÐй¤¾ß£¬Ñ¡ÔñÓÎÏ·½ø³Ì£¨ÈçÄæÕ½.exe£©¡£
×Ô¶¯É¨Ãè²¢Ó¦ÓÃ×î¼ÑMTUÖµ¡£
ÓÎÏ·¼ÓËÙÆ÷Éî¶ÈÅäÖÃ
ѸÓÎ/À×Éñ¼ÓËÙÆ÷£º
ÔÚ“¸ß¼¶ÉèÖÔÖÐÆôÓÓUDP´ò¶´Ä£Ê½”£¬½ûÓÓÖÇÄÜ·ÓÉ”£¨±ÜÃâDNS¶þ´ÎÎÛȾ£©¡£
Ìí¼ÓÓÎÏ··þÎñÆ÷IPµ½°×Ãûµ¥£¨Ðè´Ó¹Ù·½ÇþµÀ»ñÈ¡£©¡£
ËÄ¡¢ÌØÊⳡ¾°ÓëÖÕ¼«·½°¸
¶àÍøÂç½Ó¿Ú³åÍ»
³¡¾°£ºÍ¬Ê±Á¬½ÓWiFiºÍÓÐÏßÍø£¬µ¼ÖÂÓÎÏ·Á÷Á¿±»´íÎó·ÖÁ÷¡£
½â¾ö£º
½øÈëÍøÂçÊÊÅäÆ÷ÉèÖ㬽«ÓÐÏßÍø¿¨µÄ“Ô¾µãÊý”ÉèΪ¸üµÍ£¨Èç10£©¡£
½ûÓÃWiFiµÄIPv6ÐÒé¡£
ÆóÒµÍøÂçÏÞÖÆ
Ö¢×´£º¹«Ë¾·À»ðǽÆÁ±ÎÓÎÏ·ÐÒ飬µ¼ÖÂÁ¬½Ó³¬Ê±¡£
ÈÆ¹ý·½°¸£º
ʹÓÃShadowsocksµÈ¹¤¾ß½¨Á¢SOCKS5´úÀí£¬Ç¿ÖÆÓÎÏ·Á÷Á¿×ß¼ÓÃÜͨµÀ¡£
ÔÚ´úÀíÉèÖÃÖÐÖ¸¶¨ÓÎÏ·½ø³Ì£¨ÈçProxifier£©¡£
¶Ë¿Ú±¬ÆÆ·ÀÓù
¹¥»÷ÌØÕ÷£º¶ñÒâIPƵ·±É¨ÃèÓÎÏ·¶Ë¿Ú£¨UDP 7899£©£¬´¥·¢ÏµÍ³°²È«·À»¤¡£
·ÀÓù½Å±¾£º
# ʹÓÃIPTablesÆÁ±ÎÒì³£Á¬½Ó£¨Linux»·¾³£©
iptables -A INPUT -p udp --dport 7899 -m recent --name BADGUY --set
iptables -A INPUT -p udp --dport 7899 -m recent --name BADGUY --update --seconds 60 --hitcount 10 -j DROP
Îå¡¢³¤Ð§Î¬»¤Óë±Ü¿ÓÖ¸ÄÏ
¶¨ÆÚÇåÀíDNS»º´æ£º
ipconfig /flushdns
¶©ÔÄÍøÂçÖÊÁ¿¼à¿Ø·þÎñ£º
ʹÓÃNetdata»òZabbix¼à¿Ø¼ÒÍ¥ÍøÂ粨¶¯£¬ÌáǰԤ¾¯Ç±ÔÚ¹ÊÕÏ¡£
Ó²¼þ¼¶ÓÅ»¯£º
Ϊ·ÓÉÆ÷Ë¢ÈëOpenWrt¹Ì¼þ£¬ÆôÓÃQoSÁ÷Á¿ÕûÐΣ¬ÓÅÏȱ£ÕÏÓÎÏ·Á÷Á¿¡£
×ܽ᣺¡¶ÄæÕ½¡·ËÀ»úµÄ“ÍøÂçÐþѧ”±¾ÖÊÊÇDNSÎÛȾ¡¢MTU²»Æ¥ÅäÓëÐÒéÕ»×ÊԴй©µÄ×ۺϽá¹û¡£Í¨¹ý×Ô¶¯»¯½Å±¾¼à¿Ø¡¢ÍøÂç²ÎÊýµ÷Óż°ÐÒé²ãÉî¶ÈÐÞ¸´£¬¿É½â¾ö90%ÒÔÉϵÄÒþ±ÎÍøÂçÎÊÌâ¡£ÈôÈÔÎÞ·¨¸ùÖΣ¬½¨ÒéʹÓÓ´¿¾»²¦ºÅ»·¾³”£¨Èç4GËæÉíWiFi+°×Ãûµ¥Ä£Ê½£©½øÐÐ×îÖÕÑéÖ¤£¬»òÏòÍøÂç·þÎñÉÌÌá½»ÍêÕû×¥°üÈÕÖ¾£¡
²¿·ÖÍæ¼Ò¼´Ê¹Ó²¼þÅäÖôï±ê¡¢ÓÎÏ·ÎļþÍêÕû£¬ÈÔ»áÔâÓö¡¶ÄæÕ½¡·²»Ã÷ÔÒòËÀ»ú¡£ÕâÀàÎÊÌâÍùÍùÓëÍøÂç²ãµÄÒþ±Î³åÍ»Ïà¹Ø£¬ÓÈÆäÊÇDNS½Ù³Ö¡¢MTUÖµ²»Æ¥Åä»òÍøÂçÐÒéÕ»Òì³£¡£
DNS½Ù³ÖµÄ“ºûµûЧӦ”
µäÐÍÏÖÏó£º
ÓÎÏ·¼ÓÔØÊ±¿¨ÔÚ“³õʼ»¯ÍøÂçÁ¬½Ó”½çÃæ£¬»òÍÅսʱͻȻºÚÆÁ¡£
ä¯ÀÀÆ÷·ÃÎÊÆäËûÍøÕ¾Õý³££¬µ«ÓÎϷרÓÐÐÒ飨ÈçUDP 7899£©±»½Ù³Ö¡£
¸ùÔ´£º
±¾µØDNS·þÎñÆ÷·µ»Ø´íÎóIP£¨ÈçÔËÓªÉÌ¹ã¸æ×¢È룩£¬µ¼ÖÂÓÎÏ·¿Í»§¶ËÁ¬½ÓÒì³£·þÎñÆ÷£¬´¥·¢SSLÎÕÊÖʧ°Ü»òÊý¾Ý°ü³¬Ê±¡£
MTUÖµ“¹ýÔØ”µ¼ÖÂÊý¾Ý°ü·ÖƬ
±íÏÖ£º
ÓÎÏ·ÖÐÆµ·±³öÏÖ“ÍøÂç¶¶¶¯”£¬RTT£¨ÑÓ³Ù£©²¨¶¯¾çÁÒ£¬ÉõÖÁ´¥·¢“ÍøÂç²»¿É´ï”´íÎó¡£
ÔÀí£º
±¾µØÍøÂçMTU£¨×î´ó´«Êäµ¥Ôª£©ÓëÓÎÏ··þÎñÆ÷²»Æ¥Å䣨ÈçPPPoE²¦ºÅδ¼õ14×Ö½Ú£©£¬µ¼ÖÂÊý¾Ý°ü·ÖƬ£¬GPUäÖȾÓëÍøÂç½ÓÊÕÏ̲߳»Í¬²½¡£
TCP/IPÐÒéÕ»“ÄÚ´æÐ¹Â©”
¼ì²â·½·¨£º
ʹÓÃWireshark×¥°ü·¢ÏÖ´óÁ¿[TCP Retransmission]»ò[TCP ZeroWindow]±êÖ¾£¬ÇÒÓÎÏ·½ø³ÌÕ¼Óö˿ÚÊýÒì³£Ôö³¤¡£
ÔÒò£º
ϵͳTCP/IPÐÒéÕ»³¤Ê±¼äÔËÐкó£¬SocketÁ¬½ÓδÕýÈ·ÊÍ·Å£¬Õ¼ÓÃÄÚ´æÖ±ÖÁ±ÀÀ£¡£
¶þ¡¢·Ö²½ÅŲ飺´ÓDNSÇåÏ´µ½MTUµ÷ÓÅ
²½Öè1£ºDNS½Ù³Ö¼ì²âÓëÐÞ¸´
ÊÖ¶¯²éѯÓÎÏ·ÓòÃû½âÎö£º
nslookup game.qq.com
Èô·µ»ØIPµØÖ·ÓëÌÚѶ¹Ù·½¹«²¼µÄ²»·û£¨Èç¾³ÍâIP£©£¬Ôò´æÔÚ½Ù³Ö¡£
Ç¿ÖÆÖ¸¶¨DNS·þÎñÆ÷£º
ÔÚÏµÍ³ÍøÂçÉèÖÃÖУ¬½«DNS¸ÄΪ119.29.29.29£¨ÌÚÑ¶ÔÆDNS£©»ò8.8.8.8£¨Google DNS£©¡£
·ÓÉÆ÷¼¶ÐÞ¸´£ºµÇ¼·ÓÉÆ÷ºǫ́£¬¹Ø±Õ“DNSת·¢”¹¦ÄÜ¡£
²½Öè2£ºMTUÖµÓÅ»¯ÊµÑé
²âÊÔ×î¼ÑMTUÖµ£º
ping -l 1472 -f game.qq.com
Öð²½¼õС-l²ÎÊýÖµ£¨Ã¿´Î¼õ10£©£¬Ö±µ½pingͨÎÞ¶ª°ü¡£
×îÖÕMTUÖµ = ³É¹¦Öµ + 28£¨IPÍ·20×Ö½Ú + UDPÍ·8×Ö½Ú£©¡£
È«¾ÖMTUÉèÖãº
Winϵͳ£º
netsh interface ipv4 set subinterface "ÒÔÌ«Íø" mtu=1450 store=persistent
·ÓÉÆ÷£ºÔÚWAN¿ÚÉèÖÃÖÐÆôÓÓPPPoE MTUÐÞÕý”¡£
²½Öè3£ºÐÒéÕ»ÄÚ´æÐ¹Â©ÐÞ¸´
ÖØÖÃTCP/IPÐÒéÕ»£º
netsh int ip reset
netsh winsock reset
ÖØÆôºóÉúЧ¡£
ÏÞÖÆ²¢·¢Á¬½ÓÊý£º
ʹÓù¤¾ßNetBalancer£¬Îª¡¶ÄæÕ½¡·½ø³ÌÉèÖÃ×î´ó²¢·¢Á¬½ÓÊýΪ500¡£
Èý¡¢×Ô¶¯»¯ÔËά£º½Å±¾¼à¿ØÓëÖÇÄÜÐÞ¸´
ÍøÂ罡¿µ¶Èʵʱ¼à¿Ø½Å±¾
¼à¿ØÓÎÏ·ÑÓ³ÙÓ붪°üÂÊ
while ($true) {
$pingResult = Test-NetConnection game.qq.com -Port 7899
if (pingResult.TcpTestSucceeded -eq false) {
Write-Host "ÍøÂçÒì³££¡ÕýÔÚÖØÖÃÁ¬½Ó..."
netsh int ip reset
Restart-Service "Dnscache"
Start-Sleep -Seconds 60
¹¦ÄÜ£ºÃ¿·ÖÖÓ¼ì²âÓÎÏ·¶Ë¿ÚÁ¬Í¨ÐÔ£¬Ò쳣ʱ×Ô¶¯ÖØÖÃÍøÂçÅäÖá£
MTU¶¯Ì¬ÊÊÅ乤¾ß
ÍÆ¼ö¹¤¾ß£ºClumsy£¨Ä£ÄâÍøÂç¹ÊÕÏ£©»òSimple MTU Tester£¨Ò»¼üÓÅ»¯£©¡£
²Ù×÷Á÷³Ì£º
ÔËÐй¤¾ß£¬Ñ¡ÔñÓÎÏ·½ø³Ì£¨ÈçÄæÕ½.exe£©¡£
×Ô¶¯É¨Ãè²¢Ó¦ÓÃ×î¼ÑMTUÖµ¡£
ÓÎÏ·¼ÓËÙÆ÷Éî¶ÈÅäÖÃ
ѸÓÎ/À×Éñ¼ÓËÙÆ÷£º
ÔÚ“¸ß¼¶ÉèÖÔÖÐÆôÓÓUDP´ò¶´Ä£Ê½”£¬½ûÓÓÖÇÄÜ·ÓÉ”£¨±ÜÃâDNS¶þ´ÎÎÛȾ£©¡£
Ìí¼ÓÓÎÏ··þÎñÆ÷IPµ½°×Ãûµ¥£¨Ðè´Ó¹Ù·½ÇþµÀ»ñÈ¡£©¡£
ËÄ¡¢ÌØÊⳡ¾°ÓëÖÕ¼«·½°¸
¶àÍøÂç½Ó¿Ú³åÍ»
³¡¾°£ºÍ¬Ê±Á¬½ÓWiFiºÍÓÐÏßÍø£¬µ¼ÖÂÓÎÏ·Á÷Á¿±»´íÎó·ÖÁ÷¡£
½â¾ö£º
½øÈëÍøÂçÊÊÅäÆ÷ÉèÖ㬽«ÓÐÏßÍø¿¨µÄ“Ô¾µãÊý”ÉèΪ¸üµÍ£¨Èç10£©¡£
½ûÓÃWiFiµÄIPv6ÐÒé¡£
ÆóÒµÍøÂçÏÞÖÆ
Ö¢×´£º¹«Ë¾·À»ðǽÆÁ±ÎÓÎÏ·ÐÒ飬µ¼ÖÂÁ¬½Ó³¬Ê±¡£
ÈÆ¹ý·½°¸£º
ʹÓÃShadowsocksµÈ¹¤¾ß½¨Á¢SOCKS5´úÀí£¬Ç¿ÖÆÓÎÏ·Á÷Á¿×ß¼ÓÃÜͨµÀ¡£
ÔÚ´úÀíÉèÖÃÖÐÖ¸¶¨ÓÎÏ·½ø³Ì£¨ÈçProxifier£©¡£
¶Ë¿Ú±¬ÆÆ·ÀÓù
¹¥»÷ÌØÕ÷£º¶ñÒâIPƵ·±É¨ÃèÓÎÏ·¶Ë¿Ú£¨UDP 7899£©£¬´¥·¢ÏµÍ³°²È«·À»¤¡£
·ÀÓù½Å±¾£º
# ʹÓÃIPTablesÆÁ±ÎÒì³£Á¬½Ó£¨Linux»·¾³£©
iptables -A INPUT -p udp --dport 7899 -m recent --name BADGUY --set
iptables -A INPUT -p udp --dport 7899 -m recent --name BADGUY --update --seconds 60 --hitcount 10 -j DROP
Îå¡¢³¤Ð§Î¬»¤Óë±Ü¿ÓÖ¸ÄÏ
¶¨ÆÚÇåÀíDNS»º´æ£º
ipconfig /flushdns
¶©ÔÄÍøÂçÖÊÁ¿¼à¿Ø·þÎñ£º
ʹÓÃNetdata»òZabbix¼à¿Ø¼ÒÍ¥ÍøÂ粨¶¯£¬ÌáǰԤ¾¯Ç±ÔÚ¹ÊÕÏ¡£
Ó²¼þ¼¶ÓÅ»¯£º
Ϊ·ÓÉÆ÷Ë¢ÈëOpenWrt¹Ì¼þ£¬ÆôÓÃQoSÁ÷Á¿ÕûÐΣ¬ÓÅÏȱ£ÕÏÓÎÏ·Á÷Á¿¡£
×ܽ᣺¡¶ÄæÕ½¡·ËÀ»úµÄ“ÍøÂçÐþѧ”±¾ÖÊÊÇDNSÎÛȾ¡¢MTU²»Æ¥ÅäÓëÐÒéÕ»×ÊԴй©µÄ×ۺϽá¹û¡£Í¨¹ý×Ô¶¯»¯½Å±¾¼à¿Ø¡¢ÍøÂç²ÎÊýµ÷Óż°ÐÒé²ãÉî¶ÈÐÞ¸´£¬¿É½â¾ö90%ÒÔÉϵÄÒþ±ÎÍøÂçÎÊÌâ¡£ÈôÈÔÎÞ·¨¸ùÖΣ¬½¨ÒéʹÓÓ´¿¾»²¦ºÅ»·¾³”£¨Èç4GËæÉíWiFi+°×Ãûµ¥Ä£Ê½£©½øÐÐ×îÖÕÑéÖ¤£¬»òÏòÍøÂç·þÎñÉÌÌá½»ÍêÕû×¥°üÈÕÖ¾£¡

