linux中如何查看开放的端口
时间:2019-04-29 03:17:53 来源:igfitidea点击:
如何查看linux中所有打开的TCP和UDP端口,以避免安全问题。
什么是TCP和UDP端口?
端口是0到65535之间的16位数字。例如,TCP端口号22可能是OpenSSH服务的。因此,端口号22是一种识别sshd进程的方法。
端口号
众所周知的端口是从0到1023。
注册的端口为1024到49151。
动态和私有端口是49152到65535。
注册端口是由IANA(Internet assigned Numbers Authority)分配并存储在/etc/services文件中的网络端口。
cat /etc/services grep -w '80/tcp' /etc/services grep -w '443/tcp' /etc/services egrep -w '22/(tcp|udp)' /etc/services
检查Linux中打开的端口
使用netstat列出打开的端口
sudo netstat -tulpn | grep LISTEN
其中
- -t : 所有TCP端口
- -u : 所有UDP端口
- -l : 显示监听服务器套接字
- -p : 显示每个套接字所属进程的PID和程序名
- -n : 不要解析名字
输出:
tcp 0 0 :::22 :::* LISTEN 45434/sshd tcp 0 0 ::1:631 :::* LISTEN 1380/cupsd
例如,由cupsd进程打开的TCP端口631,cupsd只在环回地址上监听。
sshd进程打开的TCP端口22。在所有地址上监听,即任何地址都可以连接它。
使用ss命令显示Linux中所有打开的TCP和UDP端口。
ss命令用于dump出套接字的统计信息。它可以显示更多的TCP和状态信息。
sudo ss -tulpn
使用lsof命令监听端口和应用程序
如何查看端口是哪个程序打开的?又如何查看程序打开了哪些端口?使用lsof即可。
sudo lsof -i -P -n | grep LISTEN
其中
-i : 查找列表端口
-P : 禁止将端口号转换为网络文件端口名,这样运行得更快一点
-n : 不要使用DNS名称
使用nmap来查找和列出Linux中打开的端口
### 查看打开的TCP端口 sudo nmap -sT -O localhost ### 查看打开的UDP端口 sudo nmap -sU -O 192.168.2.254 sudo nmap -sTU -O 192.168.2.24