1.
准备与环境说明
先准备一台香港VPS或合法的
香港原生IP代理(建议购买知名供应商或使用正规ISP),确保SSH可连。需要的工具:bash、curl、ping、mtr、speedtest-cli(或Ookla CLI)、python3、pip、git。目标:定时采集延迟、丢包、带宽、HTTP响应与DNS解析。
2.
验证IP归属与基本连通性
SSH到目标机器,运行
curl -s https://ipinfo.io/json 或
curl -s https://api.ip.sb/geoip 验证country字段为HK;再用
ping -c 5 8.8.8.8 和
mtr -c 10 -r 8.8.8.8 检查路由路径和丢包样本。
3.
安装测试工具
在香港节点执行:
sudo apt update && sudo apt install -y mtr ping curl python3-pip git,然后安装speedtest:
pip3 install speedtest-cli 或下载Ookla CLI。若需TLS测试,安装openssl:
sudo apt install -y openssl。
4.
编写基础Bash监测脚本
创建脚本
/opt/hk_probe.sh,每次采集:时间、IP、ping平均延迟、丢包、mtr第一跳/最终IP、HTTP GET时间、speedtest结果,示例片段:
ping -c 5 -q 1.1.1.1 | tail -1解析avg;
curl -o /dev/null -s -w "%{time_total}\n" https://www.google.com获取HTTP时延。
5.
输出为CSV并本地归档
在脚本中把每次结果拼成CSV行:
date,ip,ping_avg,ping_loss,http_time,download,upload,追加到
/var/log/hk_probe.csv,并按天压缩:可在脚本最后加入按天归档逻辑或用logrotate。
6.
Python异步增强(可扩展目标列表)
若需测试多个目标,写一个python脚本用aiohttp和asyncio并发请求,测量TCP握手、TLS时间和下载首字节。示例:用aiohttp获取
response.elapsed或使用time.perf_counter()测时,结果写入同一CSV或直接POST到后端。
7.
Prometheus / Pushgateway 集成
若要可视化,安装Prometheus + Grafana或使用Pushgateway。在bash/python脚本中将指标以Prometheus格式POST到Pushgateway:
echo -e "hk_ping_avg{ip=\"x\"} 12.3" | curl --data-binary @- http://pushgateway:9091/metrics/job/hk_probe,Prometheus抓取Pushgateway后在Grafana建面板。
8.
自动化调度(cron 与 systemd timer)
推荐用systemd timer更可靠:创建service运行脚本并创建timer每5分钟触发。或者在root crontab加入:
*/5 * * * * /opt/hk_probe.sh。确保脚本加锁(flock)避免重叠运行。
9.
告警与通知方案
设置阈值(如ping>200ms或丢包>5%或下载<5Mbps),当阈值触发时脚本调用告警模块:可用Telegram Bot(POST https://api.telegram.org/botTOKEN/sendMessage)、邮件(msmtp)或Webhook推送到企业微信/Slack。示例:
curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d "chat_id=$CHAT&text=$MSG"
10.
日志管理与长期分析
定期把CSV数据导入InfluxDB或Elasticsearch,便于长期趋势分析。也可用Python脚本将CSV转换为lines protocol并POST到InfluxDB:确保按时间索引并保留标签(ip, region, target)。
11.
示例项目结构与安全注意
建议目录:/opt/hk_monitor/{scripts,logs,conf}。把API Token写入只允许root读的conf文件(chmod 600)。开通防火墙仅允许需要端口,定期更新系统与工具。
12.
扩展:多点比对与RUM
除了在香港节点主动探测,可在目标站点嵌入轻量RUM脚本收集真实用户侧性能,与HK探针数据比对查找差异化问题(CDN、出口链路)。
13.
问:如何验证这是“原生香港IP”而非代理?
答:可用多家GeoIP服务比对(ipinfo、ipapi、ip.sb),并检查WHOIS记录与BGP ASN归属,运行
whois 、查询BGP(如bgp.he.net)确认ASN与ISP为香港运营商。
14.
问:每天采样频率如何设置合适?
答:常规网络性能建议5~15分钟一次,延迟敏感业务可1~5分钟;同时注意不要过于频繁造成流量或被目标限流。根据数据量与存储成本调整。
15.
问:遇到突发丢包怎么办,如何定位?
答:先查看mtr/traceroute到目的地的跳数与丢包点,判断是本地出站、ISP链路还是目标侧;再对比多个香港节点结果确认是否为链路普遍问题,并把抓到的pcap或tcpdump样本上传到分析环境做深度排查。
来源:实战教程 香港原生ip测试 性能监测脚本与自动化方案