Linux网络命令

时间:2019-04-29 03:17:34  来源:igfitidea点击:

有用的网络命令

以下是可以在任何Linux系统上使用的一些基本联网命令,以帮助您了解配置并帮助确定问题。此处的命令仅用于检索和显示信息,因此,它们不会更改您的系统设置。更改网络配置的命令将在单独的部分中介绍。

查看IP地址

ip address show

john@john-desktop:~$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:11:11:88:4f:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.14/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::211:11ff:fe88:4f44/64 scope link
       valid_lft forever preferred_lft forever
3: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff

从此输出中,我们可以看到配置了各种设备。设备eth0处于UP状态。IP地址为192.168.0.14

该命令可以缩短为ip a s

ifconfig

john@john-desktop:~$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:11:88:4f:44
          inet addr:192.168.0.14  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:11ff:fe88:4f44/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21991 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9874 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8751404 (8.7 MB)  TX bytes:1388258 (1.3 MB)

该命令的输出更加详细。

如果您不知道所使用的设备,可以执行ifconfig -a显示所有设备。

dig 域名信息搜集器

这个非常有用的命令允许您查询DNS服务器的各种信息。该工具在处理DNS问题时非常有用,因为它很灵活。如果您没有指定特定的DNS服务器,dig将使用您的/etc/resolv中的条目。下面是一些使用dig命令的基本例子:

john@john-desktop:~$ dig www.baidu.com

; <<>> DiG 9.8.1-P1 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37762
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.		IN	A

;; ANSWER SECTION:
www.baidu.com.	300	IN	A	217.10.138.186

;; Query time: 126 msec
;; SERVER: 194.168.4.100#53(194.168.4.100)
;; WHEN: Thu Feb 21 10:06:04 2013
;; MSG SIZE  rcvd: 52

john@john-desktop:~$ dig @8.8.8.8 www.baidu.com

; <<>> DiG 9.8.1-P1 <<>> @8.8.8.8 www.baidu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31765
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.		IN	A

;; ANSWER SECTION:
www.baidu.com.	300	IN	A	217.10.138.186

;; Query time: 562 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Feb 21 10:06:17 2013
;; MSG SIZE  rcvd: 52

在第一个dig命令示例中,我们没有指定要查询的DNS服务器。这导致我的本地ISP的DNS服务器被查询,因为这是在文件/etc/resolv中的的第一个条目。最后一个示例通过提供@8.8.8.8指定DNS服务器。在本例中,8.8.8.8是由谷歌提供的公共DNS服务器。

nslookup-名称服务器查找命令

这是dig命令的替代命令。两者本质上都执行相同的服务,但是dig具有更多的功能和灵活性。

john@john-desktop:~$ nslookup www.baidu.com
DNS request timed out.
    timeout was 2 seconds.
服务器:  UnKnown
Address:  192.168.199.1

非权威应答:
名称:    www.a.shifen.com
Addresses:  14.215.177.39
          14.215.177.38
Aliases:  www.baidu.com

ping命令

ping命令用于将ICMP回显请求发送到远程服务器,然后报告接收相应回显请求所需的时间。Ping可能是最常用的命令之一,因为它可以快速确定服务器在网络上是否处于活动状态。

john@john-desktop:~$ ping -c 4 www.google.com
PING www.google.com (173.194.67.94) 56(84) bytes of data.
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_req=1 ttl=48 time=45.3 ms
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_req=2 ttl=48 time=48.1 ms
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_req=3 ttl=48 time=25.3 ms
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_req=4 ttl=48 time=25.2 ms

--- www.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 25.265/36.026/48.145/10.780 ms

john@john-desktop:~$ ping -q -c 4 www.google.com
PING www.google.com (173.194.67.94) 56(84) bytes of data.

--- www.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 24.442/28.516/38.034/5.524 ms

traceroute命令

traceroute命令是有用的工具,可让您跟踪数据包从设备到远程主机的路由。

john@john-desktop:~$ traceroute 80.76.216.3
traceroute to 80.76.216.3 (80.76.216.3), 30 hops max, 60 byte packets
 1  10.7.104.1 (10.7.104.1)  15.958 ms  15.037 ms  14.950 ms
 2  wolv-core-2a-ae9-614.network.virginmedia.net (80.3.144.89)  18.597 ms  18.567 ms  18.535 ms
 3  manc-bb-1c-ae12-0.network.virginmedia.net (213.105.159.141)  32.002 ms  31.930 ms  31.911 ms
 4  manc-bb-1d-ae2-0.network.virginmedia.net (62.253.174.93)  31.907 ms  31.877 ms  31.787 ms
 5  brhm-bb-1c-ae9-0.network.virginmedia.net (62.253.174.129)  54.461 ms  54.387 ms  54.371 ms
 6  tcl5-ic-2-ae0-0.network.virginmedia.net (212.250.15.210)  31.655 ms  18.579 ms  18.565 ms
 7  linx1.uk.othellotech.net (195.66.224.244)  23.353 ms  20.752 ms  22.306 ms
 8  gw2-cpanel.hosting.astutium.com (80.76.216.3)  28.886 ms  22.284 ms  28.828 ms

netstat命令

netstat命令本身将显示与计算机的活动连接列表。

netstat -tl-显示在这台计算机上监听连接的tcp端口

netstat -ntl-以数字ip地址格式显示监听连接的tcp端口

netstat -s-显示所有协议的统计摘要(下面的示例已被缩短…)

netstat -r-显示路由信息

netstat -na | grep "3001"—显示与端口3001相关的信息。

lsof命令-使用什么端口

它使您能够快速识别给定端口上正在侦听的进程。

lsof -i :port显示在指定端口上侦听的进程

Linux如何查看哪个进程打开了21端口

john@john-desktop:~$ lsof -i :21
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ftp     5146 john    3u  IPv4 120628      0t0  TCP john-desktop.local:55339->server01.ukservers.net:ftp (ESTABLISHED)

netcat命令

netcat可以侦听端口并执行端口扫描。

sles01:~ # netcat -v -v -z ls001a 3181
ls001a [192.168.0.24] 3181 (bmcpatrolagent) open
 sent 0, rcvd 0 

从远程服务器ls001请求信息,并询问端口3181上的端口是什么。在这里我们可以看到进程bmcpatrolagent在该端口上处于活动状态。

route命令

route命令用于显示和配置IP路由表。

ubuntu1804:~$route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.221.16.2     0.0.0.0         UG    0      0        0 ens33
10.221.16.0     0.0.0.0         255.255.255.128 U     0      0        0 ens33

其中:

Destination
目标网络或目标主机。

Gateway
网关地址或如果没有设置,则是'*'。

Genmask
Genmask是通用的网络掩码。

标志

  • U -(线路已开通)
  • H -(目标是一个主机)
  • G -(使用网关)
  • R -(动态路由的恢复路由)
  • D -(由守护进程动态安装或重定向)
  • M -(从路由守护进程或重定向修改)
  • A -(由addrconf安装)
  • C -(cache入口)
  • !-(拒绝)

网络配置文件位置

现在,在许多台式机系统上,将设备插入网络后,将从路由器自动获取IP地址。自动获取IP地址后,这称为使用dhcp。在这里,您租用了一段时间的IP地址。许多服务器更喜欢具有专用的IP地址(称为静态)。此IP地址不会在重新引导或给定时间段内更改。

包含这些配置的文件通常可以在以下位置找到:

  1. Debian : /etc/network/interfaces

  2. SUSE/SLES : /etc/sysconfig/network

  3. Red Hat - CentOS- Fedora : /etc/sysconfig/network-scripts

静态和DHCP配置示例

静态IP

DEVICE=eth0
BOOTPROTO=static
HWADDR=00:00:00:00:00:00
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx
ONBOOT=yes

动态IP

DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:00:00:00:00:00
ONBOOT=yes

修改后需要重新启动网络使配置生效。
执行service network restart或者/etc/init.d/network restart