linux中出现网络故障该如何排除


本文摘自PHP中文网,作者齐天大圣,侵删。

如果公司网站打不开了,假如是因为网络问题,你该如何去进行排查。又比如,远程连接工具连不上服务器或mysql数据库连不上,会不会是因为网络问题。日常工作或学习中,我们经常会遇到各种各样的网络问题(因为计算机网络实在太复杂了)。现在我们来看看,如果linux服务器出现了网络问题,该如何去排查。

ping

首先来看ping命令,这个命令是用来测试两台主机之间能否进行正常通讯的工具。ping的对象既可以是ip地址,也可以是域名。该命令在linux以及windows的cmd模式下都可以使用。使用方法都是一样的。

1

2

3

4

5

6

7

8

9

10

11

12

# ping -c 4 8.210.247.5

PING 8.210.247.5 (8.210.247.5) 56(84) bytes of data.

64 bytes from 8.210.247.5: icmp_seq=1 ttl=64 time=1.54 ms

64 bytes from 8.210.247.5: icmp_seq=2 ttl=64 time=1.48 ms

64 bytes from 8.210.247.5: icmp_seq=3 ttl=64 time=1.46 ms

64 bytes from 8.210.247.5: icmp_seq=4 ttl=64 time=1.48 ms

--- 8.210.247.5 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3004ms

rtt min/avg/max/mdev = 1.460/1.494/1.548/0.042 ms

  

# ping -c 1 baidu.com

……

下面,是一个shell脚本,用来查看局域网有哪些ip可以进行通讯

1

2

3

4

5

6

7

8

9

10

11

12

13

#!/bin/bash

net='192.168.2.'

seqs=`seq 1 254`

 

for seq in $seqs

do

    ip=$net$seq

    /usr/bin/ping -c 1 -W 1 $ip >/dev/null 2>&1

     

    if [ "$?" == "0" ];then

        echo "$ip is UP"

    fi

done

traceroute

该命令是用来查看两台主机之间的各个节点的网络情况。如果当你访问一个网站的时候,速度较慢,那么可以用该命令来查看所有节点的网络情况。

1

2

3

4

5

6

7

# traceroute -n google.com

traceroute to google.com (172.217.163.238), 30 hops max, 60 byte packets

 1  * * *

 2  11.109.220.61  1.444 ms  1.577 ms 11.109.216.189  1.500 ms

 3  11.109.220.190  5.512 ms * 11.109.220.174  5.382 ms

 4  11.131.180.222  1.660 ms 11.131.180.218  1.519 ms 11.131.180.250  1.365 ms

 ……

nslookup

该命令是可以通过域名来反查ip地址的,使用非常简单。

1

2

3

4

5

6

7

nslookup 5iqm.com

Server:  100.100.2.136

Address: 100.100.2.136#53

 

Non-authoritative answer:

Name: 5iqm.com

Address: 121.196.12.64

netstat

。如果网站访问不了,我们首先做的应该是ping服务器的ip地址,如果能够正常ping通,接下来应该ping网站域名,看dns是否正常解析。如果都没有问题,网站还是访问不了,那就需要去看看80端口是否对外开放了。netstat命令就是用来查看主机端口监听情况。

1

2

3

4

5

6

7

8

# netstat -tlunp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30721/nginx: master

tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1275/pure-ftpd (SER

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1167/sshd          

tcp        0      0 0.0.0.0:888             0.0.0.0:*               LISTEN      30721/nginx: master

tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      2068/python

telnet

该命令可以用来测试服务器的指定端口是否对自己开放。

1

2

3

4

5

6

7

8

9

# telnet 8.210.110.139 22

Trying 8.210.110.139...

Connected to 8.210.110.139.  

Escape character is '^]'.

SSH-2.0-OpenSSH_7.4

 

 

# telnet 8.210.110.139 3306

Trying 8.210.110.139...  <=== 一直是这样的状态则

如果是上述的第一种情况,则说明8.210.110.139的22端口是开放的。如果是第二种的话,一直在trying,则说明此端口没有对自己开放。

以上就是linux中出现网络故障该如何排除的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux scp命令用法

如何使用回滚磁盘与删除快照方法进行快照回滚

Linux开发要学习什么内容

详解Linux 删除换行符的方法

Linux系统怎么进入终端?

Linux实现时间同步有哪几种方法

Linux怎么编译

Linux是什么?

详解Linux的用户空间与内核空间

如何ecs管理控制台版本信息区域删除模板和版本

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...