当前位置: 首页 > 科技观察

使用netstat查看您的Linux服务器网络连接

时间:2023-03-13 02:46:49 科技观察

netstat命令提供了对Linux服务器的重要洞察力,用于监控和网络故障排除。在上一篇文章中,我分享了管理个人Linux服务器的一些初步步骤。我简要提到了用于监视网络连接的侦听端口,我想通过Linux系统上的netstat命令对此进行扩展。服务监控和端口扫描是标准的行业惯例。有很好的软件,例如Prometheus可以帮助自动执行此过程,还有SELinux可以帮助处理上下文和保护系统访问。但是,我相信了解您的服务器如何连接到其他网络和设备是建立健康服务器基线的关键,并且可以帮助您识别可能表明错误和入侵的异常情况。作为初学者,我已经掌握了netstat命令,可以为我的服务器提供监控和网络故障排除方面的深刻见解。Netstat和类似的网络监视工具包含在net-tools包中,用于显示有关活动连接的信息。由于在开放端口上运行的服务通常可被利用,因此定期网络监控可以帮助您尽早发现可疑活动。安装netstatnetstat通常预安装在Linux发行版上。如果您的服务器上未安装netstat,请使用包管理器安装它。在基于Debian的系统上:$sudoapt-getinstallnet-tools在基于Fedora的系统上:$dnfinstallnet-tools使用netstatnetstat命令本身显示所有已建立的连接成功。您可以使用netstat的参数指定进一步的预期输出。例如,要显示所有监听和非监听连接,请使用--all(-a是简写)参数。这将返回许多结果,因此在示例中我将输出通过管道传输到head命令以显示输出的前15行:$netstat--all|head-n15活动互联网连接(服务器和已建立)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp00*:27036*:*LISTENtcp00localhost:27060*:*LISTENtcp00*:16001*:*LISTENtcp00localhost:6463*:*LISTENtcp00*:ssh*:*LISTENtcp00localhost:57343*:*LISTENtcp00*:ipp*:*LISTENtcp00*:4713*:*听tcp0010.0.1.222:48388syd15s17-in-f5。1e:https已建立的tcp0010.0.1.222:48194ec2-35-86-38-2.us:https已建立的tcp0010.0.1.222:56075103-10-125-164.va:2702446680syd15s20-in-f10.1:httpsESTABLISHEDtcp0010.0.1.222:52730syd09s23-in-f3.1e:httpsESTABLISHED要仅显示TCP端口,请使用--all和--tcp参数,或简单地使用-at:$netstat-at|head-n5活动互联网连接(服务器和已建立)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp00*:27036*:*LISTENtcp00localhost:27060*:*LISTENtcp00*:16001*:*LISTEN要仅显示UDP端口,请使用--all和--udp参数,或缩写为-au:$netstat-au|head-n5活动互联网连接(服务器和已建立)ProtoRecv-QSend-QLocalAddressForeignAddressStateudp00*:27036*:*udp0010.0.1.222:44741224.0.0.56:46164ESTABLISHEDudp00*:bootpcnetstat命令参数通常很简单例如,要显示具有完整进程ID(PID)和数字地址的侦听TCP和UDP端口:$sudonetstat--tcp--udp--listening--programs--numeric活动互联网连接(仅限服务器)ProtoRecv-QSend-QLocalAddressForeignAddrStatePID/程序名称tcp000.0.0.0:1110.0.0.0:*LISTEN1/systemdtcp00192.168.122.1:530.0.0.0:*LISTEN2500/dnsmasqtcp000.0.0.0:220.0.0.0:*听1726/sshdtcp00127.0.0.1:6310.0.0.0:*听1721/cupsdtcp00127.0.0.1:60100.0.0.0:*听4023/sshd:tux@tcp600::111::::*LISTEN1/systemdtcp600::::22::::*LISTEN1726/sshdtcp600::1:631::::*LISTEN1721/cupsdtcp600::1:6010::::*LISTEN4023/sshd:tux@udp000.0.0.0:405140.0.0.0:*1499/avahi-daemon:udp00192.168.122.1:530.0.0.0:*2500/dnsmasqudp000.0.0.0:670.0.0.0:*2500/dnsmasqudp000.0.0.0:1110.0.0.0:*1/systemdudp000.0.0.0:53530.0.0.0:*1499/avahi-daemon:udp600::::111::::*1/systemdudp600::::44235::::*1499/avahi-daemon:udp600::::5353::::*1499/avahi-daemon:这个通用的简写版本组合是-tulpn要显示有关特定服务的信息,请使用grep命令进行过滤:$sudonetstat-anlp|grepcupstcp00127.0.0.1:6310.0.0.0:*LISTEN1721/cupsdtcp600::1:631::::*LISTEN1721/cupsdunix2[ACC]STREAMLISTENING272511/systemd/var/run/cups/cups.sockunix2[]DGRAM595301721/cupsdunix3[]STREAMCONNECTED551961721/cupsd/var/run/cups/cups.sock下一步做什么运行netstat命令后,您可以采取通过确保只有您主动使用的服务在您的网络上侦听来保护您的系统的步骤。识别经常被利用的端口和服务。通常,关闭您实际不使用的端口。留意不常见的端口号,并了解您系统上使用的合法端口。留意SELinux错误。有时您需要做的只是更新上下文以匹配您对系统所做的合法更改,但阅读错误警告以确保SELinux不会提醒您可疑或恶意活动。如果您发现某个端口运行可疑服务,或者您只是想关闭不再使用的端口,您可以按照以下步骤通过防火墙规则手动拒绝端口访问:如果您使用的是firewall-cmd,请运行以下命令:$sudofirewall-cmd–remove-port=<端口号>/tcp$sudofirewall-cmd–runtime-to-permanent如果您使用的是UFW,请运行以下命令:$sudoufwdeny<端口号>接下来,使用systemctl来停止服务:$systemctlstop了解netstatnetstat是一个有用的工具,可以快速收集有关服务器网络连接的信息。定期网络监控是了解您的系统的重要部分,并且可以在帮助您保持系统安全方面大有帮助。要将此步骤合并到您的日常管理中,您可以使用类似netstat或ss的工具,以及开源端口扫描器(例如Nmap)或嗅探器(例如Wireshark),所有这些都允许调度任务。随着服务器存储大量个人数据,保护个人服务器的安全变得越来越重要。通过了解您的服务器如何连接到Internet,您可以降低机器面临的风险,同时仍能从数字时代的大量连接中获益。