Python脚本监控VPS海外延迟:ICMP与TCP测试
文章分类:行业新闻 /
创建时间:2026-01-08
假设你有一台VPS海外服务器,如同在异国搭建了一座信息城堡。为保证城堡与外界通信顺畅,实时监控服务器延迟是关键。这时Python脚本就像智能哨兵,通过ICMP和TCP测试,为你守护VPS海外的网络状态。
监控原理
ICMP(Internet Control Message Protocol,互联网控制报文协议)和TCP(Transmission Control Protocol,传输控制协议)是两种重要的网络协议。ICMP常用于测试网络连通性,如同在城堡与外界拉一条测试绳;TCP作为面向连接的可靠传输协议,更像建立一条稳定的数据通道。通过这两种协议的测试,能从不同维度反映VPS海外服务器的网络质量。
ICMP测试脚本
以下是用Python实现的ICMP测试脚本,通过系统ping命令检测VPS海外服务器的可达性:
import subprocess
import platform
def ping(host):
param = '-n' if platform.system().lower() == 'windows' else '-c'
command = ['ping', param, '1', host]
try:
output = subprocess.check_output(command)
return True
except subprocess.CalledProcessError:
return False
host = 'your_vps_overseas_ip'
if ping(host):
print(f"{host} is reachable.")
else:
print(f"{host} is unreachable.")
脚本通过subprocess模块调用系统ping命令,向指定的VPS海外IP发送1个ICMP包。若收到响应,说明服务器可达;无响应则表示暂时不可达。
TCP测试脚本
TCP测试能进一步验证VPS海外服务器特定服务的可用性,以下脚本通过套接字连接检测目标端口状态:
import socket
def tcp_test(host, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2)
result = sock.connect_ex((host, port))
if result == 0:
print(f"Port {port} on {host} is open.")
else:
print(f"Port {port} on {host} is closed.")
sock.close()
except socket.error as e:
print(f"Error occurred: {e}")
host = 'your_vps_overseas_ip'
port = 80
tcp_test(host, port)
脚本创建TCP套接字并尝试连接目标IP和端口(如80端口对应HTTP服务)。连接成功说明端口开放,服务正常;连接失败则可能是端口关闭或服务异常。
生成延迟报告
为持续跟踪VPS海外服务器状态,可将测试结果定时记录生成报告。以下脚本每60秒执行一次ICMP和TCP测试,并保存到日志文件:
import time
def monitor_latency(host, port, interval=60):
while True:
icmp_result = ping(host)
tcp_result = tcp_test(host, port)
timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
with open('latency_report.txt', 'a') as f:
f.write(f"{timestamp}: ICMP - {icmp_result}, TCP - {tcp_result}\n")
time.sleep(interval)
host = 'your_vps_overseas_ip'
port = 80
monitor_latency(host, port)
通过调整interval参数可自定义检测频率,日志文件会记录每次测试的时间和结果,方便后续分析网络波动情况。
掌握这些Python脚本后,你可以轻松实现VPS海外服务器的延迟监控。无论是日常运维还是故障排查,这些工具都能像可靠的哨兵,帮你及时发现网络问题,保障信息城堡的稳定运行。
工信部备案:苏ICP备2025168537号-1