前言
linux安装相关软件可能都需要允许外网访问,例如mysql、redis、kafka等,前些天一同事安装了mosquitto(Mqtt服务器),外网却无法访问,检查相关配置外还是不能访问。关于这个问题,我们需要从这几个方面进行分析和排查。
检查外部端口是否被占用
linux外部端口是否被占用,通常可以使用lsof、netstat命令
lsof 命令
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。
例如查看mosquitto端口是否被占用
lsof -i:1883
相关结果参数说明
- COMMAND:进程的名称 PID:进程标识符
- USER:进程所有者
- FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、tx