Tên
mang(8) — IP, DNS, cổng, đường đi, bắt gói tin cho Linux, Windows, macOS, Cisco
Mục lục
Gặp vấn đề · Lệnh theo hệ điều hành · DNS & web · Bắt gói tin · Chia subnet · Cổng hay gặp · Nguồn
Mô tả
Lệnh kiểm tra mạng, đặt cạnh nhau cho Linux, Windows, macOS và Cisco.
Gặp vấn đề
Kiểm tra từ dưới lên: dây → IP → gateway → Internet → DNS → cổng dịch vụ.
- Máy nhận IP
169.254.x.x - Không xin được IP (DHCP):
ipconfig /release→ipconfig /renew - Có IP nhưng không ra ngoài
ping <gateway>rồiping 8.8.8.8- Ping được
8.8.8.8, vào web theo tên không được - Lỗi DNS:
nslookup <tên> - Web / dịch vụ không vào được
nc -zv <ip> <cổng>· Windows:Test-NetConnection <ip> -Port <cổng>- Mạng chập chờn, lúc được lúc không
mtr -rwc 50 <ip>· Windows:pathping <ip>- Nghi trùng IP
arp -a, Wireshark lọcarp.duplicate-address-detected
Connection refused = cổng đóng (dịch vụ không chạy) · timed out = bị firewall chặn hoặc sai đường.
Lệnh theo hệ điều hành
- Xem IP
- Linux
ip -br aWindowsipconfig /allmacOSifconfigCiscoshow ip interface brief - Bảng định tuyến
- Linux
ip routeWindowsroute printmacOSnetstat -rnCiscoshow ip route - Đường đi
- Linux
traceroute <ip>Windowstracert <ip>macOStraceroute <ip>Ciscotraceroute <ip> - Đường đi kèm % mất gói
- Linux
mtr -rwc 50 <ip>Windowspathping <ip>macOSmtr -rwc 50 <ip>Cisco — - Tra DNS
- Linux
dig <tên>Windowsnslookup <tên>macOSdig <tên>Cisco — - IP ↔ MAC (ARP)
- Linux
ip neighWindowsarp -amacOSarp -aCiscoshow arp - Cổng đang mở
- Linux
ss -tulpnWindowsnetstat -anomacOSlsof -nP -iTCP -sTCP:LISTENCisco — - Thử kết nối tới cổng
- Linux
nc -zv <ip> <cổng>WindowsTest-NetConnection <ip> -Port <cổng>macOSnc -zv <ip> <cổng>Ciscotelnet <ip> <cổng> - Xin lại IP
- Linux
sudo networkctl renew <card>Windowsipconfig /release→/renewmacOSsudo ipconfig set en0 DHCPCisco — - Xoá cache DNS
- Linux
resolvectl flush-cachesWindowsipconfig /flushdnsmacOSsudo dscacheutil -flushcacheCisco —
DNS & web
- Hỏi một DNS server cụ thể
dig @<dns-server> <tên>·nslookup <tên> <dns-server>- Chỉ lấy IP
dig +short <tên>- Xem header HTTP
curl -I https://<tên>- Chỉ lấy mã trạng thái
curl -s -o /dev/null -w "%{http_code}\n" <url>- Thời gian từng bước (DNS, kết nối, TLS)
curl -s -o /dev/null -w "dns %{time_namelookup} tcp %{time_connect} tls %{time_appconnect} tổng %{time_total}\n" <url>- Hạn chứng chỉ HTTPS
openssl s_client -connect <tên>:443 -servername <tên> </dev/null 2>/dev/null | openssl x509 -noout -dates
Bắt gói tin
- Gói của một máy
sudo tcpdump -i any host <ip>- Gói tới một cổng
sudo tcpdump -i any port 53- Lưu ra file để mở bằng Wireshark
sudo tcpdump -i any -w ra.pcap host <ip>- Quét cổng một máy
nmap <ip>- Tìm máy đang bật trong dải
nmap -sn 192.168.1.0/24- Đo băng thông giữa 2 máy
- máy A
iperf3 -s· máy Biperf3 -c <ip-A>
ip.addr == 192.168.1.10- Gói đi hoặc đến máy này
dhcp·dns- Xin IP · truy vấn DNS
arp.duplicate-address-detected- Trùng IP
tcp.analysis.retransmission- Gói phải gửi lại: mạng mất gói
tcp.flags.reset == 1- Kết nối bị từ chối hoặc cắt ngang
Chia subnet
- /24
- Mask 255.255.255.0Số máy dùng được 254
- /25
- Mask 255.255.255.128Số máy dùng được 126
- /26
- Mask 255.255.255.192Số máy dùng được 62
- /27
- Mask 255.255.255.224Số máy dùng được 30
- /28
- Mask 255.255.255.240Số máy dùng được 14
- /29
- Mask 255.255.255.248Số máy dùng được 6
- /30
- Mask 255.255.255.252Số máy dùng được 2
10.0.0.0/8·172.16.0.0/12·192.168.0.0/16- IP nội bộ
127.0.0.0/8- Chính máy mình
169.254.0.0/16- Tự gán khi không xin được IP
100.64.0.0/10- Nhà mạng NAT thêm một tầng (CGNAT)
Cổng hay gặp
- 22
- SSH
- 53
- DNS
- 67 / 68
- DHCP
- 80 / 443
- HTTP / HTTPS
- 88
- Kerberos (đăng nhập domain)
- 123
- NTP (đồng bộ giờ)
- 161
- SNMP (giám sát thiết bị)
- 389 / 636
- LDAP / LDAPS
- 445
- SMB (chia sẻ Windows)
- 502
- Modbus TCP
- 554
- RTSP (camera)
- 1433 · 3306 · 5432
- SQL Server · MySQL · PostgreSQL
- 3389
- Remote Desktop
- 6379
- Redis
Nguồn
- IETF — RFC 1918 (IP nội bộ) · RFC 3927 (link-local) · RFC 6598 (CGNAT) · RFC 4632 (CIDR)
- IANA — Service Name and Port Number Registry
- tcpdump(1) · Wireshark Display Filter Reference
Xem thêm
linux(8), windows(8), switch(8), git(1), docker(1), terminal(1)