Mundarija (33)
- Bu darsda
- 1. Nega bu kerak?
- 2. Tekshirish tartibi: yaqindan uzoqqa
- 3. 1-qadam: kompyuteringizning tarmoq holati — ipconfig
- 4. 2–3-qadam: ping — "sen bormisan?"
- 4.1 ping qanday ishlaydi
- 4.2 Routerni tekshirish
- 4.3 Internetni tekshirish
- 4.4 ping xatolari
- 5. 4-qadam: DNS'ni tekshirish
- 5.1 nslookup — hamma tizimda bor
- 5.2 Resolve-DnsName — PowerShell'ning zamonaviy vositasi
- 5.3 dig — Linux va macOS
- 6. Yo'lni kuzatish: tracert
- 7. 5-qadam: port va server
- 7.1 Port ochiqmi? — Test-NetConnection
- 7.2 curl -I — HTTP javobi
- 7.3 curl -L — yo'naltirishlarni kuzatish
- 7.4 curl -v — hamma bosqichlar birga
- 7.5 curl xato kodlari
- 8. Vositalar jadvali
- 9. Ko'p uchraydigan xatolar
- 9.1 Ping javob bermadi — "sayt o'lik"
- 9.2 Windows'da traceroute
- 9.3 PowerShell'da curl -I
- 9.4 DNS o'zgarishini tekshirishda keshga aldanish
- 9.5 Tracert'dagi o'rtadagi yulduzchalardan qo'rqish
- 10. Mashqlar
- 1-mashq (oson): O'z routeringiz
- 2-mashq (o'rta): Tashxis qo'ying
- 3-mashq (qiyin): Bir qatorlik tashxis
- 11. Real ishda
- Xulosa
Tarmoqni terminaldan tekshirish: ping, nslookup, tracert va curl
Qisqacha: Sayt ochilmasa, muammoni yaqindan uzoqqa qarab qidiring.
ipconfig— kompyuter tarmoqqa ulanganmi,ping— router va internetga yo'l bormi,nslookup— domen IP'ga aylanyaptimi,Test-NetConnectionyokicurl— server porti ochiqmi va qanday javob beryapti. Besh buyruq muammo Wi-Fi'da, provayderda, DNS'da yoki serverning o'zida ekanini ko'rsatadi.
Bu darsda
- Tarmoq muammosini qadamma-qadam, yaqindan uzoqqa qarab tekshirish tartibini o'rganasiz.
ipconfig,ping,nslookupvaResolve-DnsNamechiqishlarini o'qiy olasiz.tracertbilan paket yo'lini,Test-NetConnectionbilan portni tekshirasiz.curl -I,-v,-Lbilan server javobini ko'rasiz va curl xato kodlarini tushunasiz.- Windows va Linux/macOS buyruqlari orasidagi farqlarni bilasiz.
Oldin bilishingiz kerak: Manzilni yozganda nima bo'ladi: to'liq sayohat, Jarayonlar va band portlar, PowerShell asoslari va bash bilan farqi.
1. Nega bu kerak?
Siz kichik kompaniyada ishlaysiz. Mijoz qo'ng'iroq qiladi: "Saytingiz ishlamayapti!" Siz o'z kompyuteringizda ochasiz — ochilyapti. Muammo qayerda?
- Mijozning uydagi interneti uzilganmi?
- Uning provayderi domen nomini topa olmayaptimi?
- Server ma'lum bir mintaqadan kelgan so'rovlarga javob bermayaptimi?
- Yoki sertifikat muddati o'tib ketganmi?
Oddiy foydalanuvchi sahifani qayta-qayta yangilaydi. Dasturchi esa terminalni ochadi va har bir taxminni bitta buyruq bilan tekshiradi.
Oldingi to'liq sayohat darsida zanjirni o'rgandik: DNS → TCP → TLS → HTTP. Bugun har bir bo'g'inni tekshiradigan vositani qo'lga olamiz. Chiqishlarning hammasi — haqiqiy, Toshkentdagi Wi-Fi'ga ulangan Windows 11 kompyuterdan olingan.
Maslahat: Bu darsdagi Windows buyruqlarini PowerShell'da bajaring.
ping,ipconfig,nslookup,tracertGit Bash'da ham ishlaydi, lekinResolve-DnsNamevaTest-NetConnection— faqat PowerShell buyruqlari.
2. Tekshirish tartibi: yaqindan uzoqqa
Chiroq yonmasa, elektrchi avval lampochkani, keyin kalitni, keyin uydagi schyotchikni tekshiradi. Butun shaharning elektr tarmog'idan boshlamaydi. Tarmoqda ham xuddi shunday: eng yaqin bo'g'indan boshlab, uzoqqa qarab boramiz.
flowchart TD
A[Sayt ochilmayapti] --> B{ping router}
B -- javob yo'q --> B1[Wi-Fi yoki kabel]
B -- javob bor --> C{ping 1.1.1.1}
C -- javob yo'q --> C1[Provayder]
C -- javob bor --> D{nslookup domen}
D -- topilmadi --> D1[DNS muammosi]
D -- IP bor --> E{443-port ochiqmi}
E -- yo'q --> E1[Server yoki firewall]
E -- ha --> F{curl -I}
F -- 4xx yoki 5xx --> F1[Sayt kodi yoki sozlama]
F -- 200 --> F2[Brauzerni tekshiring]Besh qadam:
- Kompyuterim tarmoqqa ulanganmi, IP olganmi? —
ipconfig - Router javob beryaptimi? —
pingrouterga - Internet bormi? —
ping 1.1.1.1 - DNS domenni IP'ga aylantiryaptimi? —
nslookup - Server porti ochiqmi va HTTP javobi qanday? —
Test-NetConnection,curl
3. 1-qadam: kompyuteringizning tarmoq holati — ipconfig
PowerShell'da:
ipconfigChiqish uzun bo'lishi mumkin — har bir tarmoq adapteri uchun alohida blok. Bizga ulangan Wi-Fi yoki Ethernet bloki kerak (qisqartirilgan):
Wireless LAN adapter Wi-Fi:
IPv4 Address. . . . . . . . . . . : 192.168.1.140
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1Adapter nomi tizim tiliga qarab boshqacha yozilishi mumkin. Ikki qatorga qarang:
- IPv4 Address — kompyuteringizning uy tarmog'idagi manzili. IP darsidan eslang:
192.168.x.x— xususiy (private) manzil, uni faqat uy tarmog'i ko'radi. - Default Gateway — "chiqish eshigi", ya'ni routeringiz manzili. Uydan tashqariga ketadigan har bir paket shu orqali o'tadi.
Nimaga e'tibor berish kerak:
Media disconnected— adapter ulanmagan (kabel chiqib qolgan yoki Wi-Fi o'chiq).- IP
169.254.x.x— kompyuter routerdan manzil ololmadi va o'ziga "vaqtinchalik" manzil qo'ydi. Router bilan aloqa yo'q. - Default Gateway bo'sh — routerga yo'l yo'q.
Linux'da xuddi shu ma'lumotni ip a (manzillar) va ip route (gateway) ko'rsatadi. macOS'da — ifconfig yoki ipconfig getifaddr en0.
4. 2–3-qadam: ping — "sen bormisan?"
4.1 ping qanday ishlaydi
ping manzilga kichik maxsus paket yuboradi va "aks-sado" kutadi. U ikki narsani o'lchaydi: javob keldimi va qancha vaqtda keldi. Bu vaqt kechikish (latency) — borib-kelish vaqti, millisekundlarda.
Nom sonar'dan olingan: suv osti kemasi tovush yuboradi va qaytgan aks-sadoga qarab masofani biladi.
4.2 Routerni tekshirish
ipconfig da ko'rgan Default Gateway manzilini ping qilamiz. Windows'da -n 4 — 4 ta paket yuborish:
ping -n 4 192.168.1.1Natija:
Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=12ms TTL=64
Reply from 192.168.1.1: bytes=32 time=32ms TTL=64
Reply from 192.168.1.1: bytes=32 time=10ms TTL=64
Reply from 192.168.1.1: bytes=32 time=9ms TTL=64
Ping statistics for 192.168.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 32ms, Average = 15msReply from— "javob keldi".time=12ms— borib-kelish 12 millisekund. Wi-Fi'da odatda bir necha millisekunddan bir necha o'n millisekundgacha bo'ladi, kabelda — 1 ms atrofida.Lost = 0 (0% loss)— hech bir paket yo'qolmadi.
Router javob berdi — demak, kompyuter bilan router orasidagi aloqa (Wi-Fi yoki kabel) ishlayapti.
TTL — paketning "umri": u har bir routerdan o'tganda bittaga kamayadi. Hozircha unga e'tibor bermasangiz ham bo'ladi.
4.3 Internetni tekshirish
Endi uydan tashqariga — doim ishlaydigan ma'lum manzilga. 1.1.1.1 — Cloudflare'ning ochiq DNS serveri, 8.8.8.8 — Google'niki. IP bilan ping qilamiz — DNS'ni hozircha aralashtirmaslik uchun:
ping -n 4 1.1.1.1Reply from 1.1.1.1: bytes=32 time=65ms TTL=52
Reply from 1.1.1.1: bytes=32 time=61ms TTL=52
Reply from 1.1.1.1: bytes=32 time=61ms TTL=52
Reply from 1.1.1.1: bytes=32 time=66ms TTL=52
Ping statistics for 1.1.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 61ms, Maximum = 66ms, Average = 63msJavob bor — internet ishlayapti. O'rtacha 63 ms — paket Toshkentdan Yevropadagi serverga borib qaytdi.
4.4 ping xatolari
Javob kelmasa:
Request timed out.
Request timed out.
Ping statistics for 10.255.255.1:
Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),Request timed out — "so'rov vaqti tugadi": javob kutilgan vaqtda kelmadi. Manzil o'chiq, yo'l yo'q yoki qurilma ping'ga javob bermaydi.
Domen nomini ping qilsak va u topilmasa:
Ping request could not find host bunday-sayt-yoq-12345.uz.
Please check the name and try again."Ping so'rovi hostni topa olmadi. Nomni tekshirib, qayta urinib ko'ring." Bu xato ping'gacha, DNS bosqichida yuz berdi — domen IP'ga aylanmadi.
Diqqat: Linux va macOS'da
pingo'zi to'xtamaydi —Ctrl + Cbilan to'xtatasiz. Paketlar sonini-c 4bilan berasiz (-nemas). Windows'da esaping4 ta paketdan keyin o'zi to'xtaydi, cheksiz ping —ping -t.
Tekshirib ko'ring:
ping 192.168.1.1— 100% loss,ipconfigda IP169.254.12.7. Muammo qayerda?
Javob
Kompyuter va router orasida. 169.254.x.x — kompyuter routerdan manzil ololmaganini bildiradi. Wi-Fi paroli, kabel yoki routerning o'zini tekshirish kerak. Provayder yoki sayt bilan bog'liq emas — undan oldin to'xtab qolyapmiz.
5. 4-qadam: DNS'ni tekshirish
1.1.1.1 ga ping bor, lekin sayt nomi bilan ochilmasa — gumon DNS'ga tushadi. Endi nslookup ni tashxis vositasi sifatida ishlatamiz.
5.1 nslookup — hamma tizimda bor
nslookup example.comServer: dns.google
Address: 8.8.8.8
Non-authoritative answer:
Name: example.com
Addresses: 2606:4700:10::ac42:93f3
2606:4700:10::6814:179a
172.66.147.243
104.20.23.154Bu chiqishni DNS darsida bo'laklagan edik. Qisqa eslatma: Server — javob bergan resolver (bu yerda Google'ning 8.8.8.8, ko'pincha esa provayderniki), Non-authoritative answer — javob resolver keshidan keldi (bu normal), Addresses — ikkita IPv6 va ikkita IPv4 manzil.
Muayyan DNS serverdan so'rash uchun uni oxiriga qo'shasiz:
nslookup example.com 1.1.1.1Bu provayder resolveri eski yoki xato javob berayotganini tekshirishda kerak. Ikki server har xil IP qaytarsa — kimdir eski keshni ushlab turibdi.
Domen mavjud bo'lmasa:
*** dns.google can't find bunday-sayt-yoq-12345.uz:
Non-existent domainNon-existent domain — "mavjud bo'lmagan domen". Brauzerdagi DNS_PROBE_FINISHED_NXDOMAIN bilan bir xil ma'no.
5.2 Resolve-DnsName — PowerShell'ning zamonaviy vositasi
Bu buyruq bilan DNS darsida tanishgan edik. Eslatib o'tamiz:
Resolve-DnsName example.comName Type TTL Section IPAddress
---- ---- --- ------- ---------
example.com AAAA 226 Answer 2606:4700:10::ac42:93f3
example.com AAAA 226 Answer 2606:4700:10::6814:179a
example.com A 228 Answer 104.20.23.154
example.com A 228 Answer 172.66.147.243Jadval ko'rinishida, va qo'shimcha foydali ustunlar bor:
Type— yozuv turi:A— IPv4,AAAA— IPv6 (DNS yozuvlari).TTL— bu javob yana necha soniya keshda turadi (bizda ~4 daqiqa).
Yozuv turini va serverni tanlash mumkin:
Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1Domen topilmasa: bunday-sayt-yoq-12345.uz : DNS name does not exist — "DNS nomi mavjud emas".
5.3 dig — Linux va macOS
Linux va macOS'da DNS uchun asosiy vosita — dig. Windows'da u yo'q. +short — faqat IP'larni chiqarish:
dig +short example.comChiqish — IPv4 manzillar ro'yxati, har biri alohida qatorda (104.20.23.154 va 172.66.147.243). Boshqa server: dig @1.1.1.1 example.com, boshqa tur: dig example.com AAAA.
Maslahat: Kompyuteringiz eski IP'ni eslab qolgan bo'lsa, DNS darsidagi
ipconfig /flushdnskeshni tozalaydi.
6. Yo'lni kuzatish: tracert
ping "yetib borildimi?" deydi. tracert (trace route — yo'lni kuzatish) esa qaysi yo'l bilan yetib borilganini ko'rsatadi. Uni birinchi darsda ko'rgan edik — endi chiqishini diagnostika uchun o'qiymiz. Paket sizdan serverga borguncha o'nlab routerdan o'tadi. Har biri — bitta hop (sakrash).
tracert -d 1.1.1.1-d — IP'larni nomga aylantirmaslik (tezroq ishlaydi). Buyruq bir necha o'n soniya ishlashi mumkin — sabr qiling. Natija (qisqartirilgan):
Tracing route to 1.1.1.1 over a maximum of 30 hops
1 8 ms 8 ms 12 ms 192.168.1.1
2 14 ms 5 ms 16 ms 100.64.0.1
3 5 ms 5 ms 5 ms 172.16.248.65
4 9 ms 10 ms 9 ms 203.0.113.68
...
7 8 ms 4 ms 7 ms 203.0.113.55
8 42 ms 31 ms 57 ms 198.51.100.12
9 58 ms 58 ms 60 ms 198.51.100.14
10 64 ms * * 162.158.100.252
11 62 ms 59 ms 58 ms 162.158.100.27
12 61 ms 59 ms 58 ms 1.1.1.1
Trace complete.Qanday o'qiladi:
- Birinchi ustun — hop raqami. 1-hop doim uydagi router.
- Uchta vaqt — o'sha routergacha uch marta o'lchangan borib-kelish.
- Oxirgi ustun — routerning IP manzili.
*— shu urinishda javob kelmadi.
Bizda: 1-hop — router, 2–7-hoplar — O'zbekistondagi provayder tarmog'i (vaqt 4–16 ms). 8–9-hoplarda vaqt 31–60 ms ga sakradi — paket mamlakatdan chiqib, uzoq kabel orqali ketdi. 10–12 — Cloudflare tarmog'i. Qayerda vaqt keskin oshsa — o'sha yerda masofa katta yoki tiqilinch bor.
Yulduzchalar faqat o'rtada bo'lsa, lekin oxirgi qatorga yetib borilgan bo'lsa — muammo yo'q. Ko'p routerlar xavfsizlik uchun bunday so'rovlarga javob bermaydi. Muammo belgisi — yulduzchalar biror hopdan boshlab oxirigacha davom etsa.
Linux va macOS'da buyruq nomi to'liq: traceroute 1.1.1.1. Zamonaviy muqobil — mtr: u ping va traceroute'ni birlashtirib, jonli jadval ko'rsatadi.
Tekshirib ko'ring:
tracert1–4 hoplarda javob beradi, 5-hopdan boshlab oxirigacha faqat* * *. Muammo qayerda bo'lishi mumkin?
Javob
Paket 4-hopgacha yetib bormoqda, undan keyin yo'l uzilgan. 1-hop — uyingiz, keyingilari — provayder. Demak, muammo provayder tarmog'ida yoki undan chiqishda. Uy routeringiz va kompyuteringiz aybdor emas — provayderga murojaat qilish kerak.
7. 5-qadam: port va server
7.1 Port ochiqmi? — Test-NetConnection
Server "tirik" bo'lishi mumkin, lekin kerakli port yopiq bo'lsa, sayt ochilmaydi. Portlar darsidan eslang: HTTPS — 443. PowerShell'da portni tekshirish:
Test-NetConnection example.com -Port 443ComputerName : example.com
RemoteAddress : 104.20.23.154
RemotePort : 443
SourceAddress : 192.168.1.140
TcpTestSucceeded : TrueTcpTestSucceeded : True — TCP ulanish o'rnatildi (3-way handshake muvaffaqiyatli). Port ochiq, server tinglayapti.
Endi server tinglamaydigan portni sinaymiz — masalan, 5432 (PostgreSQL bazasining standart porti):
WARNING: TCP connect to (104.20.23.154 : 5432) failed
...
PingSucceeded : True
TcpTestSucceeded : FalseQiziq holat: PingSucceeded : True — server tirik. Lekin TcpTestSucceeded : False — bu portda hech kim eshikni ochmadi. Bu farq muhim: "server ishlayapti, lekin kerakli dastur ishlamayapti yoki himoya devori (firewall) to'sib qo'ygan". Firewall'ni IP va port darsida uchratgan edik: u qaysi portlarga ulanish mumkinligini hal qiladi.
Linux va macOS'da shunga o'xshash vosita — nc -zv example.com 443.
7.2 curl -I — HTTP javobi
Port ochiq. Endi server HTTP darajasida nima deyapti? Sarlavhalar darsidan tanish curl -I:
curl -I https://example.comHTTP/1.1 200 OK
Content-Type: text/html
Server: cloudflareBirinchi qator asosiy javob: 200 — sayt ishlayapti. 404 — sahifa yo'q. 500 — server kodida xato. 502 yoki 503 — server orqasidagi ilova ishlamayapti (status kodlari).
Diqqat: Windows PowerShell 5.1 da
curl—Invoke-WebRequestning taxallusi.curl -Iu yerda xato beradi. PowerShell'da doimcurl.exedeb yozing. Buni PowerShell darsida ko'rgan edik.
Linux yoki macOS'da birinchi qator ko'pincha HTTP/2 200 bo'ladi. Windows'dagi curl HTTP/2'siz yig'ilgan, shuning uchun HTTP/1.1 ko'rsatadi (HTTP versiyalari darsi). Ma'nosi bir xil.
7.3 curl -L — yo'naltirishlarni kuzatish
-L bilan curl 301/302 ga uchrasa, Location dagi manzilga o'zi o'tadi va har bir javobni ko'rsatadi. Qisqa ko'rinish uchun faqat kerakli qatorlarni grep bilan ajratamiz:
curl -sIL http://github.com | grep -iE "^HTTP|^location"-E — grep'ga "bir nechta variantdan birini qidir" deydi: HTTP yoki location bilan boshlangan qatorlar.
HTTP/1.1 301 Moved Permanently
Location: https://github.com/
HTTP/1.1 200 OKhttp:// → 301 → https:// → 200. Yo'naltirish zanjiri to'g'ri ishlayapti.
7.4 curl -v — hamma bosqichlar birga
-v bitta buyruqda DNS, TCP, TLS va HTTP'ni ko'rsatadi. Qaysi qatorda to'xtaganiga qarab muammo bosqichini bilasiz:
* Host example.com:443 was resolved. ← DNS ishladi
* Trying 104.20.23.154:443... ← TCP boshlandi
* ALPN: server accepted http/1.1 ← TLS o'tdi
* Established connection to example.com ... ← ulanish tayyor
> GET / HTTP/1.1 ← so'rov ketdi
< HTTP/1.1 200 OK ← javob keldi(O'ng tomondagi izohlar — biz qo'shgan, curl ularni chiqarmaydi.)
7.5 curl xato kodlari
curl muvaffaqiyatsiz bo'lsa, xato raqamini aytadi. Eng keraklilari — haqiqiy xabarlar:
curl: (6) Could not resolve host: bunday-sayt-yoq-12345.uz
curl: (7) Failed to connect to localhost:3999 after 2250 ms:
Could not connect to server
curl: (28) Connection timed out after 5004 milliseconds
curl: (60) schannel: SEC_E_UNTRUSTED_ROOT ...| Kod | Tarjimasi | Bosqich |
|---|---|---|
(6) |
Hostni topa olmadim | DNS |
(7) |
Ulana olmadim — port yopiq | TCP |
(28) |
Vaqt tugadi — javob yo'q | TCP (tarmoq, firewall) |
(35), (60) |
Sertifikat yoki TLS xatosi | TLS |
(7) ni IP va port darsida, (28) ni TCP darsida uchratgan edik. Ularning farqi foydali. (7) — server darhol "yo'q" dedi: kompyuter bor, lekin portda hech kim tinglamayapti. Masalan, serveringizni ishga tushirishni unutgansiz. (28) — umuman javob kelmadi: manzil noto'g'ri, tarmoq uzilgan yoki firewall paketlarni jimgina tashlab yuboryapti. Kutish vaqtini --max-time 5 bilan cheklash mumkin.
Tekshirib ko'ring: Siz o'z serveringizni
localhost:3000da ishga tushirdingiz deb o'ylaysiz, lekincurl -I http://localhost:3000→curl: (7) Failed to connect. Birinchi nimani tekshirasiz?
Javob
Server haqiqatan ishlayaptimi va aynan 3000-portdami. (7) — ulanish rad etildi, ya'ni bu portda hech kim tinglamayapti. Server xato bilan to'xtagan yoki boshqa portda ishga tushgan bo'lishi mumkin. Band portlar darsidagi netstat -ano | findstr :3000 bilan kim tinglayotganini ko'rasiz.
8. Vositalar jadvali
| Savol | Windows (PowerShell) | Linux / macOS |
|---|---|---|
| IP va router? | ipconfig |
ip a, ip route |
| Manzil javob beradimi? | ping -n 4 IP |
ping -c 4 IP |
| Domen qaysi IP'da? | nslookup, Resolve-DnsName |
nslookup, dig |
| Paket yo'li? | tracert -d |
traceroute, mtr |
| Port ochiqmi? | Test-NetConnection -Port |
nc -zv |
| HTTP javobi? | curl.exe -I, -v, -L |
curl -I, -v, -L |
HTTPie haqida ham eshitasiz. Bu curl ga o'xshash, lekin chiqishni rangli va chiroyli ko'rsatadigan vosita: http GET https://api.github.com/zen. U alohida o'rnatiladi va ixtiyoriy — curl hamma joyda tayyor turadi, shuning uchun asosiy vosita u.
9. Ko'p uchraydigan xatolar
9.1 Ping javob bermadi — "sayt o'lik"
Ko'p serverlar va firewall'lar ping paketlarini ataylab bloklaydi. Sayt ping'ga javob bermasa ham, brauzerda bemalol ochilishi mumkin. Tuzatish: ping — faqat birinchi taxmin. Oxirgi so'z — Test-NetConnection -Port 443 va curl -I.
9.2 Windows'da traceroute
traceroute : The term 'traceroute' is not recognized as the name of
a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the
path is correct and try again."traceroute buyruq sifatida tanilmadi". Windows'da buyruq nomi qisqa: tracert.
9.3 PowerShell'da curl -I
Invoke-WebRequest : Cannot process command because of one or more
missing mandatory parameters: Uri.PowerShell curl ni o'zining Invoke-WebRequest buyrug'i deb tushundi. Tuzatish: curl.exe -I https://example.com.
9.4 DNS o'zgarishini tekshirishda keshga aldanish
Domenni yangi serverga yo'naltirdingiz, nslookup esa eski IP'ni ko'rsatyapti. Provayder resolveri eski javobni TTL tugaguncha ushlab turibdi. Tuzatish: to'g'ridan-to'g'ri boshqa serverdan so'rang — nslookup domen 1.1.1.1 — va TTL'ga qarang (Resolve-DnsName).
9.5 Tracert'dagi o'rtadagi yulduzchalardan qo'rqish
O'rtadagi bitta-ikkita * — normal: router shunchaki javob bermaydi, lekin paketni uzatadi. Oxirgi qatorga yetib borilgan bo'lsa — yo'l butun.
10. Mashqlar
1-mashq (oson): O'z routeringiz
- PowerShell'da
ipconfigbajaring va o'z Default Gateway manzilingizni toping. - Unga 4 ta ping yuboring.
- O'rtacha vaqt va yo'qolgan paketlar foizini yozing.
Yechim
Masalan, gateway 192.168.1.1 bo'lsa:
ping -n 4 192.168.1.1Yaxshi natija: Lost = 0 (0% loss). Vaqt Wi-Fi'da odatda 1–10 ms, kabelda 1 ms dan kam. Wi-Fi'da vaqt 50–100 ms dan oshsa yoki paketlar yo'qolsa — signal zaif: routerga yaqinroq boring yoki kabel ulang.
Sizda gateway 192.168.0.1 yoki 10.0.0.1 bo'lishi mumkin — routerlar har xil sozlangan.
2-mashq (o'rta): Tashxis qo'ying
Dilnoza "sayt ochilmayapti" dedi va to'rtta buyruq natijasini yubordi:
ping 192.168.1.1 → Reply from 192.168.1.1: time=4ms
ping 1.1.1.1 → Reply from 1.1.1.1: time=58ms
nslookup menyu.example.com → Non-existent domain
nslookup menyu.example.com 1.1.1.1 → Non-existent domainMuammo qaysi bosqichda? Kim tuzatishi kerak — Dilnozami yoki sayt egasi?
Yechim
Router va internet ishlayapti (birinchi ikki ping). DNS bosqichida to'xtadi: domen topilmadi. Ikki xil DNS server (provayder va Cloudflare) ham shunday deyapti — demak, bu bitta resolverning keshi emas. Domen yozuvi haqiqatan yo'q.
Tuzatish — sayt egasida: menyu subdomeni uchun DNS yozuvini qo'shish kerak (yoki Dilnoza manzilni xato yozgan — harflarini tekshirish ham foydali).
3-mashq (qiyin): Bir qatorlik tashxis
Exit code darsidagi && ni eslang: oldingi buyruq muvaffaqiyatli bo'lsagina keyingisi bajariladi. Git Bash'da shunday zanjir yozing:
1.1.1.1ga bitta ping yuborsin;- muvaffaqiyatli bo'lsa —
example.comning IP'sininslookupbilan topsin; - muvaffaqiyatli bo'lsa —
curl -sIbilan javobning faqat birinchi qatorini chiqarsin.
Ishora: Git Bash'dagi ping — Windows ping'i, u -n ni tushunadi. Birinchi qatorni ajratish — head -n 1 (fayllar bilan ishlash darsi).
Yechim
ping -n 1 1.1.1.1 > /dev/null && nslookup example.com \
&& curl -sI https://example.com | head -n 1> /dev/null ping'ning uzun chiqishini yashiradi — bizga faqat uning muvaffaqiyati kerak. Natija oxirida:
HTTP/1.1 200 OKQaysidir qadam muvaffaqiyatsiz bo'lsa, zanjir o'sha yerda to'xtaydi — va qaysi bosqich buzilganini darhol ko'rasiz. Linux yoki macOS'da ping -c 1 yozasiz.
11. Real ishda
- Qo'llab-quvvatlash: "Sayt ishlamayapti" xabari kelganda birinchi 2 daqiqada shu besh qadam bajariladi. Javob "sizda internet yo'q" yoki "DNS yozuvi o'chib qolgan" bo'lishi mumkin — kod tuzatish shart ham bo'lmaydi.
- Backend va DevOps: serverga ulanib,
curl -I http://localhost:3000bilan ilova ichkaridan javob berayotganini tekshirish — har kungi ish. Docker va serverlar qismida bu buyruqlarni doim ishlatasiz. - Monitoring: UptimeRobot kabi xizmatlar aslida har daqiqada saytingizga
curlqiladi va javob kelmasa xabar beradi. Ularni kursning DevOps qismida sozlaymiz. - Intervyu: "Sayt ochilmayapti — qanday tekshirasiz?" savoliga qadamma-qadam javob (yaqindan uzoqqa) sizni tajribali ko'rsatadi.
Xulosa
- Tekshirish tartibi: kompyuter → router → internet → DNS → port → HTTP.
ipconfig— IP va gateway;169.254.x.x— routerdan manzil olinmagan.ping— javob va kechikish; lekin javob yo'qligi har doim ham "sayt o'lik" degani emas.nslookup/Resolve-DnsName/dig— DNS;tracert— yo'l;Test-NetConnection— port.curl -I,-L,-v— HTTP javobi;(6)DNS,(7)port yopiq,(28)vaqt tugadi,(60)sertifikat.
Keyingi dars: Brauzer tuzilishi va dvigatellar — tarmoq qismini tugatdik; endi javob yetib kelgan joyga — brauzerning ichiga kiramiz va u qanday qismlardan iboratligini ko'ramiz.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!