使用 socks 代理后网络出现问题

使用 socks 代理后网络出现问题

我尝试使用 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,即您的计算机所连接的路由器。

相关内容