Linux使用命令行找出打开了哪个端口
时间:2020-01-09 10:41:34 来源:igfitidea点击:
如何查找和列出Linux操作系统中所有打开的端口?
您能告诉我Linux命令找出在bash shell中打开了哪个端口吗?
说明:Linux中的端口不过是一个逻辑连接位置。
TCP/IP使用端口用于通过LAN,WAN和Internet进行通信。
通常,服务器程序(例如Apache(httpd))在TCP端口80或443上侦听。
客户端程序(例如Web浏览器)连接到TCP端口80以请求网页。
您可以使用cat命令或grep命令/egrep命令linux命令在/etc/services文件中找到预分配的端口号。
例如:
$ cat /etc/services $ grep -w 80/tcp /etc/services $ grep -w 443/tcp /etc/services $ egrep -w '(80|22|443)/tcp' /etc/services
Linux使用命令行找出打开了哪个端口
在Linux中列出打开的端口的过程如下:
- 使用命令
netstat -tulpn
打开端口 - 另一个选择是运行
ss -tulpn
来打开现代Linux发行版上的端口
让我们详细查看所有命令。
Linux查找端口打开命令
可以使用netstat命令或ss命令找出端口上列出了哪个进程:
$ sudo netstat -tulpn $ sudo netstat -tulpn | more $ sudo netstat -tulpn | grep ':port' $ sudo netstat -tulpn | grep ':22'
或者
$ sudo ss -tulpn $ sudo ss -tulpn | more $ sudo ss -tulpn | grep ':port' $ sudo ss -tulpn | grep ':22'
其中:
- -t列出Linux上的所有TCP端口
- -u列出Linux上的所有UDP端口
- -l仅显示监听的套接字/端口
- -p在Linux中使用套接字/端口显示进程名称(PID)
- -n不要尝试使用/etc/resolv.conf文件来解析服务名称(加速选项)
如何查找和列出Linux中所有打开的TCP/UDP端口
您可以使用的其他命令如下。
fuser命令示例,找出哪个端口打开了
可以列出打开tcp端口22的进程PID,执行:
$ sudo fuser 22/tcp
输出示例:
22/tcp: 1462
让我们查看与PID 1462相关的进程名称,执行:
$ sudo ls -l /proc/1462/exe
输出:
lrwxrwxrwx 1 root root 0 Nov 2 11:30 /proc/1462/exe -> /usr/sbin/sshd
/usr/sbin/sshd已打开tcp端口22。
但是,sshd是什么?
让我们找出:
$ whatis sshd
输出示例:
sshd (8) - OpenSSH SSH daemon
如何在Linux上使用lsof命令查看打开的端口
$ sudo lsof -i :portNumber $ sudo lsof -i tcp:portNumber $ sudo lsof -i udp:portNumber $ sudo lsof -i :22 $ sudo lsof -i :22 | grep LISTEN