6_查看正在侦听的网络端口
Checking for Listening Ports(netstat,ss,lsof,telnet,nmap)
-
运行'netstat'相关命令来显示所有打开的端口:
sudo netstat -tupan #-t显示tcp端口,-u显示udp端口,-p显示正在监听的程序的pid和名称,-a显示所有端口,包括监听和不监听 ,-n显示数字地址而不是尝试确定符号主机和端口名称。在本地地址栏中,如果您看到类似0.0.0.0的IP地址,这意味着该进程正在侦听主机的所有IP地址,而有些三重冒号实际上是IPV6地址
根据条件过滤查询出来的端口,用
grep命令:sudo netstat -tupan | grep :80 sudo netstat -tupan | grep sshd安装nginx,这是一个著名的web服务器:
sudo apt install nginx查看nginx的状态:
sudo systemctl status nginx查看80端口:
sudo netstat -tupan | grep :80可以看到刚刚没有搜到的80端口此时打开了
-
让我们继续讨论一个类似的命令,即SS,这是一个较新的命令,SS代表套接字统计信息并显示。
使用
ss命令打开所有端口。ss -tupan另一个有用的命令是lsof,它代表列出由系统任何进程打开的文件,获取所有文件的列表。
lsof有很多输出项。。。
如果想查看特定用户的进程打开的所有文件:
lsof -u ^用户名 # ^表示排除该用户让我们看看nginx打开的所有文件:
sudo lsof -c nginx仅显示打开tcp端口的文件:
sudo lsof -iTCP -sTCP:LISTEN -nP #-iTCP -sTCP:LISTEN 仅显示打开tcp端口的文件 # -nP显示数字格式的端口和主机。仅显示打开tcp端口22的文件:
sudo lsof -iTCP:22 -sTCP:LISTEN -nP # :22 TCP端口22要扫描其他主机上的端口,可以使用
telnet和nmap这样的专业端口扫描器。例如我想在Ubuntu上检查CentOS上的22端口是否打开。
telnet 192.168.0.113 22 or nmap -p 80 linux.com
浙公网安备 33010602011771号