前言
为了保护计算机不受攻击和各种病毒、木马的侵扰,其实我们可以在网络设备上采取措施,对某些数据包进行阻挡、过滤等,但重要的还是用户需要有一定的意识,采取措施对自己的计算机进行保护安全;
那么,今天主要想跟大家分享的是在 Linux 操作系统下除了使用 netstat、natcat、lsof 命令来查看本机的状态以外,还有什么方式来查看呢?
一、什么是网络端口?
网络端口:可以认为是传输层协议 TCP 或 UDP 与各种应用层协议进行通信时的一种通道。TCP 和 UDP 协议的数据报文头部都用一个 16 位的域来存放目的端口号和源端口号,最大是:65535。
二、网络端口两种使用方法
- 由某个程序监听某个端口,等待户机发送数据包到这个端口,一旦有数据产生,应用程序将会做出反应;
- 通过某个端口主动发送数据包到其他计算机;
三、netstat、netcat、lsof 查看端口状态示例
netstat
命令格式:netstat [ - 选项 1 ] [ - 选项 2 ] ...
常用参数:
- -l:显示正在监听的 TCP 和 UDP 端口;
- -a:显示所有活动的 TCP 连接;
- -A <网络类型>或 - <网络类型>列出该网络类型连线中的相关地址;
- -n:以数字的形式表示地址和端口号;
- -s:显示所有协议的统计信息;
- -r:显示 IP 路由表的内容;
- -p:显示每一个正在使用的活动连接程序识别码及程序名称;
- -i:显示网络接口的统计信息;
- -t:只显示与 TCP 协议有关的连接和端口监听状态;
- -u:只显示与 UDP 协议有关的端口监听状态;
- -w:只显示原始接口状态;
[root@localhost ~]# netstat -anpt | grep 631
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1218/cupsd
tcp 0 0 ::1:631 :::* LISTEN 1218/cupsd
复制代码
netcat
nc -vv IP 端口号:意思是只显示该 IP 地址的某端口是否处于正常状态(succeeded:成功,Connection refused:连接拒绝)
nc -z IP 端口号; echo $?:意思是判断该 IP 地址的某端口是否有误(0:无误,1:有误)
[root@localhost ~]# nc -vv 192.168.1.127 22
Connection to 192.168.1.127 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_5.3
[root@localhost ~]# nc -z 192.168.1.127 22; echo $?
Connection to 192.168.1.127 22 port [tcp/ssh] succeeded!
0
[root@localhost ~]# nc -vv 192.168.1.127 3306
nc: connect to 192.168.1.127 port 3306 (tcp) failed: Connection refused
复制代码
lsof
lsof 查看端口占用语法格式:lsof -i &#x