Linux网络命令
有用的网络命令
以下是可以在任何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地址不会在重新引导或给定时间段内更改。
包含这些配置的文件通常可以在以下位置找到:
Debian :
/etc/network/interfaces
SUSE/SLES :
/etc/sysconfig/network
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