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

要像国外访客那样看到您的网站，需要在独立的 Chrome 配置文件中，让 IP 地址、浏览器语言、时区和 Cookie 都与该市场一致。

- Canonical: https://proxyjam.com/zh/blog/view-website-from-another-country/
- Updated: 2026-10-20
- Language: zh

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


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

1. 日期和时间、所用配置文件，以及“我的 IP 是什么”页面为它显示的地址和国家。
2. 重定向链：从您输入的地址到最终落地页面的每一跳，以及各自的状态码。
3. 页面显示的价格、币种，以及是否含税。
4. 您在该市场销售的产品或套餐中，哪些有提供、哪些有库存。
5. Cookie 同意横幅：是否出现，提供了哪些选项。
6. 页面使用的语言，以及首屏截图。

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

|  | 网站在哪里读取 | Chrome 中由什么决定 | 测试时如何设置 |
|---|---|---|---|
| IP 地址 | 在服务器或 CDN 上，通过地理位置数据库查询 | 您的网络连接，或代理、VPN | 在测试配置文件中设置一个位于该市场的代理 |
| 浏览器语言 | Accept-Language 请求头和 navigator.languages | 设置、语言、首选语言 | 把该市场的语言移到列表顶部 |
| 时区 | 页面脚本，通过 Intl API | 操作系统 | 在开发者工具中添加带该市场 Timezone ID 的位置，或修改系统设置 |
| 精确位置 | Geolocation API，需访客允许 | 权限提示和设备的定位服务 | 拒绝权限提示，或在开发者工具中覆盖位置 |
| 已保存的选择和账户 | Cookie、网站存储和已登录的账户 | 您所用的浏览器配置文件 | 每个市场一个新的配置文件，不登录，或使用该市场的测试账户 |

各信号的来源依据参考来源中列出的 MDN、Chrome 帮助和开发者工具文档。具体某个网站读取哪些信号、按什么顺序读取，因网站而异；我们没有对任何特定网站进行测量。


## 快速解答

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

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

### 可以同时测试几个国家吗？

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

### 每次运行之间要清除 Cookie 吗？

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

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

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

### 可以测试某个特定城市吗？

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


## 参考来源

- [Cloudflare: HTTP headers](https://developers.cloudflare.com/fundamentals/reference/http-headers/)，CF-IPCountry 请求头携带访客的两字母国家代码
- [MDN: Accept-Language header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Accept-Language)，浏览器如何根据语言设置填写该请求头，以及 Chrome 在无痕模式下只发送一种语言
- [MDN: navigator.languages](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/languages)，页面脚本看到的同一份语言列表
- [MDN: Intl.DateTimeFormat resolvedOptions()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions)，脚本读取的时区，一个默认取自运行环境的 IANA 名称
- [MDN: Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API)，网站在获知精确位置之前需要获得的权限
- [Google Chrome Help: Manage Chrome with multiple profiles](https://support.google.com/chrome/answer/2364824)，如何添加配置文件，以及它会单独保存哪些内容
- [Chromium: user data directory](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/user_data_dir.md)，配置文件数据，包括历史记录、书签和 Cookie
- [Chrome for Developers: chrome.proxy API](https://developer.chrome.com/docs/extensions/reference/api/proxy)，扩展程序为其所在配置文件控制的代理设置
- [Google Chrome Help: Change Chrome languages](https://support.google.com/chrome/answer/173424)，添加首选语言并调整顺序
- [Chrome DevTools: Locations](https://developer.chrome.com/docs/devtools/settings/locations)，带 Timezone ID 和 Locale 的自定义位置，在 Sensors 面板中选择
- [Chrome DevTools: Sensors](https://developer.chrome.com/docs/devtools/sensors)，为被测页面覆盖地理位置
- [Chrome DevTools: Network features reference](https://developer.chrome.com/docs/devtools/network/reference)，Preserve log 选项会在页面加载之间保留请求
- [curl manual](https://curl.se/docs/manpage.html)，-x、-I、-L 和 -H 选项
- [Google Search Central: locale-adaptive pages](https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages)，Googlebot 的地址大多位于美国，且请求中不带 Accept-Language
- [MaxMind: GeoIP Anonymous IP database](https://dev.maxmind.com/geoip/docs/databases/anonymous-ip/)，标记注册给匿名 VPN 服务商的地址的字段
- [RFC 5737: IPv4 Address Blocks Reserved for Documentation](https://www.rfc-editor.org/rfc/rfc5737.html)，示例代理地址所用的 203.0.113.0/24 地址段




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

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

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

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

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

## 为什么只用代理还不够？

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

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

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

为每个市场创建一个独立的 Chrome 配置文件，并给它配一个专属代理。每个配置文件有自己的历史记录、密码和设置（[Chrome 帮助](https://support.google.com/chrome/answer/2364824)），也有自己的 Cookie（[Chromium 关于用户数据目录的说明](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/user_data_dir.md)）。德国配置文件的 Cookie 永远不会进入法国配置文件，两者也都不会影响您日常的浏览。

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

如果代理需要用户名和密码，而 Chrome 一再要求输入，[为什么 Chrome 一再要求输入代理用户名和密码](/zh/blog/chrome-proxy-password-prompt/)解释了原因和解决办法。

## 一次地区检查应记录什么？

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

对于重定向链，请在 Network 面板中打开 Preserve log，它会把重定向之前的请求保留在列表中（[开发者工具 Network 参考](https://developer.chrome.com/docs/devtools/network/reference)）。在终端中，curl 加上 `-I` 和 `-L` 会打印每一跳的响应头，`-x` 让请求通过代理发送，`-H` 添加语言请求头（[curl 手册](https://curl.se/docs/manpage.html)）。示例中的代理地址来自专供文档使用的地址段（[RFC 5737](https://www.rfc-editor.org/rfc/rfc5737.html)），请换成您自己的地址。

```sh
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](https://developers.google.com/search/docs/specialty/international/locale-adaptive-pages)），所以只能通过自动检测才能访问到的市场版本，Google 可能无法抓取或编入索引。为该版本提供独立的网址，就能避免这个问题。

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

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

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

## 什么时候 VPN 就够了，什么时候不够？

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

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

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

## ProxyJam 适合在哪里？

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

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

