切换语言
中文 English Русский
菜单
价格
代理
代理类型
按地区77 个地区
解决方案
使用场景所有使用场景
资源
免费工具
对比所有对比

如何从另一个国家查看您的网站

目录
  1. 网站根据什么判断您所在的国家?
  2. 为什么只用代理还不够?
  3. 如何为每个市场设置一个 Chrome 配置文件?
  4. 一次地区检查应记录什么?
  5. 为什么重复测试时静态地址比轮换地址更好?
  6. 什么时候 VPN 就够了,什么时候不够?
  7. ProxyJam 适合在哪里?
  8. 快速解答

简而言之: 网站通常根据您的 IP 地址判断您所在的国家,再根据浏览器语言、时区、Cookie 和已登录的账户调整显示的内容。要从另一个国家查看您自己的网站,这些信号都必须与该市场一致。也就是说,需要一个位于该国的代理来提供地址,以及一个独立的 Chrome 配置文件,设置该市场的语言和时区,并且不带您自己的任何 Cookie。

要从另一个国家查看您的网站,请求必须像当地访客那样到达:来自该国的地址,使用该市场的浏览器语言和时区,并且不带您自己访问留下的 Cookie。代理负责地址,其余都是浏览器设置。本指南讲的是检查您自己的网站,也就是我们的地区测试页面(英文)所描述的工作:如何在 Chrome 中设置、每次运行要记录什么,以及什么时候 VPN 也能胜任。

网站根据什么判断您所在的国家?

通常是 IP 地址,并且常常结合其他信号。信号共有五个,来源各不相同。

  • IP 地址。 服务器或其前面的 CDN 会在地理位置数据库中查询这个地址。例如,Cloudflare 可以通过 CF-IPCountry 请求头,把访客所在国家以两字母代码传给源站(Cloudflare 请求头参考)。
  • 浏览器语言。 Chrome 会根据设置中的首选语言生成 Accept-Language 请求头,页面脚本则从 navigator.languages 读取同一份列表(MDN)。
  • 时区。 脚本可以通过 Intl.DateTimeFormat API,在其 resolvedOptions() 的 timeZone 字段中,读到电脑的时区名称,例如 Europe/Berlin(MDN)。
  • 精确位置。 Geolocation API 只有在访客允许后才会报告坐标(MDN),所以大多数网站根本拿不到。
  • 网站已经知道的信息。 保存您上次所选地区或币种的 Cookie,或已登录账户中的国家,可能比地址更优先。

表格“每个信号从哪里来,测试时如何设置”把每个信号与控制它的 Chrome 设置对应起来。

为什么只用代理还不够?

这些信号可能互相矛盾,而网站如何处理这种矛盾,本身就是您要测试的内容。让 Chrome 通过德国地址访问,却把语言列表留在英语(美国),那么一个从 Accept-Language 取语言、从地址取价格的网站,就会用英语显示欧元价格。德国的真实访客用德语浏览器,不会看到这样的页面。保留您平时的 Cookie,网站则可能跳过国家判断逻辑,直接显示您上个月选过的地区。

所以,在第一次运行之前就把每个信号都设置为该市场,并在之后的运行中保持不变。

如何为每个市场设置一个 Chrome 配置文件?

为每个市场创建一个独立的 Chrome 配置文件,并给它配一个专属代理。每个配置文件有自己的历史记录、密码和设置(Chrome 帮助),也有自己的 Cookie(Chromium 关于用户数据目录的说明)。德国配置文件的 Cookie 永远不会进入法国配置文件,两者也都不会影响您日常的浏览。

  1. 创建配置文件。 点击右上角的个人资料图片,选择添加 Chrome 个人资料,并以市场命名,例如“Test DE”。不要登录您的 Google 账号,这样主配置文件中的任何内容都不会同步过来。
  2. 在该配置文件中安装代理扩展。 扩展程序为其所在的配置文件设置代理(chrome.proxy API)。在扩展中添加该市场的代理。我们免费的 ProxyJam Connector就是这样一款扩展。
  3. 只让被测域名走代理。 为您网站的域名及其子域名添加规则,其余流量保持直连。Chrome 自身的流量和其他所有网站都使用您自己的连接,代理只承载测试流量。规则如何变成 PAC 脚本,以及为什么在 HTTPS 下规则只能匹配主机名而不能匹配路径,见 如何在 Chrome 中只让特定网站走代理。
  4. 加入页面调用的其他主机。 打开开发者工具,刷新页面,查看 Network 面板中的 Domain 列(如果它被隐藏了,右键点击列标题即可显示)。价格常常来自另一台主机上的 API,Cookie 同意横幅也可能向其供应商的服务器询问该显示哪个版本。规则中漏掉的主机会看到您自己的地址,页面最终会混合两个市场的内容。把它们逐一加入。
  5. 设置语言。 在设置的语言中,于首选语言下添加该市场的语言,并把它移到顶部(Chrome 帮助)。Accept-Language 发送的就是这个顺序。
  6. 设置时区。 Chrome 从操作系统获取时区,本身没有时区设置。测试时可以由开发者工具提供:在开发者工具的设置中打开 Locations,添加一个带该市场 Timezone ID 和 Locale 的位置,然后在 Sensors 面板中选择它(开发者工具文档)。这个覆盖设置只作用于打开开发者工具的那个标签页,所以请先打开开发者工具,再加载页面。修改系统时区也可以,但会同时作用于电脑上的所有程序。
  7. 检查配置文件。 暂时把 proxyjam.com 加入规则,打开“我的 IP 是什么”(英文)。它应显示代理的地址,并且定位在该市场。检查完后,把检查页面从规则中移除。

如果代理需要用户名和密码,而 Chrome 一再要求输入,为什么 Chrome 一再要求输入代理用户名和密码解释了原因和解决办法。

一次地区检查应记录什么?

每次运行都记录相同的字段,这样两次运行就能逐行比较。清单“每次运行都记录相同的字段”是一个起点:重定向链、价格和币种、库存、Cookie 同意横幅和语言,以及配置文件当时使用的地址。

对于重定向链,请在 Network 面板中打开 Preserve log,它会把重定向之前的请求保留在列表中(开发者工具 Network 参考)。在终端中,curl 加上 -I 和 -L 会打印每一跳的响应头,-x 让请求通过代理发送,-H 添加语言请求头(curl 手册)。示例中的代理地址来自专供文档使用的地址段(RFC 5737),请换成您自己的地址。

curl -sIL -x http://203.0.113.10:8080 -H "Accept-Language: de-DE,de;q=0.9" https://example.com/

每一个后面跟着 location: 响应头的状态行就是一跳。像这样的普通请求能看到重定向、响应头,以及写在 HTML 里的价格。由于 -I 发送的是 HEAD 请求,对 HEAD 和 GET 响应不同的服务器可能显示不同的重定向链;去掉 -I,加上 -o /dev/null -D -,即可打印普通请求的响应头。它不执行脚本,所以 Cookie 同意横幅或页面加载后才填入的价格,需要用浏览器配置文件来检查。

每次运行一行,每个市场一张表。只有当两次运行的地址、语言和时区都相同时,它们之间的差异才值得追查;如果其中任何一项变了,您比较的就是两种不同的设置。

重定向链的意义不止于质量检查。Google 表示,其爬虫默认使用的地址看起来位于美国,而且不发送 Accept-Language 请求头(Google Search Central),所以只能通过自动检测才能访问到的市场版本,Google 可能无法抓取或编入索引。为该版本提供独立的网址,就能避免这个问题。

为什么重复测试时静态地址比轮换地址更好?

比较需要一次只改变一个因素。轮换代理池每次请求或每个会话都给出不同的地址,而每个地址都有自己的地理位置记录和所属网络。当价格在周一和周四之间发生变化时,您无法判断是网站变了还是地址变了。静态地址让观察点保持固定,因此它不再是比较中的变量。持有一个地址与从代理池中取用地址的更详细对比,见 ISP 代理与住宅代理对比。

静态地址也仍然可能“移动”:地理位置数据库会更新,一个地址可能被记录到另一个国家名下。所以每次运行之前,包括第一次,都要先做“我的 IP 是什么”检查。如果您需要在同一个市场同时使用许多不同的地址,轮换代理池是更合适的工具。

什么时候 VPN 就够了,什么时候不够?

只看一次时,VPN 就够了:德国首页能否加载、横幅是否出现。它很快,而且很多人已经装了。

当检查需要重复进行时,VPN 在三个方面有所不足:

  • VPN 应用通常承载设备的全部流量,所以所有程序和标签页都同时处于测试国家,两个市场无法并排比较。
  • 它的出口地址由许多用户共用,在 IP 数据中属于一个已知类别:商业数据库中有一个字段,专门标记注册给匿名 VPN 服务商的地址(MaxMind 文档)。读取这个字段的网站可能会区别对待 VPN 访客,这样记录下来的就是这种区别对待。
  • 出口地址可能每次连接都不同,这又带回了轮换代理池的问题。

ProxyJam 适合在哪里?

ProxyJam 销售静态住宅(ISP)代理:一个位于您所选国家的地址,注册在一家互联网服务商名下,在您付费的期间内一直归您使用。对这项工作来说,就是每个市场一个地址。可选国家列在代理地区页面上,目前共 77 个,按 IP 按周期的价格见价格页面。如果某个地址开始被定位到您所购买的国家之外,您可以在《服务条款》第 2.5 节规定的每月限额内免费更换。

该产品按国家销售,所以无法显示两个城市之间的差异。它的用途也是检查您自己的网站:使用地址去获取某个网站不向您所在国家提供的内容,是我们《可接受使用政策》第 5 节所禁止的。产品目录见 ISP 代理页面,ISP 代理究竟是什么,见 什么是 ISP 代理。

每个信号从哪里来,测试时如何设置

各信号的来源依据参考来源中列出的 MDN、Chrome 帮助和开发者工具文档。具体某个网站读取哪些信号、按什么顺序读取,因网站而异;我们没有对任何特定网站进行测量。
网站在哪里读取Chrome 中由什么决定测试时如何设置
IP 地址在服务器或 CDN 上,通过地理位置数据库查询您的网络连接,或代理、VPN在测试配置文件中设置一个位于该市场的代理
浏览器语言Accept-Language 请求头和 navigator.languages设置、语言、首选语言把该市场的语言移到列表顶部
时区页面脚本,通过 Intl API操作系统在开发者工具中添加带该市场 Timezone ID 的位置,或修改系统设置
精确位置Geolocation API,需访客允许权限提示和设备的定位服务拒绝权限提示,或在开发者工具中覆盖位置
已保存的选择和账户Cookie、网站存储和已登录的账户您所用的浏览器配置文件每个市场一个新的配置文件,不登录,或使用该市场的测试账户

每次运行都记录相同的字段

快速解答

无痕窗口能显示另一个国家看到的网站吗?

不能。无痕模式不带您的 Cookie,但请求仍然从您自己的地址发出。MDN 还指出,Chrome 在无痕模式下的 Accept-Language 中只列出一种语言,这可能与真实访客发送的不同。

可以同时测试几个国家吗?

可以,每个市场使用一个 Chrome 配置文件,各自配一个代理,窗口并排打开。Chrome 每个配置文件只保存一个代理设置,没有按标签页的代理,所以配置文件就是基本单位。 特定网站走代理

每次运行之间要清除 Cookie 吗?

如果希望每次运行都像首次访问,是的:运行前在该配置文件中清除网站数据。如果您测试的是回访用户看到的内容,就保留它们,并在记录中注明,因为已保存的地区或币种可能比地址更有决定作用。

如何确认地址位于目标国家?

在测试配置文件中,把检查页面加入代理规则,然后打开“我的 IP 是什么”页面。它会显示到达的地址、该地址的地理位置以及所属网络。不同的地理位置数据库可能结论不一,所以网站仍可能把同一个地址定位到别处。

可以测试某个特定城市吗?

用 ProxyJam 不行。静态住宅代理目录按国家、服务商和套餐销售,其中没有任何报价绑定到某个城市或地区。 代理地区

参考来源