IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

移动端测试的代理服务器搭建

雨夜带刀 2016-04-02 13:16:32 累计浏览 1,992 次
本机暂存

背景

   移动设备想要访问位于局域网中的某个特定设备上搭建的服务,需要通过代理服务器来实现,针对不同操作系统搭建代理服务器有不同的软件,如果系统是 OS X 的话,可以使用 Charles,对于 Windows,可以使用大名鼎鼎的 Fiddler ,可视化软件的使用这里不详述,本文重点讲述在 Unix/Linux 上使用 Squid 来搭建代理服务器。

本地环境的准备

   通常我们需要测试的是某个设备上搭建的本地服务,那么至少要保证使用 127.0.0.1 是可以访问的,如果是配置了域名的虚拟主机也是同理,至少需要确保本地绑定 Hosts 可访问。

   假如你的设备上有一个正在运行的 a.com,那么需要保证可以在设备上通过绑定 127.0.0.1 a.com 的 hosts 能正常访问到该服务。

安装 Squid

   以 Cent OS 为例,可以使用 yum 来安装。

$ yum install squid

   其他 linux 系统有不同的软件来安装,否则可以选择编译的办法来安装。

配置 Squid

   使用 yum 安装好的 Squid,默认的目录会是 /usr/local/squid,默认的配置文件是 /usr/local/squid/etc/squid.conf

   编辑配置文件:

$ vim /usr/local/squid/etc/squid.conf

   这里重点讲述几个重要的配置。

   先增加一个本地 server 的 acl 访问规则的配置,然后配置本地 server 不做缓存,因为 Squid 默认会对所有访问请求做缓存,而本地测试服务不需要借助 Squid 来做缓存控制。

acl localServers dst 127.0.0.1  # Local Server
no_cache deny localServers   # Deny local server cache

   当 Squid 找不到本地所运行的主机名时可能会报如下错误:

FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

   所以最好提前设置一个可见主机名,以免发生错误,该可见主机名可以在本地单独配置一个 xxx.com 的虚拟主机(记得绑定 hosts)而专用于 Squid。

visible_hostname xxx.com

   配置允许所有 HTTP 的访问

http_access allow all

   配置代理端口,默认端口是 3128,可以修改成你想要的任意端口。

http_port 8411

   配置 log 文件路径,cache.log 和 access.log,并确保该文件有可写权限。

cache_log /var/log/squid/cache.log
cache_access_log /var/log/squid/access.log

   到这里主要的配置都完成了,可以启动 Squid 了。

$ /usr/local/squid/sbin/squid

   如果修改了配置文件,需要停止 Squid 然后再启动,安全的办法是使用自带的命令。

$ /usr/local/squid/sbin/squid -k shutdown

   由于 Squid 的 access.log 会记录每一条访问日志,一定时间后该日至会非常庞大,所以需要定时清理,可以设置一个定制任务来清理该文件。

   使用 crontab 来增加一条定时任务。

$ crontab -e

   在打开的文件中新增一条记录,这条记录会每天 0 点的时候将访问日志清空。

0 0 * * * /usr/local/squid/sbin/squid -k shutdown
3 0 * * * echo > /var/log/squid/access.log
5 0 * * * /usr/local/squid/sbin/squid

   如果你觉得这种办法太简单粗暴,可以使用 Squid 自带的滚动日至的功能。

$ /usr/local/squid/sbin/squid -k rotate

   Squid 是一个很强大的开源软件,可以用于搭建代理服务器,还可以作为大型站点的 WEB 加速器,想更详细的了解可以查看 Squid 权威指南

移动设备如何访问代理服务器?

   代理服务器搭建好后,移动端设备想要访问代理服务器,在 Wifi 的 HTTP 代理设置中填入代理服务器的 IP 和 Squid 配置的代理端口,就可以正常访问代理服务器上的 a.com

同分类推荐文章

  1. 「置顶」我做了什么 (2026-05-05 12:13:28)
  2. 万字长文推演:手机不再从 App 开始,Agent OS 如何接管任务入口 (2026-04-28 14:57:22)
  3. Android Perfetto 系列 10 - Binder 调度与锁竞争 (2025-11-16 15:33:30)

查看更多 移动开发 文章 →

建议继续学习

  1. 使用Squid缓存视频 (累计阅读 10,339)
  2. 大型高并发高负载网站的系统架构分析 (累计阅读 9,004)
  3. 使用Fiddler对手机应用进行抓包测试 (累计阅读 8,673)
  4. 基于Squid的视频业务日志分析 (累计阅读 7,004)
  5. 系统架构的一些思考 (累计阅读 6,793)
  6. wget 的使用 (累计阅读 5,765)
  7. [调优] Squid 不同版本的性能对比 (累计阅读 5,590)
  8. 用谷歌浏览器来当手机模拟器 (累计阅读 5,306)
  9. Squid 限制用户并发连接数 (累计阅读 5,237)
  10. squid缓存失效之谜:一步步提高squid缓存命中率办法记录 (累计阅读 4,962)