作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注我,我尽量把自己会的都分享给大家,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
Linux服务器作为一个常用的网络服务器,主要的作用就是向客户端提供网络服务,所以我们需要熟练掌握网络相关的命令,用于探测对端网络是否畅通,用于检查本地网络进程是否正常,以及可以通过命令去远端服务器进行下载文件,或者请求对方接口。
主要从以下几个方面来介绍:
1.给Linux服务器配置IP
2.探测对方网络连通性(ping & telnet)
3.下载对方文件(wget)
4.请求对方服务器(curl)
5.检查本地服务状态(netstat)
6.检查本地服务状态(ss)
7.网络小结(本章节)
经过前面6小节的介绍,我们已经可以完成配置ip地址,探测远端服务器的的连通性问题,可以基本判断网络是否有问题。还可以去互联网下载文件,然后还可以探测远端服务器的情况,并且可以还可以查看到本地的端口启动情况,大部分的网络问题都可以通过以上命令进行排查,这些命令参数也比较简单,还是可以很快掌握的。
上面讲的只是Linux网络的基本命令,对于计算机网络一点都没有讲,这个后期会单独出一个大的章节来讲解。前面6小节我们只讲了几个网络命令,涉及到网络的命令当然远远不止上面那几个,但是平时一般运维的情况下,使用频繁的网络命令就是上面几个,比如ip
这个命令,就有非常多的参数。比如可以查看ip地址,查看路由(网络不通也和路由有很大关系)。另外就是telnet命令在默认最小化安装的情况下是不带的,如果没有这个命令我们能完成端口探测么,下面我们讲一个不依赖telnet命令来实现探测网络端口是否通畅的方法。
有没有看出来什么?是的,我们不依赖telnet命令也可以探测对方端口是否正常。
echo > /dev/tcp/192.168.179.128/22
#如果没有任何返回,则说明对方端口是开放的。
[root@localhost ~]# echo > /dev/tcp/192.168.179.128/22
[root@localhost ~]# echo $?
0
#也可以用echo $?这个命令来判断命令是否执行成功。
命令 echo > /dev/tcp/192.168.179.107/22
是一种利用Linux系统中的特性来尝试与远程主机进行TCP连接的方式。这种方法通常用于快速检查目标主机的网络可达性,特别是在没有安装ping或telnet等网络工具时。
具体解释如下:
-
/dev/tcp/192.168.179.107/22
是Linux中的一个虚拟设备文件路径,它允许通过文件I/O来操作网络套接字。 -
echo
命令在这里被用来向指定的TCP套接字发送数据。 -
> /dev/tcp/192.168.179.107/22
表示将空字符串(即空数据)通过TCP连接发送到目标IP地址192.168.179.107
的22端口(SSH端口)。
注意事项:
-
是否能够使用: 这种方法的可用性取决于Linux系统内核的配置。在某些较新的Linux发行版中,默认情况下可能会禁用
/dev/tcp
和/dev/udp
虚拟文件系统。此外,某些安全策略也可能会限制对这些设备文件的访问。 -
仅用于检查连接性: 上述命令通常只用来检查目标主机是否可以访问指定的端口。它并不会建立一个真正的SSH连接或发送任何有意义的数据。
-
替代工具: 更好的做法是使用专门的网络工具来进行连接测试,如
ping
、telnet
、nc
(netcat)等,它们提供了更多的控制和信息反馈,能够更精确地确认网络连接的状态和问题。 -
UDP探测:由于UDP是无状态的,所以无论对方的端口是否在监听,我们都可以把包发出去,所以我们无法知道对方是否正在监听。
关注微信公众号《运维小路》获取更多内容。
Linux网络基本操作已经讲完,下面要讲的就是Linux用户,敬请期待