MyIP:开源的功能强大的网络诊断工具箱,解析与部署
在当今数字化时代,网络问题诊断与隐私保护变得越来越重要。无论是网络管理员、开发人员还是普通用户,都需要一款强大而易用的工具来检查网络状态、诊断连接问题并保护在线隐私。MyIP正是这样一款开源的网络工具箱,它集成了多种实用功能,能够满足各类网络诊断需求。本文将详细介绍MyIP的功能特性、部署方法以及实际应用场景,帮助读者充分利用这一强大工具。
一、MyIP简介
MyIP是一个完全开源的IP信息查看器,基于Express + Vue架构开发,提供了丰富的网络诊断功能。与其他同类工具相比,MyIP的最大优势在于其功能全面性和易用性,无需专业知识即可进行复杂的网络诊断。
值得注意的是,MyIP对Node.js版本有较高要求,需要20.x及以上版本才能正常运行。这一点在部署时需要特别注意,因为较低版本的Node.js可能导致兼容性问题。
作者:GitHub:https://github.com/jason5ng32/MyIP
演示:https://ipcheck.ing/
二、核心功能详解
1. IP地址检测与信息查询
多源IP检测:MyIP能够从多个IPv4和IPv6来源检测并显示本机的IP地址,确保结果的准确性和全面性。这对于验证VPN或代理连接是否生效特别有用。
详细IP信息:提供IP地址的完整信息,包括国家、地区、ASN(自治系统号)、地理位置等。这些信息对于网络安全审计和网络故障排查都具有重要价值。
任意IP查询:除了查看本机IP外,MyIP还提供了查询任意IP地址信息的功能,这对于网络安全分析和威胁情报收集非常有用。
2. 网络连接诊断
网站可用性检测:能够检测多个常用网站(如Google、GitHub、YouTube、网易、百度等)的可用性,帮助用户快速判断网络连接是否存在问题。
全球延迟测试:通过分布在全球多个服务器的延迟测试,用户可以了解自己与全球网络的连接速度,这对于需要跨国访问的业务尤为重要。
MTR测试:MTR(Matt’s Traceroute)结合了ping和traceroute的功能,能够提供更全面的网络路径分析,帮助定位网络连接中的具体问题点。
3. 隐私保护检测
DNS泄漏检测:在使用VPN或代理时,DNS泄漏可能导致真实IP地址暴露。MyIP的DNS泄漏检测功能能够查看DNS出口信息,帮助用户确认是否存在隐私泄露风险。
WebRTC检测:WebRTC(Web Real-Time Communication)是一种支持浏览器间实时通信的技术,但它也可能绕过代理设置泄露真实IP。MyIP能够检测WebRTC连接时使用的IP地址,确保隐私保护的有效性。
4. 网络性能测试
网速测试:利用边缘网络进行网速测试,提供准确的网络带宽评估结果。
代理规则测试:配合代理软件的规则设置,测试规则是否正常工作,这对于复杂的网络环境配置尤为重要。
5. 其他实用功能
DNS解析器:从多个渠道对域名进行DNS解析,获取实时的解析结果,可用于DNS污染判断。
封锁测试:检查特定网站在部分国家是否被封锁,这对于需要跨国访问的用户非常有用。
Whois查询:对域名或IP进行whois信息查询,获取注册信息等详细数据。
MAC地址查询:查询物理地址的归属信息,有助于网络设备管理。
浏览器指纹:通过多种方式查看浏览器指纹,帮助用户了解自己的在线隐私状况。
网络安全检查清单:提供包含258项的全面网络安全检查清单,帮助用户系统性地评估网络安全状况。
三、环境准备:Node.js 20.x安装
由于MyIP要求Node.js 20.x及以上版本,在部署前我们需要确保系统满足这一要求。以下是不同操作系统下安装Node.js 20.x的方法:
1. Windows系统安装
- 访问Node.js官方网站(https://nodejs.org/zh-cn/download/)
- 下载Windows Installer(.msi)版本的Node.js 20.x
- 运行安装程序,按照提示完成安装
- 安装完成后,打开命令提示符,输入以下命令验证安装:
node -v
npm -v
如果显示的版本号为20.x或更高,则表示安装成功。
2. Linux系统安装(以Ubuntu为例)
- 更新系统并安装依赖:
sudo apt update
sudo apt install -y curl
- 使用NodeSource仓库安装Node.js 20.x:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
- 验证安装:
node -v
npm -v
3. 使用NVM安装(推荐)
NVM(Node Version Manager)是一个Node.js版本管理器,可以轻松安装和切换不同版本的Node.js。
- 安装NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
- 重新加载终端配置:
source ~/.bashrc
- 安装Node.js 20.x:
nvm install 20
nvm use 20
- 验证安装:
node -v
npm -v
四、MyIP部署方法
1. Node.js环境部署
- 克隆代码:
git clone https://github.com/jason5ng32/MyIP.git
cd MyIP
- 安装依赖并构建:
npm install && npm run build
- 启动服务:
npm start
默认情况下,MyIP将在18966端口运行。在浏览器中访问http://localhost:18966
即可使用。
2. Docker部署
对于熟悉Docker的用户,使用Docker部署更为简便:
- 拉取镜像并运行容器:
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest
- 或者使用docker-compose部署,创建
docker-compose.yml
文件:
version: '3'
services:myip:image: jason5ng32/myip:latestcontainer_name: myiprestart: unless-stoppedports:- "18966:18966"
然后执行:
docker-compose up -d
五、高级配置:环境变量详解
虽然MyIP可以在不添加任何环境变量的情况下直接使用,但为了启用高级功能,我们需要配置一些环境变量。以下是主要环境变量的说明:
1. 基本配置
变量名 | 是否必须 | 默认值 | 说明 |
---|---|---|---|
BACKEND_PORT | 否 | “11966” | 后端服务端口 |
FRONTEND_PORT | 否 | “18966” | 前端服务端口 |
2. 安全配置
变量名 | 是否必须 | 默认值 | 说明 |
---|---|---|---|
SECURITY_RATE_LIMIT | 否 | “0” | 每分钟IP请求限制(0为不限制) |
SECURITY_DELAY_AFTER | 否 | “0” | 请求延迟控制 |
SECURITY_BLACKLIST_LOG_FILE_PATH | 否 | “logs/blacklist-ip.log” | 黑名单日志路径 |
ALLOWED_DOMAINS | 否 | “” | 允许访问的域名(逗号分隔) |
3. API密钥配置
变量名 | 是否必须 | 默认值 | 说明 |
---|---|---|---|
GOOGLE_MAP_API_KEY | 否 | “” | Google地图API密钥 |
IPCHECKING_API_KEY | 否 | “” | IPCheck.ing API密钥 |
IPINFO_API_TOKEN | 否 | “” | IPInfo.io API令牌 |
IPAPIIS_API_KEY | 否 | “” | IPAPI.is API密钥 |
IP2LOCATION_API_KEY | 否 | “” | IP2Location.io API密钥 |
CLOUDFLARE_API | 否 | “” | Cloudflare API密钥 |
MAC_LOOKUP_API_KEY | 否 | “” | MAC查询API密钥 |
4. 特殊功能配置
变量名 | 是否必须 | 默认值 | 说明 |
---|---|---|---|
IPCHECKING_API_ENDPOINT | 是 | “” | IPCheck.ing API端点 |
VITE_GOOGLE_ANALYTICS_ID | 是 | “” | Google Analytics ID |
VITE_CURL_IPV4_DOMAIN | 否 | “” | CURL API IPv4域名 |
VITE_CURL_IPV6_DOMAIN | 否 | “” | CURL API IPv6域名 |
VITE_CURL_IPV64_DOMAIN | 否 | “” | CURL API双栈域名 |
5. 环境变量使用方法
Node.js环境
- 创建环境变量文件:
cp .env.example .env
- 编辑
.env
文件,添加所需配置:
BACKEND_PORT=11966
FRONTEND_PORT=18966
GOOGLE_MAP_API_KEY="YOUR_KEY_HERE"
ALLOWED_DOMAINS="example.com"
IPCHECKING_API_KEY="YOUR_KEY_HERE"
- 重启服务使配置生效。
Docker环境
在运行Docker容器时添加环境变量:
docker run -d -p 18966:18966 \-e GOOGLE_MAP_API_KEY="YOUR_KEY_HERE" \-e ALLOWED_DOMAINS="example.com" \-e IPCHECKING_API_KEY="YOUR_TOKEN_HERE" \--name myip \jason5ng32/myip:latest
六、高级应用场景
1. 代理环境下的IP检测
在使用代理上网时,可以通过配置代理规则,实现同时查询真实IP和代理后的IP。以下是一个示例配置:
# IP Testing
IP-CIDR,1.0.0.2/32,Proxy,no-resolve
IP-CIDR6,2606:4700:4700::1111/128,Proxy,no-resolve
DOMAIN,4.ipcheck.ing,DIRECT
DOMAIN,6.ipcheck.ing,DIRECT# Rule Testing
DOMAIN,ptest-1.ipcheck.ing,Proxy1
DOMAIN,ptest-2.ipcheck.ing,Proxy2
DOMAIN,ptest-3.ipcheck.ing,Proxy3
DOMAIN,ptest-4.ipcheck.ing,Proxy4
DOMAIN,ptest-5.ipcheck.ing,Proxy5
DOMAIN,ptest-6.ipcheck.ing,Proxy6
DOMAIN,ptest-7.ipcheck.ing,Proxy7
DOMAIN,ptest-8.ipcheck.ing,Proxy8
2. 网络安全审计
利用MyIP的网络安全检查清单(258项),可以对网络进行全面的安全审计。这对于企业网络管理员特别有用,可以帮助发现潜在的安全隐患。
3. VPN连接验证
通过DNS泄漏检测和WebRTC检测功能,可以验证VPN连接是否真正保护了用户隐私。这对于注重隐私的用户来说是一个重要的测试工具。
4. 网络故障排查
当遇到网络连接问题时,可以使用MyIP的全球延迟测试和MTR测试功能,快速定位问题所在。这对于网络管理员和技术支持人员来说是一个高效的故障排查工具。
七、用户体验优化
MyIP不仅功能强大,还注重用户体验:
1. 界面模式
- 暗黑模式:根据系统设置自动切换暗黑/白天模式,也可以手动切换,适应不同使用环境。
- 简约模式:为移动设备优化的专门模式,缩短页面长度,快速查看最重要的信息。
2. 平台支持
- PWA支持:可以添加为手机应用以及电脑桌面应用,方便使用。
- 多语言支持:支持中文、英文和法文,满足不同用户的需求。
3. 快捷操作
- 快捷键支持:可以随时输入"?"查看快捷键菜单,提高操作效率。
- 全球网络访问提示:根据可用性检测结果,返回目前是否可以访问全世界网络的提示。