找出正在侦听的端口/在Linux和FreeBSD服务器上打开的端口
时间:2020-01-09 14:16:41 来源:igfitidea点击:
如何在Linux或FreeBSD Unix服务器上找到开放端口?
Linux和UNIX服务器上都有不同的命令,以查看服务器上正在侦听或打开的TCP/UDP端口。
您可以使用netstat命令,该命令打印网络连接,路由表,接口统计信息,伪装连接和多播成员身份等。
另一个(也是建议的)选项是使用lsof命令,该命令列出打开的文件以及Linux,FreeBSD上的端口,Solaris和其他Unixish系统。
netstat命令查找打开的端口
语法为:
# netstat --listen
或者
# netstat -l
我的Debian 8.x Linux服务器的示例输出:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:953 *:* LISTEN tcp 0 0 localhost:6010 *:* LISTEN tcp 0 0 localhost:4700 *:* LISTEN tcp 0 0 *:nfs *:* LISTEN tcp 0 0 *:afpovertcp *:* LISTEN tcp 0 0 *:40495 *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp6 0 0 [::]:41864 [::]:* LISTEN tcp6 0 0 [::]:37833 [::]:* LISTEN tcp6 0 0 [::]:35658 [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN udp 0 0 *:59997 *:* udp 0 0 *:37610 *:* udp 0 0 *:755 *:* udp 0 0 nas01.theitroad.n:domain *:* udp 0 0 localhost:domain *:* udp 0 0 *:54469 *:* udp 0 0 *:mdns *:* udp6 0 0 [::]:34235 [::]:* udp6 0 0 [::]:36451 [::]:* udp6 0 0 [::]:sunrpc [::]:* udp6 0 0 [::]:58606 [::]:* Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 16912 /var/run/mysqld/mysqld.sock unix 2 [ ACC ] STREAM LISTENING 11796 /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 11799 /var/run/avahi-daemon/socket unix 2 [ ACC ] STREAM LISTENING 18844 @/tmp/dbus-FStDtp4tGA
要显示打开的端口和已建立的TCP连接,请执行:
$ netstat -vatn
要仅显示打开的UDP端口,请尝试以下命令:
$ netstat -vaun
如果要查看FQDN(完整的dns主机名),请尝试删除-n标志:
$ netstat -vat
FreeBSD/OS X Unix用户尝试以下命令:
$ netstat -na | grep -i LISTEN $ netstat -f inet -na | grep -i LISTEN
输出示例:
tcp6 0 0 ::1.52698 *.* LISTEN tcp4 0 0 127.0.0.1.49153 *.* LISTEN tcp4 0 0 127.0.0.1.49152 *.* LISTEN tcp4 0 0 *.22 *.* LISTEN tcp6 0 0 *.22 *.* LISTEN
lsof命令示例
要显示打开的端口列表,请执行:
# lsof -i
要显示所有打开的文件,请使用:
# lsof
要显示PID为9255的进程正在使用的所有打开的IPv4网络文件,请使用:
# lsof -i 4 -a -p 9255
另一个例子:
# lsof -iTCP -sTCP:LISTEN
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rpcbind 1004 root 8u IPv4 14248 0t0 TCP *:sunrpc (LISTEN) rpcbind 1004 root 11u IPv6 14251 0t0 TCP *:sunrpc (LISTEN) rpc.statd 1013 statd 9u IPv4 14331 0t0 TCP *:51084 (LISTEN) rpc.statd 1013 statd 11u IPv6 14335 0t0 TCP *:54585 (LISTEN) sshd 1031 root 3u IPv4 15629 0t0 TCP *:ssh (LISTEN) sshd 1031 root 4u IPv6 15631 0t0 TCP *:ssh (LISTEN) named 1034 bind 20u IPv6 13184 0t0 TCP *:domain (LISTEN) lighttpd 1679 www-data 4u IPv4 18535 0t0 TCP *:http (LISTEN) lighttpd 1679 www-data 5u IPv6 18536 0t0 TCP *:http (LISTEN) afpd 1709 root 6u IPv4 18703 0t0 TCP *:afpovertcp (LISTEN) cnid_meta 1710 root 5u IPv4 16316 0t0 TCP localhost:4700 (LISTEN) rpc.mount 1739 root 9u IPv4 16332 0t0 TCP *:52053 (LISTEN) rpc.mount 1739 root 17u IPv4 16348 0t0 TCP *:60881 (LISTEN) rpc.mount 1739 root 19u IPv6 16352 0t0 TCP *:37833 (LISTEN) sshd 1975 Hyman 11u IPv6 19711 0t0 TCP ip6-localhost:6010 (LISTEN) sshd 1975 Hyman 12u IPv4 19712 0t0 TCP localhost:6010 (LISTEN)
关于FreeBSD用户的注意事项
您可以使用sockstat命令列出打开的Internet或UNIX域套接字,执行:
$ sockstat $ sockstat -l $ sockstat -4 -l $ sockstat -6 -l