Kod ralat VPN Windows: peringkat mana yang gagal, dan apa yang perlu dilog
829, 703, 720, 691, 649: setiap nombor menamakan satu peringkat, dan setiap peringkat mempunyai buktinya sendiri. Rakam satu percubaan, bandingkan log gerbang, tukar satu lapisan.
Buka dialog VPN Windows selepas kegagalan dan ia memberi anda nombor dan satu ayat, dan ayat itu biasanya separuh yang kurang berguna. Nombor itu mengenal pasti peringkat sambungan mana yang gagal, dan peringkat itu menentukan log, tetapan dan pasukan mana yang perlu dilihat seterusnya. Menelusuri peringkat mengikut urutan mengambil masa kira-kira sepuluh minit dan menghalang urutan biasa: memasang semula penyesuai, menukar protokol dan menetapkan semula tindanan hanya untuk membaiki akaun yang memang tidak pernah dibenarkan mendail.
Baca nombor sebagai peringkat
Sambungan asli melalui empat pencapaian. Ia sampai ke pelayan dan membentuk pautan, berunding tentang keselamatan, mengesahkan pengguna, dan menggunakan pengalamatan serta penghalaan. Kegagalan pada setiap satu meninggalkan bukti berbeza, dan kod milik satu peringkat tidak memberitahu apa-apa yang berguna tentang yang lain.
Kesilapan yang perlu dielakkan ialah memperlakukan kod sebagai tahap keterukan. Kegagalan pautan dan kegagalan kebenaran kedua-duanya dibaca sebagai "tidak dapat menyambung", dan tidak ada persamaan lain antara keduanya. Keterukan memberitahu betapa mendesaknya sesuatu; peringkat memberitahu apa yang perlu dibuka.
| Code family | Stage | Where the evidence lives |
|---|---|---|
| 829, 703 | Link or dial completion | Client event log, remote listener reachability |
| 720 | PPP negotiation and miniport binding | Adapter state, bindings, client log detail |
| 691, 649, 812 | Identity and authorization | Gateway or authentication server decision |
| Connected, no traffic | Addressing, routing and resolution | Route table and resolver configuration |
Peringkat satu: pautan dan percubaan dail
829 bermakna pautan asas terputus. Ia tidak menyatakan sama ada rakan jauh berhenti menjawab, kotak tengah membunuh sesi, atau dasar pada klien menutupnya. Kod penyelesaian dail seperti 703 lebih awal lagi: percubaan itu tidak pernah sampai mempunyai pautan, yang biasanya menunjuk kepada profil, keadaan perkhidmatan atau dasar setempat.
Get-VpnConnection -Name 'Corp' | Select-Object Name,ServerAddress,TunnelType,AuthenticationMethod,ConnectionStatus
Test-NetConnection -ComputerName vpn.example.net -Port 443
Get-WinEvent -LogName Application -MaxEvents 200 | Where-Object ProviderName -match 'RasClient' | Select-Object -First 15 TimeCreated,Id,Message
Pertanyaan peristiwa ialah bahagian yang orang langkau. Rekod di sebelah klien dengan cap masa dan nama antara muka lebih bernilai daripada dialog, kerana ia memberitahu sama ada percubaan itu langsung meninggalkan mesin. Tiada rekod dan tiada jawapan daripada pendengar bermakna masalah kebolehcapaian, dan tiada penyuntingan klien yang mengubahnya.
Jika profil yang sama berfungsi pada rangkaian lain, berhenti di sini. Kod itu menerangkan keadaan laluan dan bukan kesilapan konfigurasi, dan perbandingan berguna seterusnya ialah dua tangkapan dan bukan pemasangan semula lagi.
Peringkat dua: PPP dan pengikatan miniport
720 terletak antara pautan dan pengguna. Terowong naik dan kemudian lapisan PPP tidak dapat merundingkan alamat atau protokol kawalan, yang selalunya masalah pengikatan pada klien dan bukan kelayakan yang ditolak. Perbezaan itulah seluruh nilai kod ini: ia menyatakan kelayakan tidak pernah dicapai, jadi akaun bukan suspek.
Get-NetAdapter -IncludeHidden | Where-Object InterfaceDescription -match 'WAN Miniport' | Select-Object Name,Status,ifIndex
Get-NetAdapterBinding | Where-Object ComponentID -match 'ms_pptp|ms_l2tp|ms_sstp|ms_agile' | Select-Object Name,ComponentID,Enabled
Membaca kedua-dua output itu lebih bermaklumat daripada menetapkan semula apa-apa. Miniport yang wujud tetapi tidak dimulakan, atau pengikatan protokol yang dilumpuhkan oleh perisian lain, menghasilkan tepat kegagalan peringkat ini. Kedua-duanya boleh dibaiki tanpa menyentuh seluruh tindanan. Sebaliknya, penetapan semula penuh membuang pengalamatan dan keadaan penapisan yang tidak berkaitan dengan kerosakan.
Peringkat tiga: identiti dan kebenaran
691 bermakna kelayakan ditolak. 649 bermakna akaun tidak dibenarkan mendail, dan 812 bermakna dasar akses jauh menolak sambungan. Ini keputusan, bukan kerosakan pengangkutan, dan klien hanya boleh melaporkannya.
Bukti ada di sebelah sana. Minta pengendali gerbang memberikan percubaan pada cap masa itu dan dasar yang sepadan; tanya pemilik direktori sama ada akaun mempunyai kebenaran dail dan sama ada ia berada dalam kumpulan yang dikehendaki oleh dasar. Menukar jenis terowong atau memasang semula klien tidak boleh mengubah keputusan yang dibuat tentang identiti.
Tabiat berguna pada peringkat ini ialah menulis rentetan akaun yang tepat ke dalam tiket, termasuk sebarang awalan domain. Bilangan kes 691 yang mengejutkan ialah kelayakan yang disimpan untuk domain yang salah, dan itu kelihatan pada rentetan akaun dan bukan pada tetapan protokol.
Peringkat empat: bersambung, dan tiada apa yang berfungsi
Sambungan boleh selesai dan masih tidak berguna. Ia memegang alamat, klien melaporkan kejayaan, dan setiap permintaan aplikasi tamat masa. Tiada apa-apa dalam dialog yang mencerminkan itu, dan tiada kod untuk dirujuk. Pada ketika itu dialog sudah selesai dan bukti berguna ada di tempat lain.
Get-NetRoute -DestinationPrefix 10.24.0.0/16 | Select-Object DestinationPrefix,NextHop,InterfaceAlias
Resolve-DnsName files.corp.example.internal
Test-NetConnection -ComputerName 10.24.6.15 -Port 445
Jika laluan tiada, pelayan tidak menolaknya atau klien menggugurkannya. Jika laluan ada dan nama gagal, masalahnya pada resolusi. Jika kedua-duanya berfungsi dan aplikasi masih gagal, anda sudah melepasi terowong dan masuk ke konfigurasi aplikasi itu sendiri.
Kekalkan perubahan pada satu lapisan setiap ujian. Setiap suntingan sebelum percubaan seterusnya menjadi sebahagian daripada konteks kod seterusnya, dan kod yang menerangkan suntingan terakhir anda lebih buruk daripada tiada kod langsung.
Satu percubaan, satu perubahan, satu rekod
Walau apa pun peringkatnya, rekod harus mengandungi kod, mesej, nama profil, cap masa dan rangkaian anda berada. Lima medan, dan setiap satunya sudah ada di hadapan anda dalam dialog atau log klien. Set itu cukup kecil untuk ditampal ke dalam tiket dan cukup khusus untuk orang lain menghasilkan semula.
Kemudian letakkan cap masa itu di sebelah rekod di sebelah sana. Jadual berhampiran bahagian atas halaman ini menyatakan peringkat mana yang memiliki setiap percanggahan. Tanpa rekod kedua kod hanya menyempitkan carian; dengannya, peringkat diputuskan. Perbandingan itulah yang menjadikan nombor satu diagnosis dan bukan tekaan.
Tabiat itu meliputi hampir setiap kerosakan VPN asli Windows, dan tiada cabang memerlukan pemasangan semula apa-apa. Dialog itu sentiasa memberitahu anda yang mana satu anda miliki; kerjanya ialah enggan menganggap semuanya sebagai masalah yang sama.