检查 Linux 系统上的网络连接

  对于经常使用云服务器的站长们来说,Linux下的网络命令的掌握和了解是必须得,至少你应该知道这些命令有哪些,具体都是做什么用的,在网站有关的很多场景中都会用到的1 H X,比如N 7 ;域名解析等等。

检查 Linux 系统上的网络连接

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

ifquery命令

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

$a R b p (ifquery--list
lo

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

#interfaces(5)file used by ifup(8)and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
ifup和ifdown命令

  可以使用相关的ifupif] 8 : u T d g Rdown9 & $ t ] s命令来打开网络连接并根据需要将其关闭,只要q F 2 m该文件U r ! i E @ 具有所需的描述性数据即可。请记住,“if”在这里意思是接口,这与ifconfig命令中的一样,4 D w 1 R #而不是如果我只有一个大脑中的“if”。

ifconfig命令 1 u ^

  另外,ifconfig命令完全不读取/etc/netwoD ) $ ? 7 ? g J zrk/interfk H y n zaces,但是仍 M & s 8 J S P然提供了网络接口相当多的有用信息——配置数据以及可以告诉你每个接口有多忙的数据包计数。ifconfig命令; 4 3也可用于关闭和重新启动网络接口(例如:ifconfig eth0 down)。

$ifconfig eth^ ] n $0
eth0 Linkh * I 3 e n { encap:Ethernet HWaddr 00:1e:4f:c8:43:fc
inet addr:192.168.0.6 Bcast:1` Z P92.168.0.255 Mask:255.255.255.0
inet6 addr:fe80::b44b:bdb6:2527:6ae9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:60474 errors:0 dropped:0 overruns:0 framG j  |  / ~ J $e:0
TX packets:33463 errors:0 dropped:0 overrP )   P W Auns:0 carrier:0
collisions:0 txqueuelen:. 9 c V o  i /1000
RX bytes:43922053(43.9 MB)TX bytes:4000460(4.C k ( , N 5 l0 MB)
Interrupt:21 Memory:fe9e0000-fea00000

  输出中的RXTX数据包计数很低。此外,没有报告错误Q 0 | n g + ~ , f或数据包冲突。或许可以用uptime命令确认此系统最近才重新启动。

  上面显示的广播(Bcast)和网络掩码(Mask)地址表明系统运行在C^ - : ? 9类等效网络(默认U G P 7 : c @ t)上,所以本地地址范围从192.168.0.1192.168.0.254

netstat命令

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

$netstat-rt l [ C bn
Kernel IP routing table
Destins M ation Gateway Genmask Flags MSS Window irtt Ifacr k 0 P Qe
0.0.0.0 192.168.0.1 0.0.0.0 UG` & i ! W 0 0 0 eth0
169.254.0.0 0.0.M  8 - u N 60.0 255.255.0.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

  上面输出中的16E D q j 5 P q O9.254.0.0条目仅在你正在使用或计划使用本地链路通信时才有必要。如果不是这样的话,{ q U S 5 ^ e w Q你可以在/etc/network/if-up.d/avahi-autoipd中注释掉相关的行:

$tail-12/etc/network/if-up.d/avahi-autoipd
#if[-x/bin/% v C H !ip];then
# E k N R ~ [ &#rouv n ote already preseh O % ` gnt?
#ip route show|grep-q'^1I e r L r Q L 2 M69.254.0.0/16[[:s4 a w = $ k ?pace:]]'&&exit 0
#
#/bin/ip route add 169.254.0.0/16 dev$IFACE metric 1000 scope link
#elif[-x/sbin/route];then
##roul A & 2te already present?
#/sbin/rx 1 Eoute-n|egrep-q"^10 { 1 = R C P69.254.0.0[[:? m g + y |space:]]"&&exit 0
#
#/sbin/route add-net 169.254.0.0 netmask 255.255.0.0 dev$IFACE metric 1000
#X z x l @ j | Xfi

netstat-a命令

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

$netstat-at
Active Internet c6 ( Z | M sonnections(servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0*:ssh*:*LISTEN
tcp 0 0 localhostD 2 h * g D 7 q S:ipp*:*LISTEN
tcT R @p 0 0 localho[ H q _  jst:smtp*:*LISTEN
tcp 0 256 192.168.0.6:ssq a ? h 192.168.0.32:53550 ESTABLISHED
tcp6 0 0[::]Z Z 2 L I:http[::]:*LISTEN
tcp6 0 0[::]:ssh[::]:*LISTEN
tcp6 0 0 ip6-loc] V ; ; y &alhost:ipp[::]:*LISTEN
tcp6 0 0 ip6-localhost:smtp[::]:*LISTEN

host命令

  host命令就像nslookup一样,用来4 L E # G ;查询远程系统的IP地址w Q c W s E g ( 4,但是还提供系统的邮箱处理地址。

$host world.std.com
worldP # 6 g q q Q _.std.com has address 192.74.137.5
world.std.com mail is hand8 { K N j i t 4led by 10 smtp.theworld.com.

nslookup命令

  nslookup还提供系统x ! J ] [ 2中(本例中是本地系统)提供DNS查询服务的信息。

$nslookup world.std.com
Server:? ] ; G E G ~ $ B127.0.1.1
Address:127.0.1.1#53
Non-authoritative answ8 l g $er:
Name:world.t T i ~std.k / 5com
Address:19u 4 P j K e X 7 ,2.74.137.5k # a W H Q 7

dig命令

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

$dig world.std.com
;<<>&am3 h # G 6 gp;gt;DiG 9.10.3-P4-Ubuntu&ltk z 9 B Y x j y N;<>>world.std.com
;;global options:+cmd
;;Got answer:
;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:28679
;;flags:qr rd ra;QUERY:1,ANSWER:1,AUTHORITY:0,ADDITIONAL:1
;;OPT PSEUDOSECTION:
;EDNS:version:T 3 L0,flags:;udp:512
;;QD B I b R % g VUESTION SECTION:
;wor- Y [ 4 I t l [ld.std.com.IN A
;;ANSWER SECTION:
world.std.com.78146 IN A 192.8 f g q : D74.137.5
;;Query time:37 msec
;;SERVER:127.0.1.1v { % :#53(127.0.1.1)
;;Wl 4 B ( i m W /HEN:Mon Oct 09 6 s | 13:26:46 EDT 2017
;;MSG SIZE rcvd:58

nmap命令

  nmap经常用于探查远程系统,但是同[ / y + K D K样也用于报告本地系统提供^ X k s D @的服务。在下面的输出中,我们可以看到登录可以使用sshsmtp& = q !用于电4 b z l a 4子邮箱、web站点也是启用的,并且ipp打印服务正在运行。w ! 2 ^ B

  $nmap lu B h m y - oocalhost
  Starting Nmap 7.01(https://nmap.org)at 2017-10-09 15:01 ED( z @ 3 / 9T
  Nmap scan report for localhost(127.* 9 ? 60.0.1)
  Host is up(0.00016s latency).
  Not shown:996 closed ports
  PORT STATE SERVICE[ + 7 2 j   4
 b _ d s L v @  22/tcp open ssh
  25/tcp oz e & @ w { * X ^pen smtp
  80/tcp open http
  631/tcp o9 1 8 f } y F fpen ipp
  Nmap done:1 IP address(1 host up)scanned in 0.09 seconds

  Linux系统提供了很多有用的命令用于查看网络配置和连接。如果你都探( & U ] B q c R索完了,请记住apropos network4 y W许会让你了解更多。