查看linux开启了哪些服务(转)

一、利用进程来查看

命令里 ps -aux  | grep xxx 是查看某个进程或者服务是否存在。


二、利用chkconfig配置工具chkconfig --list 可以列出sysV和xinet服务在各个runlevel的默认启动状态。


三、利用SERVICE 命令

service 服务名 status

如:

[root@localhost ~]# service sshd status

openssh-daemon (pid  3701) 正在运行...


四、利用自启动服务配置工具

命令:ntsysv

ntsysv 1.3.30.2 - (C) 2000-2001 Red Hat, Inc.                                  

                                                                               

                      ┌────────────┤ 服务 ├────────── ──┐                │                                │                     

                      │ 您想自动启动哪些服务?         │                     

                      │                                │                     

                      │     *] sendmail          ↑     │                    

                      │     [*] smartd           ?     │                                           │     [*] sshd             ?     │                                           │     [ ] svnserve         ?     │                                           │     [*] syslog           ?     │                                           │      ] tcsd      d       ?     │                                           │     *] vmware-tools      ?     │                                           │      ] vncserver         ↓     │                    

                      │                                │                     

                      │    ┌──────┐       ┌──────┐     │     

                      │    │ 确定 │       │ 取消 │     │                 

                      │    └──────┘       └──────┘     │     

                      │                                │                     

                      │                                │                     

                      └─────────────────────────── ─────┘                                                                   

                                                        可知道哪些服务启动了。。。。。。。。。。。。。。。


### 如何在 Linux 服务器上查看开启的端口 #### 使用 `netstat` 命令 `netstat` 是一个常用的网络统计工具,能够显示网络连接、路由表、接口状态等信息。通过特定参数组合,可以用来查看当前系统中已经开启的端口。 以下是具体命令及其功能说明: - **`netstat -tuln`**: 参数解释如下: - `-t`: 显示 TCP 协议的相关信息。 - `-u`: 显示 UDP 协议的相关信息。 - `-l`: 列出正在监听的服务。 - `-n`: 不解析主机名和服务名称,直接以数字形式展示 IP 地址和端口号。 此命令可用于快速查看哪些端口处于监听状态[^1]。 示例输出: ```bash Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::80 :::* LISTEN udp 0 0 0.0.0.0:68 0.0.0.0:* ``` 如果需要过滤某个具体的端口(如 80),可结合 `grep` 工具使用: ```bash netstat -tuln | grep :80 ``` 这将只返回与端口 80 相关的结果[^2]。 --- #### 使用 `ss` 命令 `ss`(Socket Statistics)是一个更高效的替代方案,尤其适用于高负载场景下的服务器监控。它同样能列出所有监听中的端口,并且性能优于传统的 `netstat`。 常用命令格式为: - **`ss -tuln`**: 功能类似于 `netstat -tuln`,用于查看所有监听中的 TCP 和 UDP 端口。 示例输出: ```bash Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 [::]:80 [::]:* ``` 对于大规模连接数的情况,推荐优先使用 `ss`,因为它基于内核模块 `tcp_diag` 提供更快的数据获取能力[^4]。 --- #### 使用 `lsof` 命令 除了上述两种方法外,还可以借助 `lsof` 来查询指定程序占用的端口情况。该命令主要关注的是进程级别的资源管理,包括但不限于文件描述符以及网络套接字。 基本语法如下: - **`lsof -i -P -n`**: - `-i`: 展示网络相关的文件。 - `-P`: 防止将端口号换成服务名称。 - `-n`: 避免 DNS 解析操作。 例如,要找出所有 HTTP/HTTPS 流量对应的端口,运行以下语句即可实现目标筛选效果: ```bash lsof -i -P -n | grep ':80\|:443' ``` 此外,若想定位某单一应用所绑定的具体地址,则需附加额外选项加以限定,比如 PID 或者 EXE 路径等等[^3]。 --- ### 总结 综上所述,在 Linux 平台上存在多种途径可供我们去探测那些已经被激活并对外提供服务的通信端点位置。其中既包含了传统意义上的经典解决方案——即依靠于 net-tools 家族成员之一「netstat」完成初步探索;同时也涵盖了现代化改进版本 ss 及其背后依托的技术原理优势体现之处;最后还提及到跨领域视角下由 lsof 所展现出来的独特魅力所在。 ```python # Python 示例脚本:调用 subprocess 模块执行 shell 命令 import subprocess def check_open_ports(): result = subprocess.run(['ss', '-tuln'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) if result.returncode == 0: print(result.stdout) else: print(f"Error occurred:\n{result.stderr}") check_open_ports() ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值