一、在终端中安装Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
二、安装dnsmasq
brew install dnsmasq
cd $(brew --prefix)
mkdir etc
cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
三、dnsmasq设置
1.dnsmasq.conf设置(/usr/local/etc/dnsmasq.conf)
注:在文件夹中找到dnsmasq.conf和resolv.dnsmasq.conf以进行下面的设置。设置的时候前面的#去掉,以解开注释
interface=en0
interface=en1
这两个网络端口,第一个是以太网端口,第二个是WIFI端口,需要查询电脑端口(ifconfig),status: active...这样的即是端口。
//resolv-file=(resolv.dnsmasq.conf在电脑中的地址)
resolv-file=/usr/local/etc/resolv.dnsmasq.conf
strict-order
interface=en0
interface=en1
listen-address=127.0.0.1,192.168.2.1(共享无线热点的网关IP),10.0.1.242(本机对外局域网IP)--之前管用,现在用下面的
listen-address=0.0.0.0
2.resolv.dnsmasq.conf设置(该文件需要移至/etc目录下,如果没有可以直接创建一个,下面的两行为内容)
nameserver 202.106.0.20
nameserver 8.8.8.8
3.禁用 Mac OS X 10.11 El Capitan 的系统完整性保护
Mac OS X 10.11 El Capitan 系统默认开启了完整性保护(System Intregrity Protection,SIP),所以即使是root帐户也无法修改系统目录中的文件,如/System/Library/LaunchDaemons/ssh.plist。如果需要修改受保护的文件,需要禁用保护功能,步骤如下:
· 重启,并按住 CMD + R 进入 Recovery Mode
· 打开 Utilities → Terminal
· 执行命令 csrutil disable
· 再次重启系统,此时的系统已经禁用SIP
// 清DNS缓存
sudo killall -HUP mDNSResponder
// 关闭系统dns服务
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
// 重启dnsmasq
sudo brew services restart dnsmasq
// 开启系统dns (不打开则Safari无法上网)
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
四、开启、关闭服务
· 开启服务
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
· 重启服务
sudo brew services restart dnsmasq
· 关闭服务
sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
五、测试是否生效
在终端中输入命令
sudo ps -ef | grep dns
若显示下面第一行内容则表示设置成功
六、有线网卡和无线网卡的配置
有线网卡和无线网卡的DNS手动设置均设置为127.0.0.1
有线网卡
无线网卡
七、启动热点即可使用
感谢David dai的教学
原文(https://daviddai1982.github.io/2016/12/28/MOBILE-INNER-NETWORK-TEST-IN-MACOS/ )
参考(http://www.tuicool.com/articles/bUn2Uz ),里面有dnsmasq.conf文件里面的中英文对照说明
参考(https://blog.reohou.com/configure-system-integrity-protection-in-os-x-el-capitan/ )
本文只做参考,若有出错,可自行解决。