[Linux服务器] linux 端口 进程

1051 0
Honkers 2025-4-7 13:23:18 | 显示全部楼层 |阅读模式

1. 检查端口是否被监听

要检查在服务器上端口12345是否已启动并监听,可以使用多种方法,具体取决于你所使用的操作系统。下面是一些在Linux(如CentOS)上常用的方法:

1. 使用 netstat 命令

netstat 是一个常用的网络工具,可以显示网络连接、路由表、接口统计信息等。可以使用以下命令检查端口12345的状态:

  1. netstat -tuln | grep 12345
复制代码

2. 使用 ss 命令

ss 是另一个用于检查网络连接的工具,功能更加强大。你可以使用以下命令查看端口12345的状态:

  1. ss -tuln | grep 12345
复制代码

3. 使用 lsof 命令

lsof 命令用于列出当前系统打开的文件,包括网络连接。可以用来查看某个特定端口的使用情况:

  1. lsof -i :12345
复制代码

4. 使用 curl 命令

如果你的中继服务器使用的是TCP协议,你可以使用 curl 来测试端口是否响应(注意:因为我们这里用的是UDP,所以这个方法不适用,但在某些情况下可以使用):

  1. curl localhost:12345
复制代码

5. 使用 telnet 命令

telnet 命令可以用来测试网络连接。如果你安装了 telnet,可以运行:

  1. telnet localhost 12345
复制代码

6. 查看Python程序输出

如果你在终端中运行中继服务器程序,服务器会打印出“安全中继服务器已启动,等待客户端连接…”的信息。这也表明服务器正在监听端口12345。

示例输出

如果使用 netstat 或 ss 命令,应该能看到类似以下的输出(具体根据你的环境不同而有所变化):

  1. udp 0 0 0.0.0.0:12345 0.0.0.0:*
复制代码

总结

通过上述方法,你可以确认端口12345是否已启动并正在监听。如果没有看到任何输出,说明该端口没有在监听,你可能需要检查中继服务器代码是否在运行,或者是否存在防火墙设置阻止访问。

2.查看端口被哪个进程占用

要查看在Linux系统上端口12345是被哪个程序占用的,你可以使用以下几种命令:

1. 使用 lsof 命令

lsof(List Open Files)命令可以列出当前系统打开的文件,包括网络连接。你可以用它来查看特定端口的占用情况。

  1. lsof -i :12345
复制代码

2. 使用 netstat 命令

netstat 命令可以显示所有的网络连接,使用以下命令也能找出哪个程序正在使用端口:

  1. netstat -tulnp | grep 12345
复制代码
  • -t:显示TCP连接
  • -u:显示UDP连接
  • -l:仅显示在监听状态的连接
  • -n:显示IP地址而不是主机名
  • -p:显示进程ID和程序名称

3. 使用 ss 命令

ss(Socket Stat)命令是 netstat 的替代品,功能更强大,使用方式如下:

  1. ss -tulnp | grep 12345
复制代码
  • 选项与 netstat 类似。

示例输出

运行这些命令后,输出可能如下所示:

  1. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  2. python3 12345 user 3u IPv4 123456 0t0 UDP *:12345
复制代码
  • COMMAND:占用该端口的程序名称(如 python3)。
  • PID:占用该端口的进程ID(如 12345)。
  • USER:运行该程序的用户。
  • FD:文件描述符。
  • TYPE:连接类型(如 IPv4)。
  • NODE:网络节点名称。

总结

通过上述命令,你可以轻松查找出哪个程序正在使用端口12345。如果你发现该端口被意外的程序占用,可能需要根据程序的PID来决定是否结束该进程。可以使用以下命令结束一个进程:

  1. kill <PID>
复制代码

如果需要强制结束进程,可以使用:

  1. kill -9 <PID>
复制代码

请谨慎使用kill命令,以免意外终止重要的系统进程。

3.查看进程在哪个目录下运行

要查看一个特定进程的PID(进程ID)是在什么目录下启动的,可以使用以下几种方法:

1. 使用 ls 命令查看进程的链接

每个进程都有一个/proc目录,其中包含该进程的相关信息。你可以通过查看cwd(当前工作目录)和exe(可执行文件)链接来获取启动目录。

查看当前工作目录
  1. ls -l /proc/<PID>/cwd
复制代码
查看可执行文件路径
  1. ls -l /proc/<PID>/exe
复制代码

2. 使用 pwdx 命令

pwdx 是一个方便的命令,可以直接显示给定进程的当前工作目录。

  1. pwdx <PID>
复制代码

3. 使用 ps 命令

ps 命令可以显示与当前正在运行的进程相关的信息,包括其启动目录。

  1. ps -p <PID> -o args=
复制代码

4. 使用 cat 命令查看/proc中的信息

在/proc//目录下,你可以使用cat命令查看一些信息。

  1. cat /proc/<PID>/cmdline
复制代码

示例

假设你想查看PID为12345的进程:

1. 查看当前工作目录
  1. ls -l /proc/12345/cwd
复制代码

输出可能类似于:

  1. lrwxrwxrwx 1 user user 0 Oct 2 12:00 /proc/12345/cwd -> /home/user/my_project
复制代码
2. 查看可执行文件路径
  1. ls -l /proc/12345/exe
复制代码

输出可能类似于:

  1. lrwxrwxrwx 1 user user 0 Oct 2 12:00 /proc/12345/exe -> /usr/bin/python3
复制代码
3. 使用 pwdx 查看进程工作目录
  1. pwdx 12345
复制代码

输出可能是:

  1. 12345: /home/user/my_project
复制代码

总结

通过上述方法,你可以轻松查看特定PID的进程是从哪个目录启动的。这在调试或分析程序行为时非常有用。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行