zoukankan      html  css  js  c++  java
  • Mac电脑如何设置DHCP

    通过设置MAC电脑的DHCP服务器可以为局域网内的其它设备自动分配IP地址,还能把物理地址和IP地址绑定起来,限制IP地址的获取。

     
    OS X 10.11或以上版本已内置DHCP服务器软件,即bootpd。通过man bootpd命令即可查看这个命令的用法。
    bootpd启动时可提供2种模式,即DHCP和bootp,但默认情况不开启DHCP而是开启了Bootp服务,所以需要通过bootp -D把DHCP服务打开。
    DHCP的配置包含以下步骤:
    1.准备活动
    2.设置开机启动。通过LaunchDaemon程序设置开机启动。
    3.设置bootpd的运行方式。配置bootpd的2个配置文件bootps.plist和bootptab。bootps.plist用于设置dhcp或者bootp协议的运行方式,而bootptab用于设置地址池。
     
    准备活动
    配置DHCP服务前最重要的事情,就是把本机的DHCP客户端设置成手动获取IP地址的方式,因为DHCP客户端无法从本机的DHCP服务端获取IP地址。配置方法:系统偏好设定->网络->以太网连接->在右边下拉按钮选择手动,再填写ip地址,注意不要与网关地址相同。
     
    设置开机启动
    1)编辑启动脚本。由于OS X10.11(OS X EI Capitan)上首次启用了SIP(System Integrity Protection )模式,所有启动脚本文件都设置了restricted位(通过ls -lO可查看restricted位),这导致即使是root用户也没有权限对这些文件进行任何修改,包括修改内容和文件权限。
    为了修改启动脚本,可先通过以下步骤关闭sip模式:
    a)重启 Mac,听到启动声音后迅速按住 Command+R 键直到 Apple logo 出现,进入 Recovery Mode
    b)点击 Utilities > Terminal
    c)在 Terminal 中输入 csrutil disable,之后回车
    d)重启 Mac
    2)成功关闭sip模式后就可以利用下面的XML代码覆盖系统目录中的启动脚本(/System/Library/LaunchDaemons/bootps.plist).

     

     

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    3.  
      <plist version="1.0">
    4.  
      <dict>
    5.  
      <key>Disabled</key>
    6.  
      <true/>
    7.  
      <key>Label</key>
    8.  
      <string>com.apple.bootpd</string>
    9.  
      <key>Program</key>
    10.  
      <string>/usr/libexec/bootpd</string>
    11.  
      <key>ProgramArguments</key>
    12.  
      <array>
    13.  
      <string>/usr/libexec/bootpd</string>
    14.  
      <string>-Dv</string>
    15.  
      </array>
    16.  
      <key>Sockets</key>
    17.  
      <dict>
    18.  
      <key>Listeners</key>
    19.  
      <dict>
    20.  
      <key>SockFamily</key>
    21.  
      <string>IPv4</string>
    22.  
      <key>SockServiceName</key>
    23.  
      <string>bootps</string>
    24.  
      <key>SockType</key>
    25.  
      <string>dgram</string>
    26.  
      </dict>
    27.  
      </dict>
    28.  
      <key>inetdCompatibility</key>
    29.  
      <dict>
    30.  
      <key>Wait</key>
    31.  
      <true/>
    32.  
      </dict>
    33.  
      </dict>
    34.  
      </plist>

    3)加载启动脚本命令:sudo /bin/launchctl load -w /System/Library/LaunchDaemons/bootps.plist

    4)去除启动脚本命令:sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/bootps.plist


    设置bootpd的运行方式

    1)bootpd有两个配置文件,一个是bootps.plist用于指导dhcp和bootp服务的工作方式,另一个是bootptab,用于设置地址池。(注意,此处的bootps.plist与上一个步骤的plist文件同名,但作用完全不同,前者的目的是设置开机启动bootpd程序,本文件的目地是指导bootpd程序的运行方式)

    2)bootps.plist的路径:/etc/bootps.plist

    3)bootps.plist配置文件内容:

     

    1.  
      <?xml version="1.0" encoding="UTF-8"?>
    2.  
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    3.  
      <plist version="1.0">
    4.  
      <dict>
    5.  
      <key>Subnets</key>
    6.  
      <array>
    7.  
      <dict>
    8.  
      <key>allocate</key>
    9.  
      <true/>
    10.  
      <key>allow</key>
    11.  
      <array>
    12.  
      <string>8C:FA:BA:01:E6:F3</string>
    13.  
      <string>6C:FD:B9:C8:7E:2B</string>
    14.  
      <string>B8:09:8A:83:22:A3</string>
    15.  
      <string>10:dd:b1:c6:b4:37</string>
    16.  
      <string>60:92:17:A2:C2:65</string>
    17.  
      <string>E0:06:E6:1B:AE:A0</string>
    18.  
      <string>E8:8D:28:DF:13:0C</string>
    19.  
      <string>64:09:80:D8:5B:98</string>
    20.  
      <string>b8:98:f7:11:a4:79</string>
    21.  
      <string>70:72:3C:53:CE:BA</string>
    22.  
      <string>00:0a:f5:10:fb:2c</string>
    23.  
      <string>b8:98:f7:aa:1e:0d</string>
    24.  
      <string>28:b2:bd:af:07:62</string>
    25.  
      <string>68:3e:34:4c:ca:cb</string>
    26.  
      <string>9C:44:3D:1E:68:F4</string>
    27.  
      <string>A8:15:4D:F5:4A:AC</string>
    28.  
      <string>68:3e:34:4c:ca:cb</string>
    29.  
      <string>54:EE:75:27:6C:D4</string>
    30.  
      </array>
    31.  
      <key>dhcp_domain_name</key>
    32.  
      <string>ns1.drugsales.com</string>
    33.  
      <key>dhcp_domain_name_server</key>
    34.  
      <string>192.168.1.1</string>
    35.  
      <key>dhcp_router</key>
    36.  
      <string>192.168.1.1</string>
    37.  
      <key>lease_max</key>
    38.  
      <integer>86400</integer>
    39.  
      <key>lease_min</key>
    40.  
      <integer>86400</integer>
    41.  
      <key>name</key>
    42.  
      <string>vulcan</string>
    43.  
      <key>net_address</key>
    44.  
      <string>192.168.1.0</string>
    45.  
      <key>net_mask</key>
    46.  
      <string>255.255.255.0</string>
    47.  
      <key>net_range</key>
    48.  
      <array>
    49.  
      <string>192.168.1.100</string>
    50.  
      <string>192.168.1.200</string>
    51.  
      </array>
    52.  
      </dict>
    53.  
      </array>
    54.  
      <key>bootp_enabled</key>
    55.  
      <false/>
    56.  
      <key>detect_other_dhcp_server</key>
    57.  
      <integer>1</integer>
    58.  
      <key>dhcp_enabled</key>
    59.  
      <array>
    60.  
      <string>en0</string>
    61.  
      </array>
    62.  
      <key>reply_threshold_seconds</key>
    63.  
      <integer>0</integer>
    64.  
      </dict>
    65.  
      </plist>
    4)bootptab文件内容(路径也是/etc/bootptab):

     

    1.  
      %%
    2.  
      # machine entries have the following format:
    3.  
      #
    4.  
      # hostname hwtype hwaddr ipaddr bootfile
    5.  
      vulcan-macmini 1 10:dd:b1:c6:b4:37 192.168.1.2
    6.  
      vulcan-iphone5s 1 60:92:17:A2:C2:65 192.168.1.100
    7.  
      tangling-pc 1 E0:06:E6:1B:AE:A0 192.168.1.101
    8.  
      tangling-iphone5 1 E8:8D:28:DF:13:0C 192.168.1.102
    9.  
      tangMum-xiaomi 1 64:09:80:D8:5B:98 192.168.1.103
    10.  
      iPad3 1 8C:FA:BA:01:E6:F3 192.168.1.104
    11.  
      vulcan-huawei 1 70:72:3C:53:CE:BA 192.168.1.105
    12.  
      vulcan-u2 1 00:0a:f5:10:fb:2c 192.168.1.106
    13.  
      vulcan-u4 1 b8:98:f7:aa:1e:0d 192.168.1.107
    14.  
      vulcan-win8-wifi 1 28:b2:bd:af:07:62 192.168.1.108
    15.  
      vulcan-win8-eth 1 54:EE:75:27:6C:D4 192.168.1.109
    16.  
      mum-mobile 1 d0:2d:b3:8e:48:4c 192.168.1.110
    17.  
      vulcan-meilan 1 68:3e:34:4c:ca:cb 192.168.1.111
    18.  
      android-tvbox 1 9C:44:3D:1E:68:F4 192.168.1.112
    19.  
      yangzhenxue-iphone5s 1 B8:09:8A:83:22:A3 192.168.1.113
    20.  
      yangzhenxue-hasee 1 6C:FD:B9:C8:7E:2B 192.168.1.114
    5)手动启动bootpd的命令:bootpd -Ddv,D表示要启动DHCP模式,d表示前台运行并把调试信息重定向到标准输出,v表示输出更加全面的调试信息。

    6)使用苹果系统自带的“控制台”工具程序可以查看bootpd的运行日志。

    7)bootpd的日志文件输出到/var/log/system.log文件中。

     

    如果输出以下调试信息,恭喜你,这说明bootpd的启动是没有问题的:

     

    Jan  4 00:05:16 bogon bootpd[3185]: server starting

    Jan  4 00:05:16 bogon bootpd[3185]: re-reading /etc/bootptab

    Jan  4 00:05:16 bogon bootpd[3185]: Loaded 16 entries from bootptab (0 bad)

    Jan  4 00:05:16 bogon bootpd[3185]: server name bogon

    Jan  4 00:05:16 bogon bootpd[3185]: interface en0: ip 192.168.1.2 mask 255.255.255.0

     

    常见错误信息:

    1.bootpd[1091]: bind call failed: Permission denied

    2.bootpd[1290]: bind call failed: Address already in use,说明地址已经被绑定,很可能有bootpd的另一个实例在运行。

  • 相关阅读:
    Vue单页面应用
    MVVM模式理解
    Ajax原生四大步骤
    Vue 全家桶介绍
    原生js的dom操作
    vs2015+opencv3.3.1+ maxflow-v3.01 c++实现Yuri Boykov 的Interactive Graph Cuts
    c++迭代递归实现汉诺塔(5种迭代方法满足你)
    opencv3.3.1+vs2015+c++实现直接在图像上画掩码,保存掩码图片
    声明函数指针、回调函数、函数对象------c++程序设计基础、编程抽象与算法策略
    C++/C语言的标准库函数与运算符的区别new/delete malloc/free
  • 原文地址:https://www.cnblogs.com/it-tsz/p/9496072.html
Copyright © 2011-2022 走看看