macOS根据Wi-Fi的自动化
本文最后更新于 2024年8月1日 下午
macOS根据Wi-Fi的自动化
作用
无法修改路由器时通过自动修改自己电脑的hosts
文件实现域名访问局域网的不同地址。
比如我在本地搭建了jellyfin服务器然后穿透到公网,这样就可以实现在局域网时访问域名走内网,其他时候走公网
步骤
在设置中添加网络位置
-
```shell curl -L https://github.com/tippye/locationchanger/raw/master/locationchanger.sh | bash
1
2
3
4
5
6
2. `locationchanger`将会放到[/usr/local/bin](file:///usr/local/bin)目录中
3. ```shell
mkdir ~/.locations
sudo nano ~/.locations/locations.conf内容填写格式为
1
2wifi1=位置1
wifi2=位置2例:
1
2
3H3C_ALi=办公室
H3C_ALi_5G=办公室
Xiaomi_B811=宿舍日志文件存放在
~/Library/Logs/LocationChanger.log
1
tail -f ~/Library/Logs/LocationChanger.log
或者在控制台应用中也可以找到
到这里切换Wi-Fi就可以自动切换网络位置,如果需要执行脚本可以继续往下
比如切换到
实验室
场景时我希望修改hosts文件,那么就可以在~/.locations中创建一个文件实验室
(文件没有后缀,文本编辑创建的文件记得删掉后缀)1
sudo nano ~/.locations/实验室
在里面写入
1
2
3
4#!/usr/bin/env bash
exec 2>&1
# 这下面是要自信的操作
cp ~/auto_hosts/hosts_sys /etc/hosts切换到未配置的Wi-Fi会切换到
Automatic
场景,所以同样写一个Automatic
文件即可实现离开网络时执行的操作- 有个小问题是切换到其他非Automatic场景就不会执行离开网络的操作,有需要的可以每个场景文件都写一遍离开场景操作或者修改提供的脚本
这几个文件保存后会立即生效,不需要重启
修改hosts
我这里写了两个hosts文件放在~/auto_hosts
,只需要执行cp hosts1 /etc/hosts
就可以实现修改hosts
记得保存原本的hosts备份
直接使用cp
修改hosts会因为权限问题无法执行,我给了/etc/hosts
777权限,目前没有其他好方法
图片来自文心一格