- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用命令 sudo netstat -tulpn
获取运行 Ubuntu Server 16.0.4 的计算机上所有打开端口的列表
这是输出:
user@myServer:~/Skripte$ sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1319/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1319/dovecot
tcp 0 0 192.168.1.22:53 0.0.0.0:* LISTEN 1147/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1147/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1167/sshd
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 2644/postgres
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1902/master
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1147/named
tcp6 0 0 :::9090 :::* LISTEN 951/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1203/java
tcp6 0 0 :::9001 :::* LISTEN 948/java
tcp6 0 0 :::8009 :::* LISTEN 1203/java
tcp6 0 0 :::3306 :::* LISTEN 1289/mysqld
tcp6 0 0 :::110 :::* LISTEN 1319/dovecot
tcp6 0 0 :::143 :::* LISTEN 1319/dovecot
tcp6 0 0 :::8080 :::* LISTEN 1203/java
tcp6 0 0 :::80 :::* LISTEN 1717/apache2
tcp6 0 0 :::8083 :::* LISTEN 950/java
tcp6 0 0 :::53 :::* LISTEN 1147/named
tcp6 0 0 :::22 :::* LISTEN 1167/sshd
tcp6 0 0 :::5432 :::* LISTEN 2644/postgres
tcp6 0 0 :::25 :::* LISTEN 1902/master
tcp6 0 0 ::1:953 :::* LISTEN 1147/named
tcp6 0 0 :::443 :::* LISTEN 1717/apache2
udp 0 0 192.168.1.22:53 0.0.0.0:* 1147/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1147/named
udp 0 0 0.0.0.0:68 0.0.0.0:* 1066/dhclient
udp6 0 0 :::53 :::* 1147/named
现在,我尝试编写脚本 getPorts.sh [optional search argument],它将打印所有端口(如果未提供参数)或仅打印过滤器中使用的端口。但是,netstat 打印出很多我不需要的信息,所以我希望我的脚本过滤这些文本并只提供我感兴趣的两个信息:端口和 PID/程序名称
基本上,我想要这种行为:
user@myServer:~/Skripte$ ./getPorts.sh java
9090 951/java
8005 1203/java
9001 948/java
user@myServer:~/Skripte$ ./getPorts.sh 8080
8080 1203/java
user@myServer:~/Skripte$ ./getPorts.sh
110 1319/dovecot
143 1319/dovecot
53 1147/named
53 1147/named
22 1167/sshd
5432 2644/postgres
25 1902/master
953 1147/named
9090 951/java
8005 1203/java
9001 948/java
8009 1203/java
3306 1289/mysqld
110 1319/dovecot
143 1319/dovecot
8080 1203/java
80 1717/apache2
8083 950/java
53 1147/named
22 1167/sshd
5432 2644/postgres
25 1902/master
953 1147/named
443 1717/apache2
53 1147/named
53 1147/named
068 1066/dhclient
53 1147/named
我写了下面的脚本:
#/bin/bash
filter=${1:-""}
zacasna=$(sudo netstat -tulpn | tr -s ' ' | cut -d ' ' -f 4,6,7 | tr ' ' '\t' | column -t | grep "$filter")
echo "$zacasna"
这个脚本接近于我正在尝试做的事情,但是它打印了我不想要的 State 列(因为最后几行缺少一些信息)并且它还打印了数据相当粗糙的状态。
我正在考虑为此使用 awk
,但我无法正确使用它来实现这一点。
最佳答案
由于 netstat
具有固定的列宽,最简单的解决方案是使用 cut -cN-M
,例如:
#/bin/bash
filter=${1:-""}
netstat -tulpn | cut -c21-44,81- | grep "$filter"
另一种方法是将 tcp
从 udp
中分离出来,并为每个使用不同的列号。使用 awk
,您可以这样做:
netstat -tulpn | awk -vOFS='\t' '/^tcp/{print $4,$7} /^udp/{print $4,$6}' | grep "$filter"
消除grep
:
netstat -tulpn | awk -vq="$filter" -vOFS='\t' '$0!~q{next} /^tcp/{print $4,$7} /^udp/{print $4,$6}'
关于linux - 过滤 netstat 输出以获取 bash 中的特定端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47117075/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我已经检查了“-n”的功能 --“显示事件的 TCP 连接,但是,地址和端口号以数字表示,不会尝试确定名称。”但是我不明白为什么“-n”可以让netstat立即退出? 最佳答案 通过快速检查,我没有看
我正在使用netstat检查 TCP 连接。当我尝试 netstat -t | grep 210 ,它没有向我显示任何连接(输出为空),但是当我尝试 netstat -nt | grep 210 时,
在 Windows 上有谁知道为什么“netstat -an -p tcp”不显示 IPv6 地址,但为什么“netstat -an”显示它们? 我非常怀疑它会将 IPv6 地址解析为 IPv4,但这
我试图了解 netstat 的 --numeric/-n 标志的作用?手册说了以下关于 --numeric/-n --numeric , -n Show numerical addresses ins
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
在设置新的 http 服务器时,我发现 netstat 中出现了一些奇怪的连接: 这台计算机上几乎没有运行任何东西 - 这些高端口似乎是木马程序。 谁能帮我提供信息? 最佳答案 尝试 netstat
我有一台机器,每秒(或更少)有大量连接和断开连接。我需要在某一时刻捕获网络快照。但是我看到 netstat 需要一些时间来返回结果,然后很多套接字会重新连接。 netstat 实际上是如何工作的?它能
当使用 netstat -i 时,您会得到类似于以下示例的输出: Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-D
大量搜索未找到批量解析 netstat -bano 的解决方案(与 -nab、-bna、- 相同的开关anb、-nba、nabo 等),因此来自给定网络连接的所有信息都在同一行上。 Netstat 的
我知道有一种方法可以在 ubuntu 上运行 netstat 命令,以便它不断更新。有人知道吗?我想知道进程何时打开或关闭套接字: sudo netstat -lnp |grep 12239 最佳答案
我正在尝试运行 shell命令在我的 Android 应用程序中以检查是否给予 tcp port是否打开: Runtime.getRuntime().exec(arrayOf("/system/bin
这个问题最近在我尝试启动 active-mq 时开始(默认情况下从端口 61616 开始)。但突然它停止在该端口上提出 JVM_BIND 问题。即使重新启动计算机后问题也没有消失。 主要问题是 Win
您好,当我运行 netstat -g 时,我看到了下表。但是,我就是不知道all-system.mcast.net映射到什么IP?这是在哪里定义的? linux中是否有一个文件来设置它?提前致谢 IP
当我运行netstat -ano命令时,我有: PS Y:\PowerShell> netstat -ano Active Connections Proto Local Address
所以我正在开发一个 Linux 内核模块,并且想要从 sudo netstat -nap 的输出中隐藏特定端口号上的打开套接字 我应该采取什么方法? 最佳答案 首先,您必须了解“netstat”如何从
我有一个 OSGI 容器,打开了几个 TCP/UDP 端口,有没有办法使用 OSGI 工具将开放端口映射到 bundle ? 此外,如果某个包将自身注册为 HTTP servlet,我可以通过某种方式
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
在 netstat 中检索套接字状态的系统调用是什么?我实际上对 netstat 的实现方式并不感兴趣,而是对哪些系统调用可以检索该信息感兴趣。 getsockopt() 似乎获取的是套接字的静态信息
命令 netstat 的输出如下: netstat -taunp | grep hgd tcp 0 0 10.1.1.1:601 10.1.1.2:935
我是一名优秀的程序员,十分优秀!