安装 netstat
netstat
经常预装在 Linux 发行版上。如果 netstat
没有在你的服务器上安装,用你的包管理器安装它。下面是在基于centos7系统,安装命令如下:
[root@localhost]# yum install -y net-tools
在基于ubuntu的系统上:
$ sudo apt install net-tools
使用 netstat
就其本身而言,netstat
命令可以显示了全部建立成功的连接。你可以使用 netstat
的参数指定进一步预期的输出。举个例子,要显示所有监听和非监听的连接,使用 --all
(-a
为简写)的参数。这将返回许多结果,所以在例子中我用管道符输出给 head
命令来显示输出的前 15 行:
[root@localhost ~]# netstat --all | head -n 15
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ftp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ddi-tcp-1 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:cddbp 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 68 103.56.17.172:ssh 49.77.196.64:pwgpsi ESTABLISHED
tcp6 0 0 [::]:ftp [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
raw6 0 0 [::]:ipv6-icmp [::]:* 7
Active UNIX domain sockets (servers and established)
若你要只显示 TCP 端口,使用 --all
和 --tcp
参数,或者简写成 -at
:
[root@localhost ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ftp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ddi-tcp-1 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:cddbp 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 36 103.56.17.172:ssh 49.77.196.64:pwgpsi ESTABLISHED
tcp6 0 0 [::]:ftp [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
若要只显示 UDP 端口,使用 --all
和 --udp
参数,或者简写成 -au
:
[root@localhost ~]# netstat -au | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:27036 *:*
udp 0 0 10.0.1.222:44741 224.0.0.56:46164 ESTABLISHED
udp 0 0 *:bootpc
netstat
命令参数常常是简单易懂的。举个例子,要显示带有全部进程 ID(PID)和数字地址的监听 TCP 和 UDP 的端口,这个常用组合简写版本是 -tulpn
:
[root@localhost ~]# netstat --tcp --udp --listening --programs --numeric
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:80 0.0.0.0:* LISTEN 1144/nginx: master
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1068/pure-ftpd (SER
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1011/sshd
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 2437/python
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 1144/nginx: master
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1891/master
tcp6 0 0 :::21 :::* LISTEN 1068/pure-ftpd (SER
tcp6 0 0 :::22 :::* LISTEN 1011/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1891/master
tcp6 0 0 :::3306 :::* LISTEN 2275/mysqld
若要显示一个指定服务的信息,使用 grep 命令过滤:
[root@localhost ~]# netstat -anlp | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 2275/mysqld
unix 2 [ ACC ] STREAM LISTENING 22151 2275/mysqld /tmp/mysql.sock
接下来的步骤
一旦你运行了 netstat
命令,你就可以采取措施来保护你的系统,确保只有你主动使用的服务在你的网络上被监听。
- 识别通常被利用的端口和服务。一般来说,关闭你实际不使用的端口。
- 留意不常见的端口号,认识了解在你系统上使用的合法端口。
- 密切注意 SELinux 错误。有时你需要做的只是更新上下文,以匹配你对系统做的合法更改,但是要阅读错误警告,以确保 SELinux 提醒你的不是可疑或者恶意的活动。
如果你发现一个端口正在运行一个可疑的服务,或者你只是简单的想要关闭你不再使用的端口,你可以遵从以下这些步骤,通过防火墙规则手动拒绝端口访问:
如果你在使用 firewall-cmd
防火墙 ,运行这些命令:
[root@localhost ~]# firewall-cmd –remove-port=<port number>/tcp
[root@localhost ~]# firewall-cmd –runtime-to-permanent
然后,你可以使用systemctl来停止这个服务:
[root@localhost ~]# systemctl stop <service>
netstat的参数说明
- -a或–all 显示所有连线中的Socket。
- -A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
- -c或–continuous 持续列出网络状态。
- -C或–cache 显示路由器配置的快取信息。
- -e或–extend 显示网络其他相关信息。
- -F或–fib 显示路由缓存。
- -g或–groups 显示多重广播功能群组组员名单。
- -h或–help 在线帮助。
- -i或–interfaces 显示网络界面信息表单。
- -l或–listening 显示监控中的服务器的Socket。
- -M或–masquerade 显示伪装的网络连线。
- -n或–numeric 直接使用IP地址,而不通过域名服务器。
- -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
- -o或–timers 显示计时器。
- -p或–programs 显示正在使用Socket的程序识别码和程序名称。
- -r或–route 显示Routing Table。
- -s或–statistics 显示网络工作信息统计表。
- -t或–tcp 显示TCP传输协议的连线状况。
- -u或–udp 显示UDP传输协议的连线状况。
- -v或–verbose 显示指令执行过程。
- -V或–version 显示版本信息。
- -w或–raw 显示RAW传输协议的连线状况。
- -x或–unix 此参数的效果和指定”-A unix”参数相同。
- –ip或–inet 此参数的效果和指定”-A inet”参数相同。
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/4374