❏ 站外平台:

检查 Linux 系统上的网络连接

作者: Sandra Henry-stocker 译者: LCTT geekpi

| 2017-12-01 20:15   收藏: 2    

Linux 系统提供了许多有用的命令来检查网络配置和连接。下面来看几个,包括 ifqueryifupifdownifconfig

Linux 上有许多可用于查看网络设置和连接的命令。在今天的文章中,我们将会通过一些非常方便的命令来看看它们是如何工作的。

ifquery 命令

一个非常有用的命令是 ifquery。这个命令应该会显示一个网络接口列表。但是,你可能只会看到类似这样的内容 - 仅显示回环接口:

  1. $ ifquery --list
  2. lo

如果是这种情况,那说明你的 /etc/network/interfaces 不包括除了回环接口之外的网络接口信息。在下面的例子中,假设你使用 DHCP 来分配地址,且如果你希望它更有用的话,你可以添加例子最后的两行。

  1. # interfaces(5) file used by ifup(8) and ifdown(8)
  2. auto lo
  3. iface lo inet loopback
  4. auto eth0
  5. iface eth0 inet dhcp

ifup 和 ifdown 命令

可以使用相关的 ifupifdown 命令来打开网络连接并根据需要将其关闭,只要该文件具有所需的描述性数据即可。请记住,“if” 在这里意思是接口interface,这与 ifconfig 命令中的一样,而不是如果我只有一个大脑if I only had a brain 中的 “if”。

ifconfig 命令

另外,ifconfig 命令完全不读取 /etc/network/interfaces,但是仍然提供了网络接口相当多的有用信息 —— 配置数据以及可以告诉你每个接口有多忙的数据包计数。ifconfig 命令也可用于关闭和重新启动网络接口(例如:ifconfig eth0 down)。

  1. $ ifconfig eth0
  2. eth0 Link encap:Ethernet HWaddr 00:1e:4f:c8:43:fc
  3. inet addr:192.168.0.6 Bcast:192.168.0.255 Mask:255.255.255.0
  4. inet6 addr: fe80::b44b:bdb6:2527:6ae9/64 Scope:Link
  5. UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  6. RX packets:60474 errors:0 dropped:0 overruns:0 frame:0
  7. TX packets:33463 errors:0 dropped:0 overruns:0 carrier:0
  8. collisions:0 txqueuelen:1000
  9. RX bytes:43922053 (43.9 MB) TX bytes:4000460 (4.0 MB)
  10. Interrupt:21 Memory:fe9e0000-fea00000

输出中的 RX 和 TX 数据包计数很低。此外,没有报告错误或数据包冲突。或许可以用 uptime 命令确认此系统最近才重新启动。

上面显示的广播 (Bcast) 和网络掩码 (Mask) 地址表明系统运行在 C 类等效网络(默认)上,所以本地地址范围从 192.168.0.1192.168.0.254

netstat 命令

netstat 命令提供有关路由和网络连接的信息。netstat -rn 命令显示系统的路由表。192.168.0.1 是本地网关 (Flags=UG)。

  1. $ netstat -rn
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags MSS Window irtt Iface
  4. 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
  5. 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
  6. 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

上面输出中的 169.254.0.0 条目仅在你正在使用或计划使用本地链路通信时才有必要。如果不是这样的话,你可以在 /etc/network/if-up.d/avahi-autoipd 中注释掉相关的行:

  1. $ tail -12 /etc/network/if-up.d/avahi-autoipd
  2. #if [ -x /bin/ip ]; then
  3. # # route already present?
  4. # ip route show | grep -q '^169.254.0.0/16[[:space:]]' && exit 0
  5. #
  6. # /bin/ip route add 169.254.0.0/16 dev $IFACE metric 1000 scope link
  7. #elif [ -x /sbin/route ]; then
  8. # # route already present?
  9. # /sbin/route -n | egrep -q "^169.254.0.0[[:space:]]" && exit 0
  10. #
  11. # /sbin/route add -net 169.254.0.0 netmask 255.255.0.0 dev $IFACE metric 1000
  12. #fi

netstat -a 命令

netstat -a 命令将显示“所有”网络连接。为了将其限制为显示正在监听和已建立的连接(通常更有用),请改用 netstat -at 命令。

  1. $ netstat -at
  2. Active Internet connections (servers and established)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State
  4. tcp 0 0 *:ssh *:* LISTEN
  5. tcp 0 0 localhost:ipp *:* LISTEN
  6. tcp 0 0 localhost:smtp *:* LISTEN
  7. tcp 0 256 192.168.0.6:ssh 192.168.0.32:53550 ESTABLISHED
  8. tcp6 0 0 [::]:http [::]:* LISTEN
  9. tcp6 0 0 [::]:ssh [::]:* LISTEN
  10. tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
  11. tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN

host 命令

host 命令就像 nslookup 一样,用来查询远程系统的 IP 地址,但是还提供系统的邮箱处理地址。

  1. $ host world.std.com
  2. world.std.com has address 192.74.137.5
  3. world.std.com mail is handled by 10 smtp.theworld.com.

nslookup 命令

nslookup 还提供系统中(本例中是本地系统)提供 DNS 查询服务的信息。

  1. $ nslookup world.std.com
  2. Server: 127.0.1.1
  3. Address: 127.0.1.1#53
  4. Non-authoritative answer:
  5. Name: world.std.com
  6. Address: 192.74.137.5

dig 命令

dig 命令提供了很多有关连接到远程系统的信息 - 包括与我们通信的名称服务器以及查询需要多长时间进行响应,并经常用于故障排除。

  1. $ dig world.std.com
  2. ; <<>> DiG 9.10.3-P4-Ubuntu <<>> world.std.com
  3. ;; global options: +cmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28679
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
  7. ;; OPT PSEUDOSECTION:
  8. ; EDNS: version: 0, flags:; udp: 512
  9. ;; QUESTION SECTION:
  10. ;world.std.com. IN A
  11. ;; ANSWER SECTION:
  12. world.std.com. 78146 IN A 192.74.137.5
  13. ;; Query time: 37 msec
  14. ;; SERVER: 127.0.1.1#53(127.0.1.1)
  15. ;; WHEN: Mon Oct 09 13:26:46 EDT 2017
  16. ;; MSG SIZE rcvd: 58

nmap 命令

nmap 经常用于探查远程系统,但是同样也用于报告本地系统提供的服务。在下面的输出中,我们可以看到登录可以使用 ssh、smtp 用于电子邮箱、web 站点也是启用的,并且 ipp 打印服务正在运行。

  1. $ nmap localhost
  2. Starting Nmap 7.01 ( https://nmap.org ) at 2017-10-09 15:01 EDT
  3. Nmap scan report for localhost (127.0.0.1)
  4. Host is up (0.00016s latency).
  5. Not shown: 996 closed ports
  6. PORT STATE SERVICE
  7. 22/tcp open ssh
  8. 25/tcp open smtp
  9. 80/tcp open http
  10. 631/tcp open ipp
  11. Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

Linux 系统提供了很多有用的命令用于查看网络配置和连接。如果你都探索完了,请记住 apropos network 或许会让你了解更多。


via: https://www.networkworld.com/article/3230519/linux/examining-network-connections-on-linux-systems.html

作者:Sandra Henry-Stocker 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出



最新评论

从 2025.1.15 起,不再提供评论功能
LCTT 译者
geekpi 💎💎💎💎
共计翻译: 2095.5 篇 | 共计贡献: 3750
贡献时间:2013-10-25 -> 2024-01-31
访问我的 LCTT 主页 | 在 GitHub 上关注我


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。