最近在家里上网突然发现Apple Store不能更新了。重启路由器发现最开始一会是能下载更新的,但是过了一会就完全不能下载更新了。很是奇怪,今天特意分析了一下这个问题。

  首先,抓包确定Apple Store的下载域名为:iosapps.itunes.apple.com;

  第二步,ping一下下载域名看是否能够ping通,发现连域名都不能解析,确定应该是DNS的问题;

  root@Hiwifi:~# ping -c 5 iosapps.itunes.apple.com
  ping: bad address 'iosapps.itunes.apple.com'

  

  最后,修复DNS的问题,因为已经安装了Shadowsocks加速功能所以直接在ss加速中的高级设置中将下载域名设置上去,再次ping下载域名已经能ping通了:

root@Hiwifi:~# ping -c 5 iosapps.itunes.apple.com
PING iosapps.itunes.apple.com (17.253.83.206): 56 data bytes
64 bytes from 17.253.83.206: seq=0 ttl=48 time=283.340 ms
64 bytes from 17.253.83.206: seq=1 ttl=48 time=281.420 ms
64 bytes from 17.253.83.206: seq=2 ttl=48 time=282.820 ms
64 bytes from 17.253.83.206: seq=3 ttl=48 time=278.840 ms
64 bytes from 17.253.83.206: seq=4 ttl=48 time=282.360 ms

  

  再次尝试下载更新,Done!

  PS:默认是自动获取的DNS,211.148.192.141

 
后续确认使用SS(Shadowsocks)插件的DNS加速是走的SS的流量,虽然问题解决了但是这个方法不通用,而且流量是走的SS的,对于SS速度慢或者SS流量收费的用户成本很高。
 
 观察发现在每次极路由重启后的几分钟内是能正常ping通下载域名的,而且通过ps|grep dns命令看到只有两个dnsmasq的进程,如下:
root@Hiwifi:/tmp/dnsmasq.d# ps | grep dns
 5275 root      1636 S    /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf -u root
 5277 root      1632 S    /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf -u root
 5364 root      5116 S    /usr/sbin/dns2socks 127.0.0.1 61080 8.8.4.4 127.0.0.1 53535 -d -q
 5871 root      1672 S    grep dns
 
过了几分钟后再查看进程发现多了一个pdnsd的进程,如下,这个进程启动后再ping下载域名就失败了:
20886 root      7320 S    /usr/sbin/pdnsd -c /etc/app_conf/ccapp/conf/pdnsd_ccapp.conf --daemon
 
观察pdnsd服务启动前后的变化发现/tmp/dnsmasq.d文件夹多了一个“ccapp_dnsmasq.conf  ”的文件
root@Hiwifi:/tmp/dnsmasq.d# ls
ccapp_dnsmasq.conf          gw-shadowsocks.dnslist
ccapp_domain_speedup.conf   gw-shadowsocks.usr.dnslist
 
vi查看之,里面确实有一项是下载域名:
server=/iosapps.itunes.apple.com/127.0.0.1#1055
 
确认问题应该是出在这里,应该是这里把解析下载域名的DNS指向了一个特定的DNS,正好那个DNS又不能解析了。确认后通过修改这个文件,删掉下载域名这一行,重启之。
但是重启后发现这个文件又更新了,恢复原样了!因此应该是其他地方还存在该文件的副本,要修改这个真正的副本才能修复这个问题。通过find / -name ccapp命令找到相关的文件:
root@Hiwifi:/tmp/dnsmasq.d# find / -name ccapp
/etc/app_conf/ccapp
/overlay/etc/app_conf/ccapp
/tmp/ccapp
/var/log/ccapp
 
发现有好几个文件夹,应该是其中一个,且一般是带conf字样的,所以切换到“/etc/app_conf/ccapp”目录,发现有个conf文件夹,进去查看,有一个“pdnsd_ccapp.conf”文件,vi查看之,发现和上面的“ccapp_dnsmasq.conf”文件格式并不一样,但是也是一行一行配置的,并且可以看到下载域名存在于这个文件中的一行,先试着备份该文件并删除下载域名对应的行。重启等待pdnsd进程自动启动后再次尝试着ping下载域名,就发现能Ping通了,就此大功告成!
 
PS:可以通过crontab -e查看定时任务,发现每隔一段时间15分钟会去检查一下ccapp的状态,查看对应的sh命令,确实是在这个时候启动的pdnsd进程的!
 
最后更新时间:2016-05-19
  使用如上修改后可以暂时解决问题,但是隔两天后却又开始出现异常,最后从极路由的插件开始排查,发现是“汛网12306加速”这个插件在作祟,卸载后就恢复正常了。这个插件说是只对12306加速,其实加速的域名不止12306这一个,还包括苹果的大部分域名和一些其他的域名,就是这个插件对这些域名使用了不同的DNS导致不能下载的问题!总之,大家请谨慎安装此插件吧!

极路由访问Apple Store可以浏览但是不能下载的解决方案的更多相关文章

  1. 教你如何在Drcom下使用路由器上校园网(以广东工业大学、极路由1S HC5661A为例)

    免责声明: 在根据本教程进行实际操作时,如因您操作失误导致出现的一切意外,包括但不限于路由器变砖.故障.数据丢失等情况,概不负责: 该技术仅供学习交流,请勿将此技术应用于任何商业行为,所产生的法律责任 ...

  2. OpenWrt-19.07.2 For HC5861(极路由3) /HiWiFi/Gee最新固件,极路由3刷openwrt

    OpenWrt For HiWiFi(HC5861) 自编译精减固件,极路由3自用固件 HC5861-uboot.bin v19.07.2 下载 支持 NTFS 读写 支持 Wi-Fi 5G 驱动 默 ...

  3. 极路由设置共享磁盘密码、跨网访问samba服务

    极路由插上移动硬盘后会自动建立samba服务器,但我们没法去配置哪些盘符需要密码,这样只要在同一个wifi下的电脑都能去访问这些东西了,比较弱智.另外我还想再公司中去读写这个移动硬盘. 设置密码 首先 ...

  4. 极路由2(极贰)ROOT并刷了OpenWrt

    绕过官方的ROOT 查了一下root教程, 如果还需要保留保修, 则需要自己想办法回退版本, 下载搜狐插件到sd卡, 找个linux系统修改sd卡上程序的执行权限, 然后才能开启ssh, 具体的方法可 ...

  5. OpenWrt防火墙配置(极路由)

    说明: 1.极路由使用的是OpenWrt做为操作系统,本身就是一个Linux,包管理使用opkg,只是改了一个界面而已. 2.Linux下的防火墙最终都会归iptables进行管理,OpenWrt的防 ...

  6. 极路由U-boot解锁刷root固件教程,root后可刷华硕、如意云等多种固件,附赠全套刷软

    9008正式版固件将会封堵此漏洞,想root的同学尽快了.安装新工具箱里的root保留,可升级官方最新固件并保留root. 此方法并非本人原创,只是将root的过程和经验做个总结,比较适合菜鸟做参考, ...

  7. 使用极路由进行外网映射,本地电脑做服务器,运行javaWeb项目

    最近在学习javaWeb,一个项目需要android访问服务器,于是使用自己的笔记本电脑作为服务器,需要进行端口映射.使得外网可以访问自己的javaWeb项目或者网站之类的.普通路由请看:http:/ ...

  8. 如何用极路由+OpenWrt+SDR电视棒搭建SDR服务器

    0×00 前言 近期因为有个从异地捕获无线信号的需求,便尝试着用OpenWrt+公网IP搭建了一台SDR服务器.如果有小伙伴嫌SDR硬件天线看起来太乱.或者电脑没有足够的USB接口也可在局域网搭建SD ...

  9. 如何用极路由+OpenWrt+RTL电视棒搭建一台SDR服务器,并隐秘地捕获和传输数据

    0×00 前言 近期因为有个从异地捕获无线信号的需求,便尝试着用OpenWrt+公网IP搭建了一台SDR服务器.如果有小伙伴嫌SDR硬件天线看起来太乱.或者电脑没有足够的USB接口也可在局域网搭建SD ...

随机推荐

  1. SQL数据库索引查询

    SELECT IA_ID,IA_Title,IT_ParentID,IA_Content,IA_CreateDate,IA_Author, )))) AS States FROM dbo.InfoAr ...

  2. 学习记录之APPCan

    2015年5月28的笔记,整理笔记搬了过来,好坏是自己当时的小成果,以后有想法继续补充 APPCan移动开发服务平台,有内置模板,列表样式,主页样式等供选择,适合开发简单布局或与内置模板布局相同的项目 ...

  3. idea安装

  4. PHP 通过Socket收发16进制数据

    最近在php下做关于Socket通讯的相关内容,发现网络上好多人在了解如何进行16进制收发,研究了下,代码如下,欢迎拍砖. <?php        $sendStr = '30 32 30 3 ...

  5. 数位DP入门

    HDU 2089 不要62 DESC: 问l, r范围内的没有4和相邻62的数有多少个. #include <stdio.h> #include <string.h> #inc ...

  6. CF #296 (Div. 1) B. Clique Problem 贪心(构造)

    B. Clique Problem time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  7. The trip(Uva 11100)

    题目大意: 给出n个数,要求将其分成最少的递增序列,保证序列最少的同时要使得序列长度的最大值最小.  n<=10000 题解: 1.我是直接看着<训练指南>里的中文题面的,lrj似乎 ...

  8. node.js中buffer需要知道的一些点

    本文为阅读朴灵大大的<深入浅出node.js>笔记: 在前端开发的时候,我们不曾用过buffer,也没得用.buffer是node环境引入的,用来方便应对二进制数据的处理.这里我们对它应该 ...

  9. 阅读摘录《javascript 高级程序设计》01

    前言: 因为工作需要,所以开始主攻前台JS方面的技术.在以前的工作中,使用过这门脚本语言.但是都是比较凌乱的,用到什么学什么,只是为了实现业务,而去使用. 不会考虑到代码优化,封装对象等.今次特意借了 ...

  10. DevExpress VGridControl 行宽自动调整

    1. 让列的宽度自动填充 如果VGridControl的LayoutStyle属性为BandsView或SingleRecordView,那么把VGridControl的OptionsView.Aut ...