端口检测
每秒钟检测指定IP的端口是否正常,失败是记录到日志文件。
网络连接检查操作说明
1. 使用 wscat
进行 WebSocket 连接测试
wscat
是一个用于测试 WebSocket 连接的工具。以下是相关操作步骤:
- 首先,使用
npm
全局安装wscat
:
npm install -g wscat
- 接着,使用安装好的
wscat
连接到指定的 WebSocket 服务器,同时发送quit
消息:
/opt/node-v20.10.0-linux-x64/bin/wscat -x quit -c wss://fs-out.gaojinbo.com:9443
2. 使用 nc
进行端口连通性测试
nc
(Netcat)是一个网络工具,可用于测试网络连接、端口是否开放等。这里使用它来测试指定 IP 地址和端口的连通性:
nc -vz -w 3 121.37.249.109 9443
-v
:表示显示详细信息。-z
:表示只进行端口扫描,不进行数据传输。-w 3
:设置连接超时时间为 3 秒。
3. 编写检查脚本
为了定期检查指定 IP 地址和端口的连通性,并记录日志,可以编写如下脚本。
3.1 编写检查脚本 /opt/check-fs.sh
#!/bin/bash
# 检查是否提供了两个参数(IP 和端口)if [ $# -ne 2 ]; then echo "Usage: $0 <IP> <PORT>" exit 1fi
IP=$1PORT=$2
# 执行 nc 命令并捕获退出状态nc -v -w 2 $IP $PORT > /dev/null 2>&1EXIT_STATUS=$?
# 如果连接失败,记录错误信息和时间到日志文件if [ $EXIT_STATUS -ne 0 ]; then echo "`date`Failed to connect to $IP:$PORT" >> /tmp/fs.logfi
使用方法:
将上述脚本保存为一个文件,例如 check_port.sh
,然后添加执行权限:
chmod +x check_port.sh
运行脚本时,传递 IP 地址和端口作为参数:
./check_port.sh 121.37.249.109 9443
3.2 编写定时执行脚本 /opt/every-x-seconds.sh
#!/bin/bash
if [[ $# != 2 ]]then echo script arguments: time and command exitfi
while truedo $2 sleep $1done
此脚本用于定时执行指定的命令,其工作原理如下:
- 若脚本的参数数量不为 2,就输出提示信息并退出。
- 若参数数量为 2,第一个参数代表执行间隔时间(秒),第二个参数代表要执行的命令。
- 进入无限循环,每次循环中执行指定的命令,然后休眠指定的时间。
3.3 运行定时检查任务
使用 screen
命令在后台运行定时检查任务,每 10 秒执行一次 /opt/check-fs.sh
脚本:
screen /opt/every-x-seconds.sh 10 "/opt/check-fs.sh 121.37.249.109 9443"
注意事项
- 要保证
npm
已经正确安装,并且wscat
能够正常使用。 - 确保
/opt/node-v20.10.0-linux-x64/bin
路径下的wscat
可执行文件存在。 - 运行脚本前,要确保
/tmp/fs.log
文件有写入权限。 screen
命令可让脚本在后台持续运行,你可以使用screen -r
命令重新连接到该会话。