Jon*_*nas 204 server networking
我想看看我的机器上打开了哪些端口,例如我的机器正在侦听哪些端口。例如,如果我安装了 Web 服务器,则使用端口 80,等等。
有没有这方面的命令?
小智 343
我一直用这个:
sudo netstat -ntlp
Run Code Online (Sandbox Code Playgroud)
如果该netstat命令不可用,请使用以下命令安装它:
sudo apt install net-tools
Run Code Online (Sandbox Code Playgroud)
hhl*_*hlp 141
Nmap(“网络映射器”)是一个免费的开源实用程序,用于网络探索或安全审计。
使用nmap 192.168.1.33内部PC或nmap external IP address。
更多信息man nmap。
Zenmap是官方的 GUI 前端。
nat*_*ill 71
找出哪些端口正在侦听以及您的防火墙规则是什么的其他好方法:
sudo netstat -tulpn
sudo ufw status
ine*_*pro 29
要列出打开的端口,请使用该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
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,三个服务绑定到环回地址。
绑定到环回地址“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)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅man netstat或man lsof。
小智 24
这足以表明有一个进程正在侦听0.0.0.0端口 80(标准 Web 服务器端口号)上的 IP 地址(需要这样它才能回复任何请求)。在我的情况下,这表明它是网络服务器lighttpd
$ sudo netstat -ntlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2495/lighttpd
Run Code Online (Sandbox Code Playgroud)
如果您以后想确保您允许通过防火墙的唯一端口是端口 80,我经常使用 www.grc.com 上的 ShieldsUp 来执行防火墙测试。
Cia*_*man 11
sudo iptables -L将列出您电脑的端口规则。请注意,如果您使用 ufw 或 shorewall 防火墙,则输出可能难以阅读。在这种情况下,而不是使用sudo ufw status例如。
这本身并不是很有用,因为即使端口是开放的,如果没有进程侦听该端口,访问仍然会被拒绝。
小智 5
如果您正在寻找对服务器机器或本地端口的持续监控,我认为您还可以使用 nmap 的图形版本,即 Zenmap 以获得更详细的版本
Zenmap 是 Nmap 安全扫描器的官方图形用户界面 (GUI)。
可用支持(Linux、Windows、Mac OS X、BSD 等)
看看这个工具视图: