<?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>Nc on 张有志的博客</title>
    <link>https://bianle.me/tags/nc/</link>
    <description>Recent content in Nc on 张有志的博客</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 07 Apr 2026 12:00:00 +0800</lastBuildDate>
    <atom:link href="https://bianle.me/tags/nc/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>nc（Ncat）命令入门：端口检测、连通性排查与常用案例</title>
      <link>https://bianle.me/posts/464/</link>
      <pubDate>Tue, 07 Apr 2026 12:00:00 +0800</pubDate>
      <guid>https://bianle.me/posts/464/</guid>
      <description>&lt;p&gt;&lt;code&gt;nc&lt;/code&gt;（netcat）是一个非常实用的网络工具，很多系统里它会以 &lt;code&gt;Ncat&lt;/code&gt; 的实现形式出现（例如 Nmap 套件中的 Ncat）。&lt;/p&gt;
&lt;p&gt;它的定位很简单：&lt;strong&gt;快速测试网络连通性、端口状态，以及做临时的 TCP/UDP 收发&lt;/strong&gt;。&lt;br&gt;
日常排查里，&lt;code&gt;nc&lt;/code&gt; 往往比 &lt;code&gt;telnet&lt;/code&gt; 更直接、参数也更灵活。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;一ncncat能做什么&#34;&gt;一、nc（Ncat）能做什么&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;检查某个端口是否开放（最常用）&lt;/li&gt;
&lt;li&gt;测试本机到目标主机的 TCP/UDP 连通性&lt;/li&gt;
&lt;li&gt;快速监听本地端口，模拟服务端&lt;/li&gt;
&lt;li&gt;与脚本结合做批量端口检测&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;二常见参数速查&#34;&gt;二、常见参数速查&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-z&lt;/code&gt;：零 I/O 模式，只探测端口，不发送业务数据&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-v&lt;/code&gt;：输出详细信息（建议排障时始终带上）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-w &amp;lt;秒&amp;gt;&lt;/code&gt;：设置超时时间，避免命令卡住&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-l&lt;/code&gt;：监听模式（本地开一个端口等待连接）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-u&lt;/code&gt;：使用 UDP（默认是 TCP）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;三常用案例&#34;&gt;三、常用案例&lt;/h2&gt;
&lt;h3 id=&#34;1检查-mysql-3306-端口是否开放&#34;&gt;1）检查 MySQL 3306 端口是否开放&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nc -zv 192.168.50.101 &lt;span style=&#34;color:#ae81ff&#34;&gt;3306&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Ncat: Version 7.92 &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt; https://nmap.org/ncat &lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Ncat: Connected to 192.168.50.101:3306.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Ncat: &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; bytes sent, &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; bytes received in 0.02 seconds.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个结果说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;目标主机 &lt;code&gt;192.168.50.101&lt;/code&gt; 可达&lt;/li&gt;
&lt;li&gt;&lt;code&gt;3306&lt;/code&gt; 端口对当前来源开放&lt;/li&gt;
&lt;li&gt;TCP 三次握手已成功建立&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：端口开放不等于数据库账号可登录，它只代表网络层连通。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;2快速检测多个常见端口&#34;&gt;2）快速检测多个常见端口&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nc -zv 192.168.50.101 &lt;span style=&#34;color:#ae81ff&#34;&gt;22&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;80&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;443&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3306&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;适合快速判断 SSH、HTTP、HTTPS、MySQL 这些服务是否在监听。&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><code>nc</code>（netcat）是一个非常实用的网络工具，很多系统里它会以 <code>Ncat</code> 的实现形式出现（例如 Nmap 套件中的 Ncat）。</p>
<p>它的定位很简单：<strong>快速测试网络连通性、端口状态，以及做临时的 TCP/UDP 收发</strong>。<br>
日常排查里，<code>nc</code> 往往比 <code>telnet</code> 更直接、参数也更灵活。</p>
<hr>
<h2 id="一ncncat能做什么">一、nc（Ncat）能做什么</h2>
<ul>
<li>检查某个端口是否开放（最常用）</li>
<li>测试本机到目标主机的 TCP/UDP 连通性</li>
<li>快速监听本地端口，模拟服务端</li>
<li>与脚本结合做批量端口检测</li>
</ul>
<hr>
<h2 id="二常见参数速查">二、常见参数速查</h2>
<ul>
<li><code>-z</code>：零 I/O 模式，只探测端口，不发送业务数据</li>
<li><code>-v</code>：输出详细信息（建议排障时始终带上）</li>
<li><code>-w &lt;秒&gt;</code>：设置超时时间，避免命令卡住</li>
<li><code>-l</code>：监听模式（本地开一个端口等待连接）</li>
<li><code>-u</code>：使用 UDP（默认是 TCP）</li>
</ul>
<hr>
<h2 id="三常用案例">三、常用案例</h2>
<h3 id="1检查-mysql-3306-端口是否开放">1）检查 MySQL 3306 端口是否开放</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nc -zv 192.168.50.101 <span style="color:#ae81ff">3306</span>
</span></span><span style="display:flex;"><span>Ncat: Version 7.92 <span style="color:#f92672">(</span> https://nmap.org/ncat <span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>Ncat: Connected to 192.168.50.101:3306.
</span></span><span style="display:flex;"><span>Ncat: <span style="color:#ae81ff">0</span> bytes sent, <span style="color:#ae81ff">0</span> bytes received in 0.02 seconds.
</span></span></code></pre></div><p>这个结果说明：</p>
<ul>
<li>目标主机 <code>192.168.50.101</code> 可达</li>
<li><code>3306</code> 端口对当前来源开放</li>
<li>TCP 三次握手已成功建立</li>
</ul>
<blockquote>
<p>注意：端口开放不等于数据库账号可登录，它只代表网络层连通。</p></blockquote>
<h3 id="2快速检测多个常见端口">2）快速检测多个常见端口</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nc -zv 192.168.50.101 <span style="color:#ae81ff">22</span> <span style="color:#ae81ff">80</span> <span style="color:#ae81ff">443</span> <span style="color:#ae81ff">3306</span>
</span></span></code></pre></div><p>适合快速判断 SSH、HTTP、HTTPS、MySQL 这些服务是否在监听。</p>
<h3 id="3指定超时避免长时间等待">3）指定超时，避免长时间等待</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nc -zvw <span style="color:#ae81ff">2</span> 192.168.50.101 <span style="color:#ae81ff">3306</span>
</span></span></code></pre></div><p>在网络不稳定或目标主机可能离线时，建议加 <code>-w</code>。</p>
<h3 id="4扫描端口区间轻量排查">4）扫描端口区间（轻量排查）</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nc -zv 192.168.50.101 3000-3010
</span></span></code></pre></div><p>适合开发机排查某段端口是否被占用或已开放。</p>
<h3 id="5本地监听端口临时模拟服务端">5）本地监听端口，临时模拟服务端</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nc -lv <span style="color:#ae81ff">8080</span>
</span></span></code></pre></div><p>可配合另一台机器测试连通性：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nc -zv &lt;你的IP&gt; <span style="color:#ae81ff">8080</span>
</span></span></code></pre></div><hr>
<h2 id="四排障经验连接失败时优先检查什么">四、排障经验：连接失败时优先检查什么</h2>
<p>当 <code>nc -zv</code> 连接失败时，通常按这个顺序排查：</p>
<ol>
<li>目标服务是否真的在监听该端口（服务进程状态）</li>
<li>本机与目标主机网络是否互通（路由/VPN/网段）</li>
<li>目标主机防火墙或安全组是否放行该端口</li>
<li>是否写错了 IP、端口，或访问了错误环境</li>
</ol>
<hr>
<h2 id="五小结">五、小结</h2>
<p><code>nc（Ncat）</code> 是网络排障工具箱里的高频命令，最常见用法就是：</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nc -zv &lt;目标IP&gt; &lt;端口&gt;
</span></span></code></pre></div><p>一句命令就能快速回答“端口通不通”这个关键问题。<br>
无论是排查 MySQL、Redis、SSH，还是业务服务端口连通性，<code>nc</code> 都非常高效。</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
