作为一名 IT 从业者,经常都要跟 Linux 打交道,其中网络更是用得频繁,掌握基本的网络命令是必备的技能,更是提高我们工作效率的必备良器,今天这篇文章就来梳理下常用的网络工具。因为梳理的命令比较多,所以文章自然不会深入介绍这些命令的用法,大家可以有个印象,然后学习工作中碰到了再具体去查好了。
总的来说,Linux 网络命令涉及到这么几块:
-
网络配置:
ifconfig
、ip
-
连通性探测:
ping
、traceroute
、telnet
、mtr
-
网络连接:
netstat
、ss
、nc
、lsof
-
流量统计:
ifstat
、sar
、iftop
-
交换与路由:
arp
、arping
、vconfig
、route
-
防火墙:
iptables
、ipset
-
域名:
host
、nslookup
、dig
、whois
-
抓包:
tcpdump
-
虚拟设备:
tunctl
、brctl
、ovs
-
01 网络配置
最重要的两个工具就是
ifconfig
和ip
,这两个工具分别来自两个工具包net-tools
和iproute2
,其中,net-tools
包还包含如route
、netstat
、tc
、ifstat
等等常用的工具,不过,net-tools
包已经逐步在被iproute2
包替换。对于我们学习来说,不妨都学习下,这样也有助于理解和记忆。1.1 ifconfig
ifconfig
通常是用来查看网卡的信息(比如 IP 地址、收发包及丢包情况等),以及配置网卡(如启停网卡,修改网卡 MTU,修改 IP、MAC 地址等)查看网卡信息:
-
[root@by ~]# ifconfig eth0
-
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
-
inet 172.18.82.173 netmask 255.255.240.0 broadcast 172.18.95.255
-
ether 00:16:3e:12:16:e7 txqueuelen 1000 (Ethernet)
-
RX packets 2592887 bytes 775090020 (739.1 MiB)
-
RX errors 0 dropped 0 overruns 0 frame 0
-
给网卡配置 IP 地址:
-
ifconfig eth0 192.168.2.10
-
ifconfig eth0 192.168.2.10 netmask 255.255.255.0
-
ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
-
开关网卡:
-
ifconfig eth0 down
-
ifconfig eth0 up
1.2 ip
ip
是非常强大的工具,可以替换 net-tools
包的所有工具,如常见的 ifconfig
、 netstat
、 route
、 arp
等,比如查看网卡信息:
[root@by ~]# ip addr ls dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3e:12:16:e7 brd ff:ff:ff:ff:ff:ff
inet 172.18.82.173/20 brd 172.18.95.255 scope global eth0
valid_lft forever preferred_lft forever
查看路由:
[root@by ~]# ip route
default via 172.18.95.253 dev eth0
169.254.0.0/16 dev eth0 scope link metric 1002
172.18.80.0/20 dev eth0 proto kernel scope link src 172.18.82.173
查看 arp 信息: