在mac上修改 hosts 很容易,我们可以直接去修改 hosts文件(/private/etc/hosts),但是想在iPhone上修改就很麻烦了。小编 Google了一下,目前修改 iPhone手机 hosts 有两种方法:
- 在mac上安装Charles,然后设置Charles的Map Remote Settings;
- 在mac上安装dnsmasq服务,然后手机的DNS配置成你的电脑ip。
方法一:
我的mac环境:macOS Big Sur 11.6,
Charles版本:4.6.1
iPhone环境:iPhone12(iOS 15.2.1)
我尝试了下此方法是没有效果的。这种方式很简单,如遇此问题可以先去尝试一下链接。
方法二:
我的mac环境:macOS Big Sur 11.6,
iPhone环境:iPhone6(iOS 12.5.5)
安装dnsmasq服务
此方法我最终是成功了,接下来介绍一下方法二(dnsmasq服务方案)的配置步骤:
一:在mac上安装dnsmasq服务
1.1 安装Homebrew,在终端输入命令(如果已安装,可跳过):
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.2 安装 dnsmasq服务,在终端输入安装命令:
brew install dnsmasq
二:修改配置文件
2.1 编辑配置文件
sudo vim /usr/local/etc/dnsmasq.conf
2.2 修改以下地方(去掉前面的#号注释)
no-resolv
no-poll
listen-address=127.0.0.1,192.168.0.103(后面这个ip是你自己mac的ip地址)
addn-hosts=/etc/dnsmasq.hosts
cache-size=2048
总共有5处改动
2.3 编辑hosts文件(此文件就是你想修改手机的hosts文件)
sudo vim /etc/dnsmasq.hosts
然后输入你想要的hosts信息,格式是和 mac的 hosts文件格式是一致的。
三:启动dnsmasq服务
3.1 启动命令:
sudo brew services start dnsmasq
3.2 重启命令:
sudo brew services restart dnsmasq
3.3 停止命令:
sudo brew servicesstop dnsmasq
四:iPhone配置dns服务
我先是使用的 iPhone12(iOS 15.2.1) 进行配置:设置->无线局域网->点击你连接的wifi后面的蓝色感叹号->往下滑动找到DNS,然后点击(默认是自动)->进入之后,选择手动,添加服务器,输入你的 mac ip地址(这里把默认的地址可以删掉)。
我配置完之后,是没有生效的,我又仔细的检查了一遍上面的步骤,没有出错。然后自己就很奇怪,为什么没有生效。
接下来我找了另一台设备 iPhone6(iOS 12.5.5) 进行配置,一切OK。
五:总结
- 在方法一中(Charles配置方案),使用 iPhone12(iOS 15.2.1) 进行配置,是不OK的。
- 在方法二中(dnsmasq服务方案),使用 iPhone12(iOS 15.2.1) 进行配置,是不OK。后来使用 iPhone6(iOS 12.5.5)是OK的。
- 之后我又在方法一中使用 iPhone6(iOS 12.5.5)进行配置,是不OK。
方案\设备 | iPhone12(iOS 15.2.1) | iPhone6(iOS 12.5.5) |
---|---|---|
Charles配置方案 | 不OK | 不OK |
dnsmasq服务方案 | 不OK | OK |
希望这边文章对大家有所帮助,如遇到一些新的配置成功的场景也请评论告诉我,tks。