系统

系统

系统

  • Ubuntu 15.10 Wily
  • 桌面环境:GNOME Shell 3.16.4
  • VPN:Astrill v2.9.3

问题

我住在中国。没有 VPN,我无法访问许多网站,包括 Google、Facebook 等。因此,我购买了 Astrill VPN 并将其安装在我的电脑上。

VPN 运行完美,至少在我的浏览器上如此。我可以通过 Firefox 和 Chromium 访问 Facebook、Google 和其他美国网站。但是,终端命令行似乎不知道我使用的是 VPN,并且可以访问中国被屏蔽的网站。

例如,我可以robots.txt通过网络浏览器访问 Google 的文件google.com/robots.txt。但是,当我尝试通过命令行输入以下内容下载文件时:

wget https://www.google.com/robots.txt

它只是卡在那里。我还尝试在urllib2.urlopen()URL 上编写一个简单的 Python 脚本,我尝试在每个被阻止的 URL 上都给出了一个:

urlopen error [Errno 110] Connection timed out>

这让我相信终端命令行根本无法识别我已打开 VPN,并且我是wget从中国的实际 IP 地址发出请求。

我一直以为 VPN 是全系统应用的代理,所以我以为终端命令行会认为我已经不在中国了。结果我可能错了,信息被误导了。

我们能做什么?

编辑:

我安装了一些可以查找 IP 地址地理位置的应用程序:

sudo apt-get install geoip-bin geoip-database

我通过运行让命令行识别了我的 IP 地址hostname -I

因此我尝试通过运行以下命令查找我的地理位置:geoiplookup $(hostname -I)

输出?GeoIP Country Edition: IP Address not found

我尝试在浏览器的某些网络应用中输入相同的 IP 地址,但正如预期的那样,没有成功。

答案1

嗯,我发现了问题所在。

事实证明,我使用的 Astrill VPN 配置为开放网络。这意味着 VPN 仅通过 Web 浏览器等进行隧道传输。

然后我将配置更改为OpenVPN, 意思是“它具有先进的分割路由/分割隧道功能,并且可以隧道传输您计算机上的所有应用程序。”所有应用程序(即 Web 浏览器)以及其他所有应用程序(包括终端命令行)。现在,我的所有命令行请求都是通过 VPN 隧道发出的,我非常开心。

我猜 OpenVPN 配置就是“系统范围的代理”,我一直以为所有 VPN 的配置都是这样。之前使用 OpenWeb 解释了为什么我只能从网络上访问中国被屏蔽的网站。

如果你想了解更多关于 VPN 协议之间的区别 -Astrill 是这样说的,但我不知道这是否适用于所有 VPN。不过,我认为他们的解释只会略有不同。

相关内容