查看本机的网络连接与后门:netstat
如果某个网络服务明明已经启动了,但是就算无法进行连接,那应该怎么办?首先你要查询以下网络接口所监听的端口(port),来看看是否真的已经启动,因为有时候屏幕上显示的OK并不一定真的就OK了
netstat -[rn] # 与路由有关的参数
netstat -[antulpc] # 与网络接口有关的参数
选项:
-r:列出路由表(route table),功能如同 route这个命令
-n:不使用主机名与服务名称,使用IP与port number,如同route -n 与网络接口有关的参数
-a:列出所有的连接状态,包括 tcp/ydp/unix socket 等
-t:仅列出TCP数据包的连接
-u:仅列出UDP数据包的连接
-l:仅列出已在Listen(监听)的服务的网络状态
-p:列出PID与Program的文件名
-c:可以设置几秒钟自动更新一次,例如 -c 5 为每5s更新一次网络状态的显示
使用案例
列出当前的路由表状态,且以IP及port number 进行显示
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.200.2 0.0.0.0 UG 0 0 0 ens34
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-c7756c2eefb2
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-429bf6695726
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 ens34
列出当前的所有网络连接状态,使用IP与port number
[root@localhost ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 192.168.200.20:22 192.168.200.1:54511 ESTABLISHED
tcp 0 52 192.168.200.20:22 192.168.200.1:54509 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 ::1:323 :::*
raw6 0 0 :::58 :::* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 11781 /run/lvm/lvmetad.socket
unix 2 [ ] DGRAM 22796 /var/run/chrony/chronyd.sock
unix 2 [ ACC ] STREAM LISTENING 34068 public/pickup
unix 2 [ ACC ] STREAM LISTENING 34072 public/cleanup
.......
.......
.......
.......
netstat的输出主要分为两大部分,分别是TCP/IP的网络接口部分,以及传统的Unix socket部分。
下面是输出的详细解释:
-
Proto
:连接使用的协议(如TCP或UDP)。 -
Recv-Q
:等待接收数据的字节数。 -
Send-Q
:等待发送数据的字节数。 -
Local Address
:本地IP地址和端口号。 -
Foreign Address
:远程IP地址和端口号。 -
State
:连接的状态,常见的状态有:LISTEN(正在监听)
、ESTABLISHED(已建立连接)
SYN_SENT:发出注定连接(SYN标志)的连接数据包
SYN_RECV:接受到一个要求连接的主动连接数据包
FIN_WAIT1:该套接字服务(socket)已中断,该连接正在断线当中
FIN_WAIT2:该连接已挂断,但正在等待对方主机响应断线确认的数据包
TIME_WAIT:该连接已挂断,但socket还阿紫网络上等待结束
netstat的功能,就算查看网络的连接状态,而网络连接状态中,又可以查看"我目前开了多少port在等待客户端的连接
"以及“目前的网络连接状态中,有多少连接已建立或产生问题
”可以用如下命令查看
显示目前已启动的网络服务
上图中最重要的其实是 -l
的参数,因为可以仅列出处于 Listen 状态的port
查看本机上所有网络连接状态
更多命令查阅
man netstat
文字接口下载器:wget
wget是一种在命令行中使用的下载工具,可以下载各种类型的文件,如文本文件、图像文件、压缩文件等。
wget [option] 网址
常用选项:
-O:指定要将下载的文件保存为的文件名。
-r:递归下载,下载指定目录下的所有文件。
-c:断点续传下载,如果下载中断,下次下载时可以从中断的地方继续下载。
使用案例
如果我想下载阿里云的CentOS 7仓库的repo文件并存储在/etc/yum.repos.d/目录下改怎么做?
wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo