Jonas Asked: 2010-10-26 04:49:03 +0800 CST2010-10-26 04:49:03 +0800 CST 2010-10-26 04:49:03 +0800 CST 如何查看我的机器上打开了哪些端口? 772 我想看看我的机器上打开了哪些端口,例如我的机器正在侦听哪些端口。例如,如果我安装了 Web 服务器,则使用端口 80,依此类推。 有什么命令吗? networking server 10 个回答 Voted SiLeNCeD 2013-08-04T10:06:25+08:002013-08-04T10:06:25+08:00 我一直用这个: sudo netstat -ntlp 如果该netstat命令不可用,请使用以下命令安装它: sudo apt install net-tools Best Answer hhlp 2010-10-26T04:55:50+08:002010-10-26T04:55:50+08:00 nmap(安装) Nmap(“Network Mapper”)是用于网络探索或安全审计的免费开源实用程序。 用于nmap 192.168.1.33内部 PC 或nmap external IP address. 更多信息man nmap。 Zenmap是官方的 GUI 前端。 nathwill 2010-10-26T06:38:27+08:002010-10-26T06:38:27+08:00 找出正在侦听的端口以及防火墙规则的其他好方法: sudo netstat -tulpn sudo ufw status inetpro 2013-08-30T13:42:00+08:002013-08-30T13:42:00+08:00 要列出打开的端口,请使用该netstat命令。 例如: $ sudo netstat -tulpn | grep LISTEN tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 5452/dnsmasq tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1037/cupsd tcp6 0 0 ::1:631 :::* LISTEN 1037/cupsd 在上面的示例中,三个服务绑定到环回地址。 绑定到环回地址“127.0.0.1”的 IPv4 服务仅在本地计算机上可用。IPv6 的等效环回地址是“::1”。IPv4 地址“0.0.0.0”表示“任何 IP 地址”,这意味着其他机器可能会连接到特定端口上的任何本地配置的网络接口。 另一种方法是使用lsof命令: $ sudo lsof -nP -i | grep LISTEN cupsd 1037 root 9u IPv6 11276 0t0 TCP [::1]:631 (LISTEN) cupsd 1037 root 10u IPv4 11277 0t0 TCP 127.0.0.1:631 (LISTEN) dnsmasq 5452 nobody 5u IPv4 212707 0t0 TCP 127.0.0.1:53 (LISTEN) 有关详细信息,请参阅man netstat或man lsof。 rstonehouse 2011-11-06T12:03:05+08:002011-11-06T12:03:05+08:00 这足以表明有一个进程正在侦听0.0.0.0端口 80(标准 Web 服务器端口号)上的 IP 地址(需要它来回复任何请求)。在我的情况下,这表明它是 Web 服务器lighttpd $ sudo netstat -ntlp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2495/lighttpd 如果您以后想确保您允许通过防火墙的唯一内容是端口 80,我经常使用 www.grc.com 的 ShieldsUp 来执行防火墙测试。 Ciaran Liedeman 2011-11-06T11:37:18+08:002011-11-06T11:37:18+08:00 sudo iptables -L将列出您电脑的端口规则。请注意,如果您使用的是 ufw 或shorewall 防火墙,则输出可能难以阅读。在这种情况下,宁可使用sudo ufw status例如。 这本身并不是很有用,因为即使端口是开放的,如果没有进程在该端口上侦听,访问仍然会被拒绝。 Vishal G 2016-12-06T21:57:54+08:002016-12-06T21:57:54+08:00 如果您正在寻找服务器机器或本地端口的持续监控,我认为您还可以使用图形版本的 nmap 即 Zenmap 以获得更详细的版本 Zenmap 是 Nmap 安全扫描器的官方图形用户界面 (GUI)。 可用的支持(Linux、Windows、Mac OS X、BSD 等) 看看这个工具视图: user1069309 2020-08-26T23:57:59+08:002020-08-26T23:57:59+08:00 在最新的 Linux 发行版中,您很可能再也找不到netstat命令了。 $ netstat Command 'netstat' not found, but can be installed with: sudo apt install net-tools $ 但是,如果您想使用它,请继续使用sudo apt install net-tools命令安装它。 仅供参考,netstat 已过时(请参阅手册页),因此您应该使用ssintead of netstat. 该程序已过时。netstat 的替代品是 ss。 netstat -r 的替换是 ip route。netstat -i 的替代品是 ip -s link。netstat -g 的替换是 ip maddr。 例如 $ ss -lnt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 5 127.0.1.1:53 *:* LISTEN 0 128 127.0.0.1:631 *:* LISTEN 0 128 ::1:631 :::* 描述 ss = 另一个用于调查套接字的实用程序 -l, --listening 只显示监听套接字(这些默认被省略)。 -n, --numeric 不要尝试解析服务名称。 -t, --tcp 显示 TCP 套接字。 Abolfazl Zohoorian 2020-03-29T16:30:47+08:002020-03-29T16:30:47+08:00 ss:打印:网络连接路由表接口统计伪装连接多播成员资格 Install: sudo apt install net-tools Example: ~$ ss -ntlp | grep LISTEN > LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 5 [::1]:631 [::]:* LISTEN 0 50 [::ffff:127.0.0.1]:9614 *:* Marek Kamiński 2020-09-27T02:10:06+08:002020-09-27T02:10:06+08:00 假设你想检查端口 3000: netstat -na | grep 3000
我一直用这个:
如果该
netstat
命令不可用,请使用以下命令安装它:nmap(安装)
Nmap(“Network Mapper”)是用于网络探索或安全审计的免费开源实用程序。
用于
nmap 192.168.1.33
内部 PC 或nmap external IP address
.更多信息
man nmap
。Zenmap是官方的 GUI 前端。
找出正在侦听的端口以及防火墙规则的其他好方法:
sudo netstat -tulpn
sudo ufw status
要列出打开的端口,请使用该
netstat
命令。例如:
在上面的示例中,三个服务绑定到环回地址。
绑定到环回地址“127.0.0.1”的 IPv4 服务仅在本地计算机上可用。IPv6 的等效环回地址是“::1”。IPv4 地址“0.0.0.0”表示“任何 IP 地址”,这意味着其他机器可能会连接到特定端口上的任何本地配置的网络接口。
另一种方法是使用
lsof
命令:有关详细信息,请参阅
man netstat
或man lsof
。这足以表明有一个进程正在侦听
0.0.0.0
端口 80(标准 Web 服务器端口号)上的 IP 地址(需要它来回复任何请求)。在我的情况下,这表明它是 Web 服务器lighttpd
如果您以后想确保您允许通过防火墙的唯一内容是端口 80,我经常使用 www.grc.com 的 ShieldsUp 来执行防火墙测试。
sudo iptables -L
将列出您电脑的端口规则。请注意,如果您使用的是 ufw 或shorewall 防火墙,则输出可能难以阅读。在这种情况下,宁可使用sudo ufw status
例如。这本身并不是很有用,因为即使端口是开放的,如果没有进程在该端口上侦听,访问仍然会被拒绝。
如果您正在寻找服务器机器或本地端口的持续监控,我认为您还可以使用图形版本的 nmap 即 Zenmap 以获得更详细的版本
Zenmap 是 Nmap 安全扫描器的官方图形用户界面 (GUI)。
可用的支持(Linux、Windows、Mac OS X、BSD 等)
看看这个工具视图:
在最新的 Linux 发行版中,您很可能再也找不到
netstat
命令了。但是,如果您想使用它,请继续使用
sudo apt install net-tools
命令安装它。仅供参考,netstat 已过时(请参阅手册页),因此您应该使用
ss
intead ofnetstat
.例如
描述
ss:打印:网络连接路由表接口统计伪装连接多播成员资格
假设你想检查端口 3000:
netstat -na | grep 3000