1. ifconfig
ifconfig用于输出网络接口配置、调优和debug的各种选项。可以快捷地查看IP地址和其它网络接口的信息。
键入ifconfig查看所有启用的网络接口的状态,包括它们的名字。
可以指定网络接口的名字来只显示这一个接口的信息。
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:5e:c0:a1
inet addr:192.168.169.87 Bcast:192.168.169.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe5e:c0a1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2166 errors:0 dropped:0 overruns:0 frame:0
TX packets:1703 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:238837 (238.8 KB) TX bytes:222389 (222.3 KB)
Interrupt:19 Base address:0x2000
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:172 errors:0 dropped:0 overruns:0 frame:0
TX packets:172 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:12560 (12.5 KB) TX bytes:12560 (12.5 KB)
2. ping
ping发送ECHO_REQUEST包到你指定的地址。这样你可以很方便确认你的电脑和Internet或是一个指定的IP地址是不是通的。
使用 -c 开关,可以指定发送ECHO_REQUEST包的个数。
$ ping -c 5 www.baidu.com
PING www.baidu.com (220.181.112.244) 56(84) bytes of data.
64 bytes from 220.181.112.244: icmp_seq=1 ttl=52 time=17.0 ms
64 bytes from 220.181.112.244: icmp_seq=2 ttl=52 time=8.21 ms
64 bytes from 220.181.112.244: icmp_seq=3 ttl=52 time=7.66 ms
64 bytes from 220.181.112.244: icmp_seq=4 ttl=52 time=8.18 ms
64 bytes from 220.181.112.244: icmp_seq=5 ttl=52 time=8.10 ms
--- www.baidu.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4009ms
rtt min/avg/max/mdev = 7.666/9.845/17.051/3.609 ms
3. tracepath & traceroute
tracepath命令和traceroute命令功能类似,但不需要root权限。并且Ubuntu预装了这个命令,traceroute命令没有预装的。
tracepath追踪出到指定的目的地址的网络路径,并给出在路径上的每一跳(hop)。
如果你的网络有问题或是慢了,tracepath可以查出网络在哪里断了或是慢了。
$ tracepath www.baidu.com
1?: [LOCALHOST] pmtu 1500
1: 192.168.169.1 0.452ms
1: 192.168.169.1 0.644ms
2: 192.168.2.1 1.850ms
3: 192.168.1.1 2.639ms
4. netstat
netstat命令可以显示网络接口的很多统计信息,包括打开的socket和路由表。无选项运行命令显示打开的socket。
$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 52 192.168.169.87:22 192.168.169.86:33582 ESTABLISHED
tcp6 0 0 :::9000 :::* LISTEN
tcp6 0 0 :::445 :::* LISTEN
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 192.168.169.255:137 0.0.0.0:*
udp 0 0 0.0.0.0:138 0.0.0.0:*
udp6 0 0 :::111 :::*
udp6 0 0 :::771 :::*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 15800 /run/user/1000/systemd/notify
unix 2 [ ACC ] STREAM LISTENING 15801 /run/user/1000/systemd/private
unix 2 [ ACC ] SEQPACKET LISTENING 9966 /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 9962 /run/systemd/private
unix 2 [ ACC ] STREAM LISTENING 9967 /run/systemd/fsck.progress
netstat -p命令可以显示打开的socket对应的程序。
$ netstat -p
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.169.87:http 192.168.169.86:34822 ESTABLISHED -
tcp 0 0 192.168.169.87:ssh 192.168.169.86:33582 ESTABLISHED -
tcp6 0 0 localhost:9000 localhost:48676 TIME_WAIT -
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ] DGRAM 15800 1018/systemd /run/user/1000/systemd/notify
unix 2 [ ] DGRAM 9968 - /run/systemd/journal/syslog
unix 7 [ ] DGRAM 9980 - /run/systemd/journal/socket
unix 5 [ ] DGRAM 10202 - /run/systemd/journal/dev-log