最近在家里上网突然发现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. 缺少wlanapi.dll文件问题修复

    我在下载百度云盘的时候碰到了一个问题,缺少wlanapi.dll文件.下面贴出解决办法 第一步 http://d.apktop.cn/p/soft_134.html   下载wlanapi.dll 第 ...

  2. Android开发--apk的生成

    0.前言 此方法为eclipse中生成apk的方法!!!! 1.生成ketstore 在命令提示符中找到java的jdk路径,例如: D:\study software\Java\jdk1.8.0_2 ...

  3. windows php swoole 安装

    Cygwin 官方地址:http://www.cygwin.com/ swoole 官方下载地址:https://github.com/swoole/swoole-src/releases 1.下载 ...

  4. JS基础(超级简单)

    1     JS基础(超级简单) 1.1 数据类型 1.1.1   基本类型: 1)        Number:特别注意:NaN的检测方法:Nan!=NaN;或者使用isNaN方法 2)       ...

  5. uva 489 Hangman Judge

    大意:电脑想个单词,玩家来猜.玩家输入一个个字母,若答案里有这个字母,则显示该单词中所有该字母.最终目标是显示答案所有字母.猜错7次,死: 注意特殊条件:1.玩家不断重复错误的字母,只算一次猜错.2. ...

  6. 日常contest总结

    codeforces#352 div2 A 一个字符串的构造规律为1234567891011 问该字符串第i个数字是哪个 n<=1000 枚举即可 考虑这道题的拓展 当n=1e9的时候按位数枚举 ...

  7. android 多个notifycation向同一个Actiivity传递不同数据

    如果你有这方面的需求,那你实践的时候可能会发现,多个Notifycation点击的时候会传递相同的数据. 通常情况下我们可能这样写. Notification notification = new N ...

  8. JavaScript中style, currentStyle和 getComputedStyle的异同

    今天在做项目的时候,习惯性的用到了element.style.width,然而浏览器却报错,错误提示是style is undefined,这是我才意识到,内联样式表和外联样式表在js应用中也有很大的 ...

  9. 启动Mysql服务提示Can’t connect to local MySQL server through socket的解决方法

    启动Mysql服务常会提示下面错误: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/ ...

  10. 移动混合开发之HTML5在移动开发中的准则

    1.尽量单页面开发 2.慎重选择前端UI框架,新手最好自己动手. 3.动画特效达到60fps 4.长度单位是用rem,即字体的宽度,字体宽度可根据 window.width/number.