对日常用到的几个常用的网络相关的命令做一下对比分析:
- ping
ping命令工作在OSI参考模型的第三层:网络层。ping命令会发送一个数据包到目的主机,然后等待从目的主机接收回复数据包,当目的主机接收到这个数据包时,为源主机发送回复数据包,这个测试命令可以帮助网络管理者测试到达目的主机的网络是否连接。 ping只能判断主机之间是否连接,不能判断端口是否开放。
- 用法:ping ip
- telnet
telnet是应用层协议,是Intenet远程登录服务的标准协议和主要形式。登录的账号密码与数据明文传输,不加密。window为了安全考虑,一般禁用此命令,需要自己安装的(控制面板-程序-打开或关闭window功能,勾选telnet服务器、客户端,确定安装即可)。 telnet可用来测试端口是否开放,
- 用法:telnet IP:Port
- ssh
ssh是Secure Shell 的缩写,是建立在传输层基础上的安全协议,它本身属于应用层,同时可以为应用层提供安全传输服务。由于传输加密,数据同时经过压缩等好处,被广泛使用。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。
- linux下,用ssh登录服务器,格式如下:
- ssh 用户名@ip地址/密码 -p 远程服务器ssh端口(默认22,可不写)
- ftp/sftp
应用层的文件传输协议,是File Transfer Protocol的缩写。用于发送命令的端口一般是21, 用于传输数据的端口是20。
FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服 务器建立连接前就要经过一个被广为熟知的”三次握手”的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠 的保证。
- netstat
netstat是网络状态的命令,查看所有网络连接,端口使用情况,占用端口的进程等等。
- 常用命令举例
//检查某个端口是否开放 netstat -lnp | grep 端口号 //找出运行在指定端口的进程 netstat -an | grep '端口' //列出所有端口 (包括监听和未监听的) netstat -a //列出所有 tcp 端口 netstat -at //列出所有 udp 端口 netstat -au //只显示监听端口 netstat -l //只列出所有监听 tcp 端口 netstat -lt //只列出所有监听 udp 端口 netstat -lu //只列出所有监听 UNIX 端口 netstat -lx //显示所有端口的统计信息 netstat -s //显示 TCP 或 UDP 端口的统计信息 netstat -st netstat -su //在 netstat 输出中显示 PID 和进程名称 netstat -p // 显示网络接口列表 netstat -i