Dari waktu ke waktu pengguna Linux dan Unix dihadapkan dengan berbagai masalah jaringan. Banyak dari masalah ini disajikan di sini dan di beberapa forum pemecahan masalah lainnya, tetapi sangat konkret dan berisi banyak informasi teknis tambahan, dan kadang-kadang agak sulit untuk memahami poin utama dan alasan sebenarnya perilaku sistem kereta.
Dengan mengajukan pertanyaan ini, maksud saya adalah memulai halaman wiki komunitas yang memungkinkan generalisasi pemecahan masalah jaringan dan pengalaman debugging kami. Saya berharap pengguna Linux dan Unix dapat lebih mudah mengenali dan memecahkan ("membagi dan menaklukkan") masalah jaringan mereka menggunakan halaman ini.
Induk halaman ini harus menjadi praktik terbaik untuk mendiagnosis masalah . Tetapi di sini kita harus fokus pada pemecahan masalah jaringan dari ruang pengguna dan kernel.
Saya kira, jika Anda:
- Bagikan informasi tentang menggunakan beberapa alat diagnostik jaringan yang hebat dengan contoh penggunaan konkret dan contoh bug jaringan, yang mereka bantu tangkap.
- Bagikan tautan ke tutorial jaringan hebat yang terhubung dengan subjek ini
- Ceritakan tentang metode umum atau resep yang memungkinkan untuk mengatasi beberapa kelas masalah jaringan
- Bagikan informasi tentang perangkat Anda untuk debugging jaringan dan pemecahan masalah
itu sangat cocok untuk topik ini.
Saya akan mulai dari membagikan tautan ke berbagai alat diagnostik dan tutorial sederhana berusia 12 tahun . Juga tutorial archlinux tampaknya memiliki informasi aktual tentang subjek kita. Dan untuk menyelam ke jaringan linux kita harus mengunjungi Linux Networking-HOWTO .
Jawaban:
Saya pikir, prinsip umum pemecahan masalah jaringan adalah:
Bagi saya, saya biasanya mendapatkan semua informasi yang diperlukan menggunakan semua alat yang diperlukan, dan mencoba mencocokkan informasi ini dengan pengalaman saya. Menentukan level tumpukan jaringan yang mengandung bug membantu untuk memotong varian yang tidak biasa. Menggunakan pengalaman orang lain membantu menyelesaikan masalah dengan cepat, tetapi sering kali mengarah ke situasi, bahwa saya dapat menyelesaikan beberapa masalah tanpa pemahamannya dan jika masalah ini terjadi lagi, tidak mungkin bagi saya untuk mengatasinya lagi tanpa internet.
Dan secara umum, saya tidak tahu bagaimana saya memecahkan masalah jaringan. Tampaknya ada beberapa fungsi ajaib di otak saya yang dinamai
SolveNetworkProblem(information_about_system_state, my_experience, people_experience)
, yang kadang-kadang bisa mengembalikan jawaban yang tepat, dan juga kadang-kadang bisa gagal (seperti di sini TCP mati di laptop Linux ).Saya biasanya menggunakan utils dari set ini untuk debugging jaringan:
ifconfig
(atauip link
,ip addr
) - untuk mendapatkan informasi tentang antarmuka jaringanping
- untuk memvalidasi, jika host target dapat diakses dari mesin saya.ping
juga dapat digunakan untuk diagnosa DNS dasar - kita dapat melakukan ping host dengan alamat IP atau nama hostnya dan kemudian memutuskan apakah DNS berfungsi sama sekali. Dan kemudiantraceroute
atautracepath
ataumtr
untuk melihat apa yang terjadi di perjalanan ke sana.dig
- mendiagnosis segalanya DNSdmesg | less
ataudmesg | tail
ataudmesg | grep -i error
- untuk memahami pendapat kernel Linux tentang beberapa masalah.netstat -antp
+| grep smth
- Penggunaan perintah netstat saya yang paling populer, yang menunjukkan informasi tentang koneksi TCP. Seringkali saya melakukan beberapa penyaringan menggunakan grep. Lihat jugass
perintah baru (dariiproute2
rangkaian standar baru alat jaringan Linux) danlsof
seperti padalsof -ai tcp -c some-cmd
.telnet <host> <port>
- Sangat berguna untuk berkomunikasi dengan berbagai layanan TCP (misalnya pada SMTP, protokol HTTP), juga kita dapat memeriksa peluang umum untuk terhubung ke beberapa port TCP.iptables-save
(di Linux) - untuk membuang tabel iptables lengkapethtool
- dapatkan semua parameter kartu antarmuka jaringan (status tautan, kecepatan, parameter pembongkaran ...)socat
- alat tentara swiss untuk menguji semua protokol jaringan (UDP, multicast, SCTP ...). Terutama berguna (lebih daripada telnet) dengan beberapa-d
opsi.iperf
- untuk menguji ketersediaan bandwidthopenssl
(s_client
,ocsp
,x509
...) untuk debug semua masalah SSL / TLS / PKI.wireshark
- alat yang ampuh untuk menangkap dan menganalisis lalu lintas jaringan, yang memungkinkan Anda untuk menganalisis dan menangkap banyak bug jaringan.iftop
- Tampilkan pengguna besar di jaringan / router.iptstate
(di Linux) - tampilan saat ini dari pelacakan koneksi firewall.arp
(atau yang baru (Linux)ip neigh
) - menunjukkan status tabel ARP.route
atau yang lebih baru (di Linux)ip route
- menunjukkan status tabel perutean.strace
(atautruss
,dtrace
atautusc
tergantung pada sistem) - adalah alat yang berguna yang menunjukkan apa panggilan sistem melakukan proses masalah, itu juga menunjukkan kode kesalahan (errno) ketika panggilan sistem gagal. Informasi ini sering mengatakan cukup untuk memahami perilaku sistem dan menyelesaikan masalah. Atau, menggunakan breakpoint pada beberapa fungsi jaringan digdb
dapat membiarkan Anda mengetahui kapan mereka dibuat dan dengan argumen mana.iptables -nvL
menunjukkan berapa banyak paket yang cocok dengan masing-masing aturan (iptables -Z
menjadi nol penghitung). TheLOG
Target dimasukkan dalam rantai firewall berguna untuk melihat mana paket menjangkau mereka dan bagaimana mereka telah berubah ketika mereka sampai di sana. Untuk lebih jauhNFLOG
(terkait denganulogd
) akan mencatat paket lengkap.sumber
nmap
. Profil port terbuka pada mesin dapat dengan cepat memberi Anda petunjuk apakah Anda sedang melihat server Linux atau Windows, misalnya.tcpdump
. Sebagai penganalisa paket standar untuk TCP.Sejumlah "masalah jaringan" yang mengejutkan bermuara pada masalah DNS dari satu jenis atau lainnya. Pemecahan masalah awal harus digunakan
ping -n w.x.y.z
untuk meninggalkan resolusi DNS dari nama host, dan cukup periksa konektivitas IP. Setelah itu, gunakanroute -n
untuk memeriksa rute IP default tanpa resolusi DNS.Setelah memverifikasi konektivitas IP, dan perutean
nslookup
,,host
dandig
dapat menghasilkan informasi. Ingat bahwa "penguncian" dapat menunjukkan bahwa batas waktu DNS sedang terjadi.Jangan lupa untuk memeriksa keberadaan dan konten
/etc/resolv.conf
. Klien DHCP mengubah file itu dengan setiap sewa, dan kadang-kadang mereka salah, atau jika ruang disk ketat, pembaruan mungkin tidak terjadi.sumber
Masalah kabel bisa ada. Jika Anda memiliki akses ke perangkat keras, pastikan semua kabel tersambung dan terhubung secara mekanis. Jika Anda dapat melihat router atau antarmuka ethernet, pastikan lampu tautan menyala.
Jarak jauh, Anda harus bergantung pada
ethtool
danmii-tool
."Tautan terdeteksi: ya" baik, tetapi 10Mb / s dan Half duplex tidak baik, karena NIC di komputer itu dapat melakukan lebih baik. Saya perlu mencari tahu apakah NIC rusak atau kabelnya. Komputer lain yang terhubung ke router yang sama mengatakan 100Mb / s, dupleks penuh.
sumber