mac单网卡多IP配置以及静态路由设置,重启自动添加脚本

时间:2024-03-07 06:57:25

首先介绍下网络结构,有多网段的童鞋可以参考

外网:无线 192.168.1/24
内网-本地局域网:10.10.4/24 可上公网
内网-OA(办公):192.168.0/24 从一台双网卡PC共享出来
本地局域网及OA双网卡机器全部接在一台交换机上,即有两个内网网段

下面是ML的单网卡多IP配置:(本人RMBP用的是Thunderbolt Ethernet)
1、添加多个位置
【系统偏好设置】-【网络】-【位置】-下拉菜单【编辑位置】-左下角【+】-【名称】(本人设置为:单位)-完成

2、添加多IP
还是在网络设置-位置选【单位】-左下角【+】-接口选【Thunderbolt Ethernet】-服务名称自行编辑(本人设置为:OA)-创建
<ignore_js_op>


3、设置IP
【Thunderbolt Ethernet】:IPv4:手动 IP地址:10.10.4.x 掩码:255.255.255.0 路由器:10.10.4.1 DNS:不出公网无需配置
【OA】:IPv4:手动 IP地址:192.168.0.x 掩码:255.255.255.0 路由器:192.168.0.1 DNS:不出公网无需配置
【Wi-Fi】:IPv4:手动 IP地址:192.168.1.x 掩码:255.255.255.0 路由器:192.168.1.1 DNS:公网DNS
<ignore_js_op>

<ignore_js_op>

<ignore_js_op>
   

4、设置HOSTS文件
由于OA网段是一台双网卡PC共享的,无法进行DNS,好在OA的网址不多,全部写入HOSTS文件
打开【Finder】-前往【前往文件夹...】--【/etc】
编辑HOSTS文件:
# 注释
10.1.x.x        xxx.xxx.xx
10.9.x.x        xxx.xxx.xxx
10.221.x.x    xxx.xxx.xxx
# Mail 服务器
172.x.x.x      mail.x.x
修改HOSTS涉及到权限,可用多种方法自行处理

5、设置路由
由于在HOSTS中设置了4个网段都要访问OA,所以需要添加4条静态路由指向OA网段,即192.168.0.1
手工添加命令如下:
route -n add -net 10.1.0.0/16 192.168.0.1
route -n add -net 10.9.0.0/16 192.168.0.1
route -n add -net 10.221.0.0/16 192.168.0.1
route -n add -net 172.x.x.x/32 192.168.0.1
ML中添加路由需要root权限,可以sudo,也可以开启root用户

6、制作重启自动添加登录脚本
搜索论坛及度娘,发现写到过一种在【资源库】-【startupitems】下添加脚本的方式实现每次重启自动添加的方法,但是在ML中测试无效,可能是由于权限的问题,上面提到ML中添加路由需要root权限,但启动项只带登录用户的权限,所以无法添加。
但是总是有办法的,好在MAC OS X自带了【Automator】工具,下面就介绍下怎样使用【Automator】实现重启自动添加路由
打开【launchpad】-【其他】-【Automator】
选取文稿类型:应用程序
左边点选【资源库】-【实用工具】
列表中选取【运行AppleScript】
<ignore_js_op>
 

右边的脚本框中如下编辑脚本:
on run {input, parameters}
    
    do shell script &quot;route -n add -net 10.1.0.0/16 192.168.0.1&quot; user name &quot;你登陆系统的用户名&quot; password &quot;你登陆系统的密码&quot; with administrator privileges
    do shell script &quot;route -n add -net 10.9.0.0/16 192.168.0.1&quot; user name &quot;你登陆系统的用户名&quot; password &quot;你登陆系统的密码&quot; with administrator privileges
    do shell script &quot;route -n add -net 10.221.0.0/16 192.168.0.1&quot; user name&quot;你登陆系统的用户名&quot; password &quot;你登陆系统的密码&quot; with administrator privileges
    do shell script &quot;route -n add -net 172.x.x.x/32 192.168.0.1&quot; user name &quot;你登陆系统的用户名&quot; password &quot;你登陆系统的密码&quot; with administrator privileges

    return input
end run
然后保存为OA_Route.app
<ignore_js_op>
  
最后,打开【系统偏好设置】-【用户与群组】-选【登录项】,将刚才保存的OA_Route.app拖到列表中,并勾选隐藏
<ignore_js_op>

重启,打开终端,输入netstat -rn 看看是不是已经自动添加了呢~
<ignore_js_op>


已补图!
另外多网络环境下存在多个default路由,在【网络偏好设置】-点左下方【齿轮】-【服务顺序设置】,排序后,即可按照排序的顺序优先选择默认路由!
如上图我把Wi-Fi排在第一,查看路由时,192.168.1.1就优先于10.10.4.1~