很多人都知道通过网站(ipip.net)或者软件可以路由追踪来测试 IP的路由情况和质量,但是这只是去程路由,大部分人都把注意力放在了去程路由上面,很少人关注和测试 VPS 链接国内的 回程路由。
不管你的VPS是做Shadowsocks还是建站,你关注的应该是 回程>去程,因为不管是建站还是Shadowsocks,大部分情况下都是VPS把数据传回给你,速度受回程路由质量等影响,除非你经常用Shadowsocks上传文件或者向网站里上传文件,否则你应该更关注回程而不是去程。
- 浏览器访问 谷歌网站
- Shadowsocks客户端 通知 Shadowsocks服务端
- Shadowsocks服务端 获取 谷歌网站数据
- Shadowsocks服务端(VPS)通过上行把 谷歌网站数据 传回给 Shadowsocks客户端
- 浏览器显示 收到的 谷歌网站数据
- # 除非你是上传文件,否则大部分情况下,都是VPS把文件传回给你,经过的是回程路由。
就算你的去程CN2多么多么叼,回车绕道丢包都GG,当然不代表去程无所谓,而是关注点应该放在回程上。
当然如果你是Shadowsocks玩游戏,那么去程回程都要考虑。
测试VPS的去程可以使用在线网页或者本地软件:在线网页(ipip.net)、推荐一个可以在地图上显示TraceRoute(路由追踪)路径信息的软件
前提条件:
首先你要测试VPS链接你本地的回程路由的话,你需要有外网IP,不过现在大部分运营商都是内网NAT转的伪外网IP,无法Ping和路由追踪。
当然不是外网IP也不要急,你可以去这里,选择一个和你接近的地区,然后路由追踪任意一个IP,比如 8.8.8.8
,然后你就会在 第一个或第二个IP 中看到这个 路由追踪节点的服务器IP了,你试一下能不能Ping通,如果可以那就可以拿来测试回程路由。
TraceRoute
Linux有一个基础的路由追踪软件:traceroute,下面的另外两个软件依赖这个软件。
点击展开 查看更多
可以通过包管理器安装:
- # CentOS系统:
- yum update && yum install traceroute -y
-
- # Debian/Ubuntu系统:
- apt-get update && apt-get install traceroute -y
然后就可以通过 traceroute x.x.x.x
来路由追踪了。
默认是测试3次的,所以有时候会显示很乱,你可以加上 -q 1
,比如 traceroute -q 1 x.x.x.x
。
这个参数指的是只测试一次,当然之所以测试3次就为因为可能会丢包等情况,三次可以比较准确。
使用效果:
- root@doub.io:~/# traceroute -q 1 14.215.116.1
- traceroute to 14.215.116.1 (14.215.116.1), 30 hops max, 60 byte packets
- 1 *
- 2 192.254.84.149 (192.254.84.149) 1.830 ms
- 3 te-0-1-0-2.cr1.lax2.us.zenlayer.net (192.254.81.141) 3.740 ms
- 4 218.30.48.173 (218.30.48.173) 1.374 ms
- 5 59.43.182.102 (59.43.182.102) 160.245 ms
- 6 59.43.182.102 (59.43.182.102) 158.658 ms
- 7 202.97.91.217 (202.97.91.217) 158.070 ms
- 8 202.97.91.217 (202.97.91.217) 157.866 ms
- 9 183.61.221.61 (183.61.221.61) 157.841 ms
- 10 183.56.128.14 (183.56.128.14) 158.043 ms
- 11 183.56.128.14 (183.56.128.14) 158.236 ms
- 12 14.215.116.1 (14.215.116.1) 155.918 ms
当然,这个只会显示简单的路由追踪信息。
如果你想要在每个路由信息后面加上对应的地址信息,那么你就需要使用其他的路由追踪软件:
nali-ipip、BestTrace(ipip.net开发),这两个使用的都是 ipip.net 的IP地址库。
Nali-ipip
这个是基于 nali 原版项目上改进的,把纯真IP库改为了IPIP的IP库,目前国内最准的民用IP库可能就是ipip.net了。
点击展开 查看更多
这个软件需要调用上面说的基础路由追踪软件:traceroute,所以你需要安装这个。Github项目地址
- # CentOS系统:
- yum update && yum install -y traceroute git gcc make
-
- # Debian/Ubuntu系统:
- apt-get update && apt-get install -y traceroute git gcc build-essential make
下载文件并编译安装:
- git clone https://github.com/dzxx36gyy/nali-ipip.git
- cd nali-ipip
- # 进入目录并 执行编译程序,放心很快 几秒就好了。
- ./configure && make && make install
然后就可以通过 nali-traceroute x.x.x.x
来路由追踪了。
默认是测试3次的,所以有时候会显示很乱,你可以加上 -q 1
,比如 nali-traceroute -q 1 x.x.x.x
。
这个参数指的是只测试一次,当然之所以测试3次就为因为可能会丢包等情况,三次可以比较准确。
使用示例:
- root@doub.io:~/# nali-traceroute -q 1 14.215.116.1
- traceroute to 14.215.116.1 [中国 广东 广州] (14.215.116.1 [中国 广东 广州]), 30 hops max, 60 byte packets
- 1 *
- 2 te-2-0-4.cr2.lax2.us.zenlayer.net (192.254.84.141 [美国 美国]) 1.370 ms
- 3 te-0-1-0-0.cr1.lax2.us.zenlayer.net (192.254.81.137 [美国 美国]) 1.365 ms
- 4 te-0-3-0-0.cr1.lax2.us.zenlayer.net (192.254.81.5 [美国 美国]) 2.790 ms
- 5 59.43.182.102 [中国 广东 广州] (59.43.182.102 [中国 广东 广州]) 152.550 ms
- 6 *
- 7 202.97.34.93 [中国 广东 广州] (202.97.34.93 [中国 广东 广州]) 152.785 ms
- 8 202.97.33.201 [中国 广东 广州] (202.97.33.201 [中国 广东 广州]) 151.772 ms
- 9 183.59.12.197 [中国 广东 广州] (183.59.12.197 [中国 广东 广州]) 162.344 ms
- 10 183.59.12.197 [中国 广东 广州] (183.59.12.197 [中国 广东 广州]) 153.908 ms
- 11 183.56.128.14 [中国 广东 广州] (183.56.128.14 [中国 广东 广州]) 157.017 ms
- 12 14.215.116.1 [中国 广东 广州] (14.215.116.1 [中国 广东 广州]) 158.869 ms
BestTrace
BestTrace是由 ipip.net 官方(不确定)开发的,同样也需要安装基础路由追踪软件:traceroute,这个软件不需要编译安装,是用Go语言编译好的程序。软件官网
点击展开 查看更多
- # CentOS系统:
- yum update && yum install traceroute -y
-
- # Debian/Ubuntu系统:
- apt-get update && apt-get install traceroute -y
- mkdir besttrace && cd besttrace
- wget -N --no-check-certificate https://softsmirror.cf/Software/BestTrace/BestTrace-Linux.tar.gz
- # 下载文件,解压 并进入目录 赋予执行权限
- tar -xzf BestTrace-Linux.tar.gz && chmod +x *
然后就可以通过 ./besttrace x.x.x.x
来路由追踪了。
默认是测试3次的,所以有时候会显示很乱,你可以加上 -q 1
,比如 ./besttrace -q 1 x.x.x.x
。
这个参数指的是只测试一次,当然之所以测试3次就为因为可能会丢包等情况,三次可以比较准确。
使用示例:
- root@doub.io:~/bash/besttrace# ./besttrace -q 1 14.215.116.1
- traceroute to 14.215.116.1 (14.215.116.1), 30 hops max, 60 byte packets
- 1 *
- 2 192.254.84.153 0.72 ms AS21859 美国 加利福尼亚州 洛杉矶 zenlayer.com
- 3 te-0-0-0-2.cr1.lax3.us.zenlayer.net (192.254.81.69) 3.17 ms AS21859 美国 加利福尼亚州 洛杉矶 zenlayer.com
- 4 te-0-3-0-0.cr1.lax2.us.zenlayer.net (192.254.81.5) 3.25 ms AS21859 美国 加利福尼亚州 洛杉矶 zenlayer.com
- 5 218.30.48.173 1.29 ms AS4134 美国 加利福尼亚州 洛杉矶 CHINATELECOM
- 6 59.43.182.102 152.68 ms * 中国 广东 广州 电信
- 7 59.43.244.138 182.57 ms * 中国 广东 广州 电信
- 8 202.97.91.209 148.06 ms * 中国 广东 广州 电信
- 9 202.97.33.229 150.07 ms AS4134 中国 广东 广州 电信
- 10 183.59.13.161 157.65 ms AS58543 中国 广东 广州 电信
- 11 183.56.128.10 155.98 ms AS58543 中国 广东 广州 电信
- 12 14.215.116.1 150.62 ms AS58543 中国 广东 广州 电信
相似的路由追踪软件还很多,我也不一一列举了,各软件都有优缺点,自己看着用。
BestTrace 路由追踪,必须进入文件目录 或 加上文件目录(比如 bash /root/besttrace/besttrace x.x.x.x
)才能使用。
MTR
如果你需要监控VPS回程路由 一段时间的实时情况(比如各节点延迟、丢包),那么你可能需要的是 MTR。
点击展开 查看更多
- # CentOS系统:
- yum update && yum install mtr -y
-
- # Debian/Ubuntu系统:
- apt-get update && apt-get install mtr -y
然后就可以通过 mtr x.x.x.x
来路由追踪了。
不过上面这个命令 是动态显示的,一直持续下去,除非手动终止。
如果你需要只发送 100个数据包(测试100次),那么你可以这样写: mtr -c 100 --report x.x.x.x
这个命令不会动态显示,只会在发送 100个数据包后,直接显示最终结果。
使用示例:
- Packets Pings
- Host Loss% Snt Last Avg Best Wrst StDev
- 1. ???
- 2. 192.254.84.153 0.0% 61 1.1 8.8 0.6 164.0 26.1
- 3. te-0-0-0-2.cr1.lax3.us.zenlayer.net 0.0% 60 4.7 5.9 0.8 97.9 13.4
- 4. te-0-3-0-0.cr1.lax2.us.zenlayer.net 0.0% 60 1.1 6.4 0.9 125.9 16.4
- 5. 218.30.48.173 0.0% 60 1.3 4.0 1.0 88.8 12.2
- 6. 59.43.182.102 0.0% 60 152.7 158.2 152.6 256.0 17.3
- 7. 59.43.244.138 76.3% 60 144.8 145.7 144.8 155.1 2.7
- 8. 202.97.91.209 0.0% 60 146.7 147.9 145.3 169.2 3.3
- 9. 202.97.33.229 0.0% 60 149.3 148.8 145.7 158.4 2.3
- 10. 183.59.13.161 0.0% 60 157.3 156.7 153.3 186.8 4.6
- 11. 183.56.128.10 0.0% 60 155.2 158.7 154.3 253.8 14.0
- 12. 14.215.116.1 1.7% 60 151.0 153.8 147.0 321.0 22.6
转载请超链接注明:逗比根据地 » Linux中使用 路由追踪 测试VPS回程路由(回程路由比去程更影响SS速度)
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!
你的话,只需要执行一下
chmod +x *
,就可以继续下面路由追踪使用步骤了。但,在咨询大佬后,得出的是,中间的路由并不一定是积极回应你的ICMP数据包。
路由追踪,服务器A到服务器B,是服务器A发送ICMP数据包到服务器B,然后ICMP数据包每经过一个路由都会记录时间(延迟)并返回一个数据包,但是如果遇到一些比较拥挤的路由点,可能因此会反应时间增加,同理,丢包也是,一些拥挤的路由点或者说QOS严重的,会丢包很高,但是目标服务器B 收到的ICMP数据就没有多少丢包(当然收到的是中间路上丢弃后剩余的ICMP包)。