MTU 1420: కొన్ని సైట్లు ఎందుకు వేలాడవచ్చు మరియు దాన్ని ఎలా సరిచేయాలి
MTU అంటే ఏమిటి, 1420 ఎక్కడ నుండి వస్తుంది, “పేజీ సగంలో వేలాడుతుంది” సమస్య ఎలా కనిపిస్తుంది, దాన్ని ఎలా తనిఖీ చేసి సరిచేయాలి.
23 ఆగస్టు, 2026న నవీకరించబడింది
MTU అనేది ఫ్రాగ్మెంటేషన్ లేకుండా నెట్వర్క్లో పంపగలిగే గరిష్ఠ ప్యాకెట్ పరిమాణం. ఈథర్నెట్లో సాధారణ విలువ 1500 బైట్లు. ట్రాఫిక్ టన్నెల్ గుండా వెళ్ళినప్పుడు, దాని స్వంత హెడర్లు కొంత స్థలాన్ని ఆక్రమించుకుంటాయి, తద్వారా పేలోడ్ తగ్గుతుంది: సాధారణ విలువ 1420.
దీనంతటిలో సమస్య ఏమీ లేదు. ఒక వైపు 1500 పంపగలనని భావించి, కానీ మార్గంలో 1420 ఉన్న సెగ్మెంట్ ఉండి, దాని గురించిన సందేశం పోతేనే సమస్యలు మొదలవుతాయి.
లక్షణం ఎలా కనిపిస్తుంది
- SSH కనెక్ట్ అవుతుంది, గ్రీటింగ్ వస్తుంది, కానీ పెద్ద డైరెక్టరీలో
lsసెషన్ను హ్యాంగ్ చేస్తుంది. - ఒక పేజీ లోడ్ అవ్వడం మొదలై మధ్యలో ఆగిపోతుంది.
curl -I(హెడర్లు మాత్రమే) పనిచేస్తుంది, కానీ పూర్తిcurlహ్యాంగ్ అవుతుంది.apt updateవిజయవంతమవుతుంది,apt upgradeడౌన్లోడ్ చేస్తున్నప్పుడు ఆగిపోతుంది.- చిన్న రిక్వెస్ట్లు వేగంగా వెళ్తాయి, పెద్ద రెస్పాన్స్లు ఎప్పటికీ రావు.
సాధారణ సంకేతం ఒకటే: చిన్న ప్యాకెట్లు దాటుతాయి, పెద్దవి ఎటువంటి ఎర్రర్ లేకుండా మాయమవుతాయి. కనెక్షన్ తెగిపోదు; అది కేవలం నిశ్శబ్దంగా మారిపోతుంది.
దీనికి కారణం ఏమిటంటే, ప్యాకెట్ పరిమాణం చర్చల మెకానిజం ICMP సర్వీస్ సందేశాలపై ఆధారపడి ఉంటుంది. మార్గంలో ఎవరైనా వాటిని ఫిల్టర్ చేస్తే, ప్యాకెట్ చాలా పెద్దదని పంపినవారికి ఎప్పటికీ తెలియదు, వారు దాన్ని మళ్ళీ మళ్ళీ పంపుతూనే ఉంటారు.
తనిఖీ
డోంట్-ఫ్రాగ్మెంట్ బిట్ సెట్ చేసిన ప్యాకెట్ పంపి, అది దాటేవరకు పరిమాణాన్ని తగ్గించండి:
ping -M do -s 1472 -c 2 1.1.1.1
ping -M do -s 1392 -c 2 1.1.1.1
-s పరిమాణానికి 28 బైట్ల హెడర్లు జోడించబడతాయి: 1472 అంటే MTU 1500, మరియు 1392 అంటే MTU 1420. మొదటి ఆప్షన్ విఫలమై రెండవది విజయవంతమైతే, మీరు పరిమితిని కనుగొన్నారు.
ప్రస్తుత ఇంటర్ఫేస్ విలువ:
ip link show
ip route get 1.1.1.1
ఎలా సరిచేయాలి
ఒకసారి తనిఖీ:
ip link set dev eth0 mtu 1420
శాశ్వతంగా, systemd-networkd ద్వారా — ఫైల్ /etc/systemd/network/10-eth0.network:
[Match]
Name=eth0
[Link]
MTUBytes=1420
systemctl restart systemd-networkd
నెట్వర్క్ను NetworkManager నిర్వహిస్తుంటే:
nmcli connection modify "System eth0" 802-3-ethernet.mtu 1420
nmcli connection up "System eth0"
MTUని మీరు తాకలేనప్పుడు ఉపయోగపడే రెండవ పద్ధతి, సరిహద్దు వద్ద TCP సెగ్మెంట్ పరిమాణాన్ని క్లాంప్ చేయడం. nftablesలో:
tcp flags syn tcp option maxseg size set rt mtu
ఇది మిమ్మల్ని ఎప్పుడు ప్రభావితం చేస్తుంది
Millida VDS మెషీన్లోనే, నెట్వర్క్ సరిగ్గా కాన్ఫిగర్ చేయబడి ఉంటుంది, మరియు సాధారణంగా మీరు MTUని మాన్యువల్గా తాకాల్సిన అవసరం ఉండదు. మీరు స్వయంగా టన్నెల్ సెటప్ చేసినప్పుడు దీన్ని ఎదుర్కోవాల్సి ఉంటుంది: WireGuard, OpenVPN, GRE, ఆఫీసుకు VPN, లేదా మెషీన్ల మధ్య లింక్. టన్నెల్ లోపల MTU ఎప్పుడూ చిన్నదిగా ఉంటుంది, మరియు మీరు దాన్ని స్పష్టంగా సెట్ చేయాలి.
WireGuardలో [Interface] విభాగంలో:
MTU = 1420
సాధారణ తప్పులు
| తప్పు | పరిణామం |
|---|---|
| ఫైర్వాల్లో ICMPని పూర్తిగా బ్లాక్ చేయడం | మీ కోసమే ప్యాకెట్ పరిమాణం చర్చలను పాడుచేసుకుంటారు |
| టన్నెల్లో ఒక వైపు మాత్రమే MTU సెట్ చేయడం | ట్రాఫిక్ ఒక దిశలో హ్యాంగ్ అవుతుంది |
| యథాతథంగా MTUని మార్చడం | అసలు కారణాన్ని దాచేస్తారు: ప్యాకెట్ లాస్ లేదా సర్వీస్ ఎర్రర్ |
ping -M doకమాండ్తో లక్షణాన్ని పునరుత్పత్తి చేసేవరకు MTUని తాకవద్దు. ఆ తనిఖీ లేకుండా, మీరు ఊహ ఆధారంగా పనిచేస్తున్న కాన్ఫిగరేషన్ను మారుస్తున్నారు — మరియు పాత సమస్యకు బదులుగా కొత్త సమస్యను పొందుతున్నారు. ICMPని పూర్తిగా బ్లాక్ చేయవద్దు; nftables చూడండి.