Netstat输出行宽限制

Netstat输出行宽限制

执行时netstat,我发现无论控制台大小如何,该命令的输出宽度都受到限制,与其他命令(例如ps似乎需要调整的命令)形成鲜明对比。

例如:

$ sudo netstat -natp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1454/sshd       
tcp        0     48 xx.xx.xx.xx:22          xx.xx.xx.xx:44182       ESTABLISHED 1147/sshd: wtower [
tcp6       0      0 :::22                   :::*                    LISTEN      1454/sshd       

您可以注意到第二个输出的线宽很短(结束于[)。有什么方法可以让我得到正确的输出吗netstat

更新:该软件包版本net-tools_1.60-24.1ubuntu2_i386在 Ubuntu Server 12.04.5 LTS 上运行。

不幸的是,重定向到文件会产生相同的输出。

在任何控制台尺寸下,输出都是上面的。在较小的尺寸下,它只是包裹每一行,但是仍然输出是相同的,只是缩短了。

答案1

正如中所解释的对类似问题的回答关于aptitudeand dpkgnetstat正在截断输出,因为当它通过管道传输到 grep 时,它不知道输出应该有多宽。这个一般问题的解决方案具体取决于输入管道的程序的选项。在 的情况下netstat,我看到的唯一选择是使用该--wide选项,该选项告诉它假设输出的宽度与输出所需的宽度一样。然后你可能想使用cut -c-100例如。如果你真的只想每行 100 个字符。

答案2

这个问题现在可能已经解决了。我在尝试查看哪些端口正在侦听时遇到了同样的问题。

我之前在跑步netstat -vat。这导致列被截断。我发现只要在末尾添加一个大写字母“T”,它就会给我我想要的东西。

netstat -vatT

v = verbose a = all t = tcp T = notrim(停止修剪长地址)

答案3

在 Amazon linux 上我使用-W选项。例如:netstat -atgW

netstat --version

net-tools 2.10-alpha
Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang, Brian Micek and others
...

man netstat

--wide , -W 不要根据需要使用输出截断 IP 地址。目前这是可选的,以免破坏现有脚本。

答案4

您可以注意到第二个输出的线宽很短(以 [ 结束)。有什么方法可以让我从 netstat 获得正确的输出吗?

PID/Program name不幸的是, netstat 中列的宽度是硬编码的#define PROGNAME_WIDTH 20因此无法直接从 netstat 获取完整输出。最后还有 19 个字符和一个空格。

在今天的 Linux 中,我们可以使用sudo ss -natp格式稍有不同但带有全名的完整信息:

State          Recv-Q         Send-Q                 Local Address:Port                   Peer Address:Port         Process                                                              
LISTEN         0              4096                   127.0.0.53%lo:53                          0.0.0.0:*             users:(("systemd-resolve",pid=1360261,fd=14))                       
LISTEN         0              128                          0.0.0.0:22                          0.0.0.0:*             users:(("sshd",pid=1360240,fd=3))                                   
LISTEN         0              4096                         0.0.0.0:25                          0.0.0.0:*             users:(("docker-proxy",pid=1388011,fd=4))                           
ESTAB          0              0                          10.0.2.15:22                         10.0.2.2:39156         users:(("sshd",pid=1052681,fd=4),("sshd",pid=1052550,fd=4))         
LISTEN         0              128                             [::]:22                             [::]:*             users:(("sshd",pid=1360240,fd=4))                                   
LISTEN         0              4096                            [::]:3478                           ```

相关内容