CentOS查看端口对应程序的完整路径方法

在Centos系统中,当使用ps或top命令查看进程信息时,可能无法直接看到进程的绝对路径。实际上,系统在/proc目录下为每个进程创建了一个以PID命名的文件夹,其中包含详细信息。可以通过查看/proc/PID/exe来获取进程的绝对路径,使用netstat-lntp查看端口绑定的程序,以及通过其他如cmdline和environ文件了解进程的命令行参数和环境变量。

通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。这时,我们需要通过以下的方法来查看进程的详细信息:

Centos在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。

查看端口命令:netstat -lntp

查看程序路径:ll /proc/PID

cwd符号链接的是进程运行目录;

exe符号连接就是执行程序的绝对路径;

cmdline就是程序运行时输入的命令行命令;

environ记录了进程运行时的环境变量;

fd目录下是进程打开或使用的文件的符号连接。

### 查看端口占用情况或开放状态 在 CentOS 7.9 中,有多种方法可以用来查看系统的端口占用情况或开放状态。 #### 使用 `netstat` 命令 尽管 `netstat` 已逐渐被更现代的工具取代,在许多情况下它仍然是有效的。为了确保安装了必要的包,可以通过以下命令来确认: ```bash yum install net-tools ``` 之后,通过如下命令查看监听中的 TCP 和 UDP 端口及其关联的服务名称和 PID[^1]: ```bash netstat -tulnpe ``` 此命令会显示所有正在监听 (listen) 的套接字 (-l),仅限于 IPv4 和 IPv6 协议族 (-t 表示TCP, -u 表示UDP),并且不解析主机名(-n), 显示进程 ID 和程序名称 (-p),以及用户信息 (-e)。 #### 使用 `ss` 命令 对于较新的 Linux 发行版来说推荐使用 `ss` 来替代 `netstat` 。该命令提供了更快的速度和更多的选项用于过滤输出结果。基本用法如下所示: ```bash ss -tulnp ``` 这里 `-t`, `-u`, `-l`, `-n`, 和 `-p` 参数的作用同上文提到的一致。 #### 使用 `lsof` 命令 另一个强大的工具叫做 `lsof` ,它可以列出当前打开的所有文件描述符的信息,其中包括网络连接。要检查特定端口号是否已被某个进程所使用,可执行下面这条指令: ```bash lsof -i :<port_number> ``` 例如想要知道哪个应用程序占用了 AlertManager 配置里指定的节点端口 31000,则应输入: ```bash lsof -i :31000 ``` 这将会返回有关绑定到该端口上的任何活动服务的数据,包括其对应的二进制路径服务所属用户的详情。 #### 检查防火墙配置 考虑到安全因素,有时即使本地应用已经绑定了某些端口也可能因为防火墙规则而无法访问外部流量。因此还需要核查防火墙的状态。如果系统运行着 firewalld 服务的话,那么就可以利用这些命令获取更多信息: 查询现有规则集下的允许进入通信端口列表: ```bash firewall-cmd --list-ports ``` 临时添加一个新的入站规则以便让其他机器能够触及内部服务器上的某项服务(比如 Redis 默认使用的 6379 号端口): ```bash firewall-cmd --add-port=6379/tcp ``` 永久保存更改以使重启后依然生效: ```bash firewall-cmd --runtime-to-permanent ``` 最后记得重新加载 firewall 规则使其立即生效: ```bash systemctl reload firewalld ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值