最近在家里上网突然发现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. 原生JS实现购物车功能

    html <div class="catbox"> <table id="cartTable"> <thead> <t ...

  2. 一道Integer面试题引发的对Integer的探究

    面试题: //在jdk1.5的环境下,有如下4条语句: Integer i01 = 59; int i02 = 59; Integer i03 =Integer.valueOf(59); Intege ...

  3. 搭建一个分布式MongoDB鉴权集群

    今天休假在家,测试并搭建了一个replica set shard MongoDB鉴权集群.replica set shard 鉴权集群中文资料比较少,本文是个人笔记,同时也希望对后来者有所帮助.本文仅 ...

  4. 查看cpu

    使用系统命令top即可看到如下类似信息: Cpu(s):  0.0%us,  0.5%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st ...

  5. RSA大会播报 – 2014最佳安全博客提名(国外篇)

    最佳企业安全博客提名:     Juniper(网络厂商,不用多介绍):http://forums.juniper.net/t5/Security-Mobility-Now/bg-p/networki ...

  6. algorithm -- 选择排序

    选择排序是<导论>第一章课后习题,仿照插入排序,再次运用循环不变式来证明下算法的正确性,C++ 源码: // 交换函数 void swap( int& a, int& b ...

  7. 端口限制情况下php+xdebug环境配置

    PHP程序在开发的时候调试是比较方便的,大体情况下,输出,打log是可以解决几乎所有问题. 但是还不够,有些问题,用打log的形式定位问题是相当痛苦的事情,有些时候测试环境没配好的话,你可能需要做许多 ...

  8. linux操作命令

    cd / 回到跟目录 cd ..  返回上一层目录 tomcat 的logs目录执行tail -f catalina.out查看日志 ps -ef|grep tomcat 查看tomcat进程 kil ...

  9. windows8.1下android开发环境搭建(Eclipse+Android sdk+ADT+Genymotion)

    一.基本jdk.eclipse环境 二.android sdk 1.下载安装:https://developer.android.com/sdk/installing/index.html?pkg=t ...

  10. React Native 一个组件styles BUG

    'use strict'; var React = require('react-native'); var { StyleSheet, PanResponder, View, Text } = Re ...