[译]Linux系统管理员常用网络工具
Linux中用于网络管理、故障排除和调试的一些最常用的命令行工具和实用程序
来源: A Linux Sysadmin’s Guide to Network Management, Troubleshooting and Debugging
系统管理员的日常包括配置,维护,故障排除和管理数据中心内的服务器和网络。Linux中有许多用于管理的工具和实用程序。
在本文中,我们将在不同类别下回顾Linux中用于网络管理的一些最常用的命令行工具和实用程序。我们将解释一些常见的用法示例,这些示例将使Linux中的网络管理变得更加容易。
网络配置,故障排除和调试工具
1. ifconfig 命令
ifconfig 是一个网络接口配置命令行工具,它还会被系统在启动时用来初始化网络接口。服务器启动并运行后,可以用它给网络接口分配IP,并根据需要启用或禁用接口。
它还用于查看当前活动接口的状态IP地址,硬件/ MAC地址以及MTU(最大传输单元)大小。因此ifconfig对调试或调整系统很有用。
以下是显示所有活动网络接口状态的示例:
$ ifconfig enp1s0 Link encap:Ethernet HWaddr 28:d2:44:eb:bd:98 inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::8f0c:7825:8057:5eec/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:169854 errors:0 dropped:0 overruns:0 frame:0 TX packets:125995 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:174146270 (174.1 MB) TX bytes:21062129 (21.0 MB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:15793 errors:0 dropped:0 overruns:0 frame:0 TX packets:15793 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:2898946 (2.8 MB) TX bytes:2898946 (2.8 MB)
要列出当前可用的所有接口,无论是up还是down,请使用-a参数
$ ifconfig -a 给接口分配IP地址
$ sudo ifconfig eth0 192.168.56.5 netmask 255.255.255.0 启用接口
$ sudo ifconfig up eth0
要停用或关闭网络接口
$ sudo ifconfig down eth0
注意:虽然ifconfig是一个很棒的工具,但它现在已经过时(不推荐使用),它的替换是ip命令,如下所述。
2. IP 命令
ip command 是另一个有用的命令行工具,用于显示和操作路由、网络设备、网络接口。它是ifconfig和其他网络命令的替代品。(阅读tecmint的文章 “What’s Difference Between ifconfig and ip Command” 以了解更多信息。)
以下命令将显示IP地址和有关网络接口的其他信息。
$ ip addr show 1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 28:d2:44:eb:bd:98 brd ff:ff:ff:ff:ff:ff inet 192.168.0.103/24 brd 192.168.0.255 scope global dynamic enp1s0 valid_lft 5772sec preferred_lft 5772sec inet6 fe80::8f0c:7825:8057:5eec/64 scope link valid_lft forever preferred_lft forever 3: wlp2s0: <broadcast,multicast> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 38:b1:db:7c:78:c7 brd ff:ff:ff:ff:ff:ff ... </broadcast,multicast></broadcast,multicast,up,lower_up></loopback,up,lower_up>
临时为特定网络接口(eth0)分配IP地址
$ sudo ip addr add 192.168.56.1 dev eth0
从网络接口(eth0)删除分配的IP地址
$ sudo ip addr del 192.168.56.15/24 dev eth0
显示在内核中当前邻居表
$ ip neigh 192.168.0.1 dev enp1s0 lladdr 10:fe:ed:3d:f3:82 REACHABLE
3. ifup, ifdown, 和 ifquery 命令
ifup命令用来激活网络接口,使其可用于传输和接收数据。
$ sudo ifup eth0
ifown 命令用来禁用网络接口,使其处于无法传输或接收数据的状态。
$ sudo ifdown eth0
ifquery命令用于解析网络接口配置,使您能够查看当前配置方式。
$ sudo ifquery eth0
4. Ethtool 命令
ethtool是一个用于查询和修改网络接口控制器参数和设备驱动程序的实用命令行工具。以下示例显示了ethtool的用法以及用于查看网络接口参数的命令。
$ sudo ethtool enp0s3 Settings for enp0s3: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: umbg Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
5. Ping Command
ping (Packet INternet Groper)是一种通常用于测试网络(局域网(LAN)或广域网(WAN))上两个系统之间连接的实用程序。它使用ICMP(Internet控制消息协议)与网络上的节点进行通信。
例如,要测试与另一个节点的连接,只需提供其IP或主机名。
$ ping 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=0.191 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.156 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.179 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.182 ms 64 bytes from 192.168.0.103: icmp_seq=5 ttl=64 time=0.207 ms 64 bytes from 192.168.0.103: icmp_seq=6 ttl=64 time=0.157 ms ^C --- 192.168.0.103 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5099ms rtt min/avg/max/mdev = 0.156/0.178/0.207/0.023 ms
你也可以使用-c参数告诉ping在指定数量的ECHO_REQUEST数据包之后退出
$ ping -c 4 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=1.09 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.157 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.163 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.190 ms --- 192.168.0.103 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3029ms rtt min/avg/max/mdev = 0.157/0.402/1.098/0.402 ms
6. Traceroute 命令
Traceroute 是一个用于跟踪从本地系统到另一个网络系统的完整路径的实用命令行工具。它会在您到达终端服务器的链路中打印跳数(路由器IP)。它是ping命令后易于使用的网络故障排除工具。
例如,我们正在跟踪从本地系统到IP服务器之一的路由数据包,IP地址为216.58.204.46。
$ traceroute 216.58.204.46 traceroute to 216.58.204.46 (216.58.204.46), 30 hops max, 60 byte packets 1 gateway (192.168.0.1) 0.487 ms 0.277 ms 0.269 ms 2 5.5.5.215 (5.5.5.215) 1.846 ms 1.631 ms 1.553 ms 3 * * * 4 72.14.194.226 (72.14.194.226) 3.762 ms 3.683 ms 3.577 ms 5 108.170.248.179 (108.170.248.179) 4.666 ms 108.170.248.162 (108.170.248.162) 4.869 ms 108.170.248.194 (108.170.248.194) 4.245 ms 6 72.14.235.133 (72.14.235.133) 72.443 ms 209.85.241.175 (209.85.241.175) 62.738 ms 72.14.235.133 (72.14.235.133) 65.809 ms 7 66.249.94.140 (66.249.94.140) 128.726 ms 127.506 ms 209.85.248.5 (209.85.248.5) 127.330 ms 8 74.125.251.181 (74.125.251.181) 127.219 ms 108.170.236.124 (108.170.236.124) 212.544 ms 74.125.251.181 (74.125.251.181) 127.249 ms 9 216.239.49.134 (216.239.49.134) 236.906 ms 209.85.242.80 (209.85.242.80) 254.810 ms 254.735 ms 10 209.85.251.138 (209.85.251.138) 252.002 ms 216.239.43.227 (216.239.43.227) 251.975 ms 209.85.242.80 (209.85.242.80) 236.343 ms 11 216.239.43.227 (216.239.43.227) 251.452 ms 72.14.234.8 (72.14.234.8) 279.650 ms 277.492 ms 12 209.85.250.9 (209.85.250.9) 274.521 ms 274.450 ms 209.85.253.249 (209.85.253.249) 270.558 ms 13 209.85.250.9 (209.85.250.9) 269.147 ms 209.85.254.244 (209.85.254.244) 347.046 ms 209.85.250.9 (209.85.250.9) 285.265 ms 14 64.233.175.112 (64.233.175.112) 344.852 ms 216.239.57.236 (216.239.57.236) 343.786 ms 64.233.175.112 (64.233.175.112) 345.273 ms 15 108.170.246.129 (108.170.246.129) 345.054 ms 345.342 ms 64.233.175.112 (64.233.175.112) 343.706 ms 16 108.170.238.119 (108.170.238.119) 345.610 ms 108.170.246.161 (108.170.246.161) 344.726 ms 108.170.238.117 (108.170.238.117) 345.536 ms 17 lhr25s12-in-f46.1e100.net (216.58.204.46) 345.382 ms 345.031 ms 344.884 ms
7. MTR 网络诊断工具
MTR 是一种现代命令行网络诊断工具,它将ping和traceroute的功能结合到了一起。默认情况下,其输出会实时更新,直到您按q退出程序。
运行mtr的最简单方法是为其提供主机名或IP地址作为参数。
$ mtr google.com OR $ mtr 216.58.223.78
输出样例
tecmint.com (0.0.0.0) Thu Jul 12 08:58:27 2018 First TTL: 1 Host Loss% Snt Last Avg Best Wrst StDev 1. 192.168.0.1 0.0% 41 0.5 0.6 0.4 1.7 0.2 2. 5.5.5.215 0.0% 40 1.9 1.5 0.8 7.3 1.0 3. 209.snat-111-91-120.hns.net.in 23.1% 40 1.9 2.7 1.7 10.5 1.6 4. 72.14.194.226 0.0% 40 89.1 5.2 2.2 89.1 13.7 5. 108.170.248.193 0.0% 40 3.0 4.1 2.4 52.4 7.8 6. 108.170.237.43 0.0% 40 2.9 5.3 2.5 94.1 14.4 7. bom07s10-in-f174.1e100.net 0.0% 40 2.6 6.7 2.3 79.7 16.
您可以使用-c参数将ping数量限制为特定值并在这些ping之后退出mtr。
$ mtr -c 4 google.com
8. Route 命令
route 是一个用于显示或操作Linux系统的IP路由表的实用命令行工具。它主要用于通过接口配置到特定主机或网络的静态路由。
查看内核IP路由表。
$ route Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 enp0s3 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
您可以使用许多参数来配置路由。如:
将默认网关添加到路由表。
$ sudo route add default gw
将路由添加到路由表中。
$ sudo route add -net gw
从路由表中删除特定的路由。
$ sudo route del -net
9. Nmcli 命令
Nmcli Nmcli是一个易于使用,可编写脚本的命令行工具,用于报告网络状态,管理网络连接和控制NetworkManager。
查看所有网络设备
$ nmcli dev status DEVICE TYPE STATE CONNECTION virbr0 bridge connected virbr0 enp0s3 ethernet connected Wired connection 1
检查系统上的网络连接
$ nmcli con show Wired connection 1 bc3638ff-205a-3bbb-8845-5a4b0f7eef91 802-3-ethernet enp0s3 virbr0 00f5d53e-fd51-41d3-b069-bdfd2dde062b bridge virbr0
仅查看活动的连接,请添加-a参数。
$ nmcli con show -a
网络扫描和性能分析工具
10. Netstat 命令
netstat 是一个命令行工具,可显示有关Linux网络子系统的有用信息,如网络连接,路由表,接口统计信息等。它对网络故障排除和性能分析很有用。此外,它还是一个基本的网络服务调试工具,用于检查哪些程序正在侦听哪些端口。
例如,以下命令将显示处于侦听模式的所有TCP端口以及正在侦听它们的程序。
$ sudo netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 1257/master tcp 0 0 127.0.0.1:5003 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1015/dovecot tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1015/dovecot tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 1257/master tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1404/pdns_server tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1064/pure-ftpd (SER tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 972/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 975/cupsd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1257/master tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 636/lscpd (lscpd - tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1015/dovecot tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1015/dovecot tcp6 0 0 :::3306 :::* LISTEN 1053/mysqld tcp6 0 0 :::3307 :::* LISTEN 1211/mysqld tcp6 0 0 :::587 :::* LISTEN 1257/master tcp6 0 0 :::110 :::* LISTEN 1015/dovecot tcp6 0 0 :::143 :::* LISTEN 1015/dovecot tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::80 :::* LISTEN 990/httpd tcp6 0 0 :::465 :::* LISTEN 1257/master tcp6 0 0 :::53 :::* LISTEN 1404/pdns_server tcp6 0 0 :::21 :::* LISTEN 1064/pure-ftpd (SER tcp6 0 0 :::22 :::* LISTEN 972/sshd tcp6 0 0 ::1:631 :::* LISTEN 975/cupsd tcp6 0 0 :::25 :::* LISTEN 1257/master tcp6 0 0 :::993 :::* LISTEN 1015/dovecot tcp6 0 0 :::995 :::* LISTEN 1015/dovecot
要查看内核路由表,请使用-r参数(相当于上面运行的route命令)。
$ netstat -r Destination Gateway Genmask Flags MSS Window irtt Iface default gateway 0.0.0.0 UG 0 0 0 enp0s3 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
注意:虽然Netstat是一个很棒的工具,但它现在已经过时(不推荐使用),它的替换是ss命令,下面将对此进行说明。
11. ss 命令
ss (socket statistics)是一个强大的命令行实用程序,用于调查套接字。它转储套接字统计信息并显示类似于netstat的信息。此外,与其他类似的实用程序相比,它显示了更多的TCP和状态信息。以下示例显示如何列出服务器上打开的所有TCP端口(套接字)。
$ ss -ta State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 *:submission *:* LISTEN 0 128 127.0.0.1:fmpro-internal *:* LISTEN 0 100 *:pop3 *:* LISTEN 0 100 *:imap *:* LISTEN 0 128 *:sunrpc *:* LISTEN 0 100 *:urd *:* LISTEN 0 128 *:domain *:* LISTEN 0 9 *:ftp *:* LISTEN 0 128 *:ssh *:* LISTEN 0 128 127.0.0.1:ipp *:* LISTEN 0 100 *:smtp *:* LISTEN 0 128 *:8090 *:* LISTEN 0 100 *:imaps *:* LISTEN 0 100 *:pop3s *:* ESTAB 0 0 192.168.0.104:ssh 192.168.0.103:36398 ESTAB 0 0 127.0.0.1:34642 127.0.0.1:opsession-prxy ESTAB 0 0 127.0.0.1:34638 127.0.0.1:opsession-prxy ESTAB 0 0 127.0.0.1:34644 127.0.0.1:opsession-prxy ESTAB 0 0 127.0.0.1:34640 127.0.0.1:opsession-prxy LISTEN 0 80 :::mysql :::* ...
显示所有活动的TCP连接及其计时器
$ ss -to
12 NC 命令
NC (NetCat) 也称为“网络瑞士军刀”,是一种功能强大的实用程序,几乎可用于与TCP,UDP或UNIX域套接字相关的任何任务。它用于开放TCP连接,侦听任意TCP和UDP端口,执行端口扫描以及更多。您还可以将其用作简单的TCP代理,用于网络守护程序测试,以检查远程端口是否可访问等等。此外,您可以使用nc和 pv命令一起使用以在两台计算机之间传输文件。
扫描端口列表。
$ nc -zv server2.tecmint.lan 21 22 80 443 3000
指定一个端口区间
$ nc -zv server2.tecmint.lan 20-90
以使用nc打开到server2.tecmint.lan上端口5000的TCP连接,使用端口3000作为源端口,超时为10秒。
$ nc -p 3000 -w 10 server2.tecmint.lan 5000
13. Nmap 命令
Nmap (Network Mapper) 是Linux系统/网络管理员的强大且极其通用的工具。它用于收集有关单个主机的信息或探索整个网络的网络。Nmap还用于执行安全扫描,网络审计和查找远程主机上的开放端口等等。
例如,您可以使用域名或IP地址扫描
$ nmap google.com Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:23 BST Nmap scan report for google.com (172.217.166.78) Host is up (0.0036s latency). rDNS record for 172.217.166.78: bom05s15-in-f14.1e100.net Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 4.92 seconds
使用IP地址。
$ nmap 192.168.0.103 Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:24 BST Nmap scan report for 192.168.0.103 Host is up (0.000051s latency). Not shown: 994 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 902/tcp open iss-realsecure 4242/tcp open vrml-multi-use 5900/tcp open vnc 8080/tcp open http-proxy MAC Address: 28:D2:44:EB:BD:98 (Lcfc(hefei) Electronics Technology Co.) Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
阅读关于nmap命令的tecmint文章。
- How to Use Nmap Script Engine (NSE) Scripts in Linux
- A Practical Guide to Nmap (Network Security Scanner) in Kali Linux
- Find Out All Live Hosts IP Addresses Connected on Network in Linux
DNS 查找实用程序
14. host 命令
host 命令 是一个用于执行DNS查找的简单实用程序,它将主机名转换为IP地址,反之亦然。
$ host google.com google.com has address 172.217.166.78 google.com mail is handled by 20 alt1.aspmx.l.google.com. google.com mail is handled by 30 alt2.aspmx.l.google.com. google.com mail is handled by 40 alt3.aspmx.l.google.com. google.com mail is handled by 50 alt4.aspmx.l.google.com. google.com mail is handled by 10 aspmx.l.google.com.
15. dig 命令
dig (domain information groper) 也是另一个简单的DNS查找实用程序,用于查询DNS相关信息,例如A Record,CNAME,MX Record等,例如:
$ dig google.com ; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23083 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 14 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 72 IN A 172.217.166.78 ;; AUTHORITY SECTION: com. 13482 IN NS c.gtld-servers.net. com. 13482 IN NS d.gtld-servers.net. com. 13482 IN NS e.gtld-servers.net. com. 13482 IN NS f.gtld-servers.net. com. 13482 IN NS g.gtld-servers.net. com. 13482 IN NS h.gtld-servers.net. com. 13482 IN NS i.gtld-servers.net. com. 13482 IN NS j.gtld-servers.net. com. 13482 IN NS k.gtld-servers.net. com. 13482 IN NS l.gtld-servers.net. com. 13482 IN NS m.gtld-servers.net. com. 13482 IN NS a.gtld-servers.net. com. 13482 IN NS b.gtld-servers.net. ;; ADDITIONAL SECTION: a.gtld-servers.net. 81883 IN A 192.5.6.30 b.gtld-servers.net. 3999 IN A 192.33.14.30 c.gtld-servers.net. 14876 IN A 192.26.92.30 d.gtld-servers.net. 85172 IN A 192.31.80.30 e.gtld-servers.net. 95861 IN A 192.12.94.30 f.gtld-servers.net. 78471 IN A 192.35.51.30 g.gtld-servers.net. 5217 IN A 192.42.93.30 h.gtld-servers.net. 111531 IN A 192.54.112.30 i.gtld-servers.net. 93017 IN A 192.43.172.30 j.gtld-servers.net. 93542 IN A 192.48.79.30 k.gtld-servers.net. 107218 IN A 192.52.178.30 l.gtld-servers.net. 6280 IN A 192.41.162.30 m.gtld-servers.net. 2689 IN A 192.55.83.30 ;; Query time: 4 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Thu Jul 12 09:30:57 BST 2018 ;; MSG SIZE rcvd: 487
16. NSLookup 命令
Nslookup 也是一种流行的命令行实用程序,用于以交互方式和非交互方式查询DNS服务器。它用于查询DNS资源记录(RR)。您可以找到域的“A”记录(IP地址),如图所示。
$ nslookup google.com Server: 192.168.0.1 Address: 192.168.0.1#53 Non-authoritative answer: Name: google.com Address: 172.217.166.78
也可以执行反向域查找
$ nslookup 216.58.208.174 Server: 192.168.0.1 Address: 192.168.0.1#53 Non-authoritative answer: 174.208.58.216.in-addr.arpa name = lhr25s09-in-f14.1e100.net. 174.208.58.216.in-addr.arpa name = lhr25s09-in-f174.1e100.net. Authoritative answers can be found from: in-addr.arpa nameserver = e.in-addr-servers.arpa. in-addr.arpa nameserver = f.in-addr-servers.arpa. in-addr.arpa nameserver = a.in-addr-servers.arpa. in-addr.arpa nameserver = b.in-addr-servers.arpa. in-addr.arpa nameserver = c.in-addr-servers.arpa. in-addr.arpa nameserver = d.in-addr-servers.arpa. a.in-addr-servers.arpa internet address = 199.180.182.53 b.in-addr-servers.arpa internet address = 199.253.183.183 c.in-addr-servers.arpa internet address = 196.216.169.10 d.in-addr-servers.arpa internet address = 200.10.60.53 e.in-addr-servers.arpa internet address = 203.119.86.101 f.in-addr-servers.arpa internet address = 193.0.9.1
Linux网络数据包分析器
17. Tcpdump 命令
Tcpdump 是一个非常强大且广泛使用的命令行网络嗅探器。它用于抓取和分析在特定接口上通过网络发送或接收的TCP / IP数据包。
使用-i选项从给定接口抓包
$ tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 09:35:40.287439 IP tecmint.com.ssh > 192.168.0.103.36398: Flags [P.], seq 4152360356:4152360552, ack 306922699, win 270, options [nop,nop,TS val 2211778668 ecr 2019055], length 196 09:35:40.287655 IP 192.168.0.103.36398 > tecmint.com.ssh: Flags [.], ack 196, win 5202, options [nop,nop,TS val 2019058 ecr 2211778668], length 0 09:35:40.288269 IP tecmint.com.54899 > gateway.domain: 43760+ PTR? 103.0.168.192.in-addr.arpa. (44) 09:35:40.333763 IP gateway.domain > tecmint.com.54899: 43760 NXDomain* 0/1/0 (94) 09:35:40.335311 IP tecmint.com.52036 > gateway.domain: 44289+ PTR? 1.0.168.192.in-addr.arpa. (42)
抓取特定数量的数据包,使用-c选项输入所需的数字。
$ tcpdump -c 5 -i eth1
您还可以捕获数据包并将其保存到文件中以供以后分析,使用-w标志指定输出文件。
$ tcpdump -w captured.pacs -i eth1
18. Wireshark实用程序
Wireshark 是一种流行的,功能强大,功能多样且易于使用的工具,用于实时捕获和分析分组交换网络中的数据包。您还可以将捕获的数据保存到文件中以供日后检查。系统管理员和网络工程师使用它来监视和检查数据包,以便进行安全性和故障排除。
阅读tecmint的文章 “10 Tips On How to Use Wireshark to Analyze Network Packets 来学习关于Wireshark的更多细节”.
19. Bmon 工具
bmon 是一个功能强大的基于命令行的网络监控和调试实用程序,适用于类Unix系统,它捕获与网络相关的统计信息,并以人性化的格式直观地打印它们。它是一种可靠而有效的实时带宽监视器和速率估算器。
阅读tecmint的文章 “bmon – A Powerful Network Bandwidth Monitoring and Debugging Tool 来学习关于 bmon的更多细节”.
Linux防火墙管理工具
20. Iptables 防火墙
iptables 是一个命令行工具,用于配置,维护和检查表IP包过滤和NAT规则集。它用于设置和管理Linux防火墙(Netfilter)。它允许您列出现有的数据包过滤规则;添加或删除或修改数据包过滤规则;列出数据包过滤规则的每规则计数器。
您可以从tecmint简单而全面的指南中学习如何将Iptables用于各种目的。
- Basic Guide on IPTables (Linux Firewall) Tips / Commands
- 25 Useful IPtable Firewall Rules Every Linux Administrator Should Know
- How To Setup an Iptables Firewall to Enable Remote Access to Services
- How to Block Ping ICMP Requests to Linux Systems
21. Firewalld
Firewalld 是一个强大的动态守护进程来管理Linux防火墙(Netfilter),就像iptables一样。它使用“网络区域”而不是iptables中的INPUT,OUTPUT和FORWARD CHAINS。在目前的Linux发行版上,例如RHEL / CentOS 7和Fedora 21+,iptables正在被firewalld取代。
要开始使用firewalld,请参阅下面列出的这些指南:
- Useful ‘FirewallD’ Rules to Configure and Manage Firewall in Linux
- How to Configure ‘FirewallD’ in RHEL/CentOS 7 and Fedora 21
- How to Start/Stop and Enable/Disable FirewallD and Iptables Firewall in Linux
- Setting Up Samba and Configure FirewallD and SELinux to Allow File Sharing on Linux/Windows
重要: Iptables仍可以被 YUM 安装. 但是,您不能在同一台服务器上同时使用Firewalld和iptables 。
22. UFW (Uncomplicated Firewall)
UFW 是Debian和Ubuntu Linux发行版上众所周知的默认防火墙配置工具。它用于顶级启用/禁用系统防火墙,添加/删除/修改/重置包过滤规则等等。
检查UFW防火墙状态
$ sudo ufw status
如果UFW防火墙未处于活动状态,您可以使用以下命令激活或启用它。
$ sudo ufw enable
禁用UFW防火墙
$ sudo ufw disable
阅读tecmint的文章 “How to Setup UFW Firewall on Ubuntu and Debian” 以更了解ufw).
I如果您想查找有关特定程序的更多信息,可以查看其man手册页
$ man programs_name
目前为止就这样了!在本综合指南中,我们回顾了一些最常用的Linux命令行工具和实用程序,适用于不同类别的Linux,适用于系统管理员,对全职网络管理员/工程师同样有用。
说点什么