<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Troubleshooting on Vertsineu's Blog</title><link>https://blog.vertsineu.top/tags/troubleshooting/</link><description>Recent content in Troubleshooting on Vertsineu's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 04 Apr 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.vertsineu.top/tags/troubleshooting/index.xml" rel="self" type="application/rss+xml"/><item><title>记一次在 Linux 中根据端口号查找进程的经历</title><link>https://blog.vertsineu.top/posts/find-process-from-port/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0800</pubDate><guid>https://blog.vertsineu.top/posts/find-process-from-port/</guid><description>&lt;h2 id="loc-1"&gt;前言&lt;/h2&gt;
&lt;p&gt;不久之前，我接手了一套服务器集群，这个集群由一个登录节点和多个计算节点组成，其中登录节点可以通过外网访问，而计算节点只能通过登录节点跳板访问。&lt;/p&gt;
&lt;p&gt;拿到手，我最先做的便是探查一下这个集群的网络架构，而在我排查过程中，我发现登录节点 80 端口上开了一个 HTTP 访问，是用于计算节点资源管理的后台管理平台，不足为奇。&lt;/p&gt;
&lt;p&gt;但是我有点好奇，想看一下这个 80 端口运行的那个服务是哪个进程管理的，顺便也能看一下这个管理平台是如何搭建起来的。&lt;/p&gt;
&lt;p&gt;然后，按照运维的惯例，执行以下几个命令来查找对应进程：&lt;/p&gt;
&lt;div class="typst-raw-block"&gt;
&lt;pre&gt;&lt;code data-lang="bash"&gt;&lt;span style="color: #4b69c6"&gt;lsof&lt;/span&gt; -i :80&lt;br&gt;&lt;span style="color: #4b69c6"&gt;netstat&lt;/span&gt; -tlnup &lt;span style="color: #d73948"&gt;|&lt;/span&gt; &lt;span style="color: #4b69c6"&gt;grep&lt;/span&gt; :80&lt;br&gt;&lt;span style="color: #4b69c6"&gt;ss&lt;/span&gt; -tlnup &lt;span style="color: #d73948"&gt;|&lt;/span&gt; &lt;span style="color: #4b69c6"&gt;grep&lt;/span&gt; :80&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;并不奇怪，输出结果显示：&lt;/p&gt;
&lt;div class="typst-raw-block"&gt;
&lt;pre&gt;&lt;code data-lang="bash"&gt;&lt;span style="color: #4b69c6"&gt;$&lt;/span&gt; netstat -tlnup &lt;span style="color: #d73948"&gt;|&lt;/span&gt; &lt;span style="color: #4b69c6"&gt;grep&lt;/span&gt; :80&lt;br&gt;&lt;span style="color: #4b69c6"&gt;tcp&lt;/span&gt; 0 0 0.0.0.0:80 0.0.0.0:&lt;span style="color: #d73948"&gt;*&lt;/span&gt; LISTEN 3202/nginx: master&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;即，80 端口是一个 nginx 进程在提供服务，但是我们知道，管理平台不是静态网页，nginx 大概率是一个反向代理的作用。&lt;/p&gt;
&lt;p&gt;因此，我打开了 &lt;span class="typst-raw-inline"&gt;&lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt;&lt;/span&gt; 查看一下 80 端口具体代理了哪里的网络服务（省略无关配置）：&lt;/p&gt;
&lt;div class="typst-raw-block"&gt;
&lt;pre&gt;&lt;code data-lang="conf"&gt;&lt;span style="color: #d73948"&gt;stream&lt;/span&gt; {&lt;br&gt; &lt;span style="color: #d73948"&gt;server&lt;/span&gt; {&lt;br&gt; &lt;span style="color: #d73948"&gt;listen&lt;/span&gt; &lt;span style="color: #198810"&gt;80&lt;/span&gt;;&lt;br&gt; &lt;span style="color: #d73948"&gt;proxy_pass&lt;/span&gt; 172.20.2.31:80;&lt;br&gt; }&lt;br&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;看样子代理了 172.20.2.31 这个计算节点上 80 端口的服务。&lt;/p&gt;
&lt;p&gt;接着，我 ssh 连接上了这个节点，同样使用惯例的指令查询 80 端口上的服务，但是这一次，奇怪的事情出现了，终端里什么输出都没有，也就是说，“没有”任何进程在 80 端口上服务？&lt;/p&gt;</description></item></channel></rss>