我尝试使用 SSH 并尝试通过笔记本电脑路由流量。最后我成功了,但是我的网络似乎被搞乱了。我只使用了 ssh 并尝试了 -D 和 -L 标志。我正在运行 Arch。
设置完 socks5 代理后,我就可以正常使用 chromium 进行浏览了:
$ ssh -D 1339 HOST
$ chromium --proxy-server="socks5://localhost:1338"
如果不使用此 socks 代理,我将无法浏览。而且我的网络似乎无法通过任何端口建立任何连接(甚至 1338 也不行):
$ telnet google.com 80
Trying 157.157.135.91...
Connection failed: No route to host
Trying 157.157.135.102...
Connection failed: No route to host
Trying 157.157.135.117...
...
Connection failed: No route to host
Trying 2a00:1450:400b:c02::64...
telnet: Unable to connect to remote host: Network is unreachable
检查端口 80 是否被使用,没有结果:
$ sudo fuser 80/tcp
只是为了确保它能看到我的袜子代理:
$ sudo fuser 1338/tcp
1338/tcp: 20208
我的 iptables 配置从未被触碰过:
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 42955 packets, 14M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 36322 packets, 2196K bytes)
pkts bytes target prot opt in out source destination
我无法进行 whois 查询:
$ whois google.com
connect: Network is unreachable
但是,我可以 ping 通:
$ ping google.com
PING google.com (157.157.135.123) 56(84) bytes of data.
64 bytes from hysing-123.simnet.is (157.157.135.123): icmp_seq=1 ttl=62 time=6.96 ms
64 bytes from hysing-123.simnet.is (157.157.135.123): icmp_seq=2 ttl=62 time=6.87 ms
64 bytes from hysing-123.simnet.is (157.157.135.123): icmp_seq=3 ttl=62 time=6.66 ms
我的环境中没有 grep -i http 或 grep -i proxy 捕获任何内容,并且 /etc/environment 是空的。
我完全不知所措。有人知道发生了什么事吗?
使用跟踪路由编辑: 我从 ping google 获得的 IP 地址来自我的 ISP。
我不确定从这些跟踪路由中读取什么,请求似乎没有超出我的网关:
$ sudo traceroute -n -T -p 80 google.com
traceroute to google.com (157.157.135.123), 30 hops max, 60 byte packets
1 192.168.1.254 2083.374 ms 88.990 ms 88.625 ms
2 192.168.1.254 88.168 ms !H 87.715 ms !H 87.254 ms !H
$ sudo traceroute -n -T -p 443 google.com
traceroute to google.com (157.157.135.123), 30 hops max, 60 byte packets
1 192.168.1.254 2006.803 ms 13.076 ms 12.669 ms
2 192.168.1.254 12.210 ms !H 11.740 ms !H 11.335 ms !H
我的 ISP 已应答 ICMP 数据包。
$ sudo traceroute -n -I google.com
traceroute to google.com (157.157.135.123), 30 hops max, 60 byte packets
1 192.168.1.254 6.263 ms 5.779 ms 5.335 ms
2 * * *
3 157.157.135.65 12.034 ms * *
4 157.157.135.123 12.861 ms 6.706 ms *
答案1
您获取的 IP 地址google.com
不属于 Google。这可能意味着两种情况之一:DNS 被劫持(可能是 ISP 劫持),或者 Google 在属于 ISP 的 IP 上部署了前端。
首先您应该尝试通过不同的 DNS 服务器对不同的域进行 DNS 查找,以查看它们是否都被劫持,或者您获得的 DNS 结果是否google.com
合法。
接下来,您可以尝试比较
traceroute -n -T -p 443 google.com
traceroute -n -T -p 80 google.com
traceroute -n -I google.com
这应该会告诉您在遇到问题之前数据包传输了多远。您看到的问题不可能是由运行ssh
您正在运行的命令或更改 Chrome 中的设置引起的。
traceroute 输出显示了一些有趣的细节。使用 ICMP 回显请求数据包进行跟踪时,回复很快,目标距离为四跳。使用 TCP 数据包跟踪到端口 80 或 443 时,第一跳响应缓慢,延迟看起来像典型的 ARP 超时。
无论是什么阻止了请求,其原因最有可能在于192.168.1.254
,即您的计算机所连接的路由器。