如何在 MacBook 的以太网端口上成功运行 DHCP 服务器?

如何在 MacBook 的以太网端口上成功运行 DHCP 服务器?

我打算在我的 MacBook 以太网端口上安装一个以太网交换机,通过该交换机连接几个 Raspberry Pi,通过 DHCP 获取它们的 IP,每个 Raspberry Pi 上都会运行一个 VNC 服务器用于远程访问,而且我希望通过我的 MacBook 的 WiFi 连接将我的互联网共享给它们。

为了做到这一点,我使用了 OSX 的内置 DHCP 服务器,如下所示:

  • 编辑 /etc/ 中的 bootpd.plist,为 192.168.2.0 网络配置 DHCP 服务器

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>Subnets</key>
    <array>
        <dict>
        <key>_creator</key>
        <string>com.apple.InternetSharing</string>
        <key>allocate</key>
        <true/>
        <key>dhcp_domain_name_server</key>
            <array>
                <string>192.168.2.1</string>
            </array>
        <key>dhcp_router</key>
            <string>192.168.2.1</string>
        <key>lease_max</key>
            <integer>36000</integer>
        <key>lease_min</key>
            <integer>36000</integer>
        <key>name</key>
            <string>192.168.2/24</string>
        <key>net_address</key>
            <string>192.168.2.0</string>
        <key>net_mask</key>
            <string>255.255.255.0</string>
        <key>net_range</key>
            <array>
                <string>192.168.2.2</string>
                <string>192.168.2.254</string>
            </array>
        </dict>
    </array>
    <key>bootp_enabled</key>
        <false/>
    <key>detect_other_dhcp_server</key>
        <true/>
    <key>dhcp_enabled</key>
        <array>
            <string>bridge0</string>
        </array>
    <key>use_server_config_for_dhcp_options</key>
        <false/>
    </dict>
    </plist>
    
  • 在 /etc/ 中编辑/创建 bootptab,为 Raspberry Pi 分配静态 IP

%%
# 主机名 hwtype hwaddr ipaddr 启动文件
Raspi1 1 aa:bb:cc:dd:ee:f1 192.168.2.2
Raspi2 1 aa:bb:cc:dd:ee:f2 192.168.2.3
Raspi3 1 aa:bb:cc:dd:ee:f3 192.168.2.4
Raspi4 1 aa:bb:cc:dd:ee:f4 192.168.2.5
  • 使用以下命令运行/停止 DHCP 服务器,在我的 ~/.bash_profile 中创建一个别名:
别名 dhcp-start='sudo /bin/launchctl load -w /System/Library/LaunchDaemons/bootps.plist'
别名 dhcp-stop='sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/bootps.plist'

很好,我能够远程连接到每个 Pi,但是我遇到了以下问题:

  1. 无法从每个 Pi 连接到互联网,因为我已在 OSX 的共享菜单中将互联网连接从 WiFi 共享到以太网端口:

    OSX 中的 Internet 共享

  2. 重置 MacBook 后,bootpd.plist 文件将被删除

如能帮助解决上述两个问题,我们将不胜感激!

答案1

据我了解,您的互联网共享可能会干扰您的bootd配置,特别是考虑到您为 Raspberry π 分配了静态地址。

一旦 dhcp 服务器运行,您就可以为它们创建路由。如果您的 wifi 已开启en1,并且我们假设您的网关为en1172.16.0.1您可以执行以下操作

sudo route add 192.168.2.0/24 172.16.0.1

这将导致来自到的数据包192.168.2.0通过192.168.2.255你的 wifi 网关。

例如,为 Mac OS X 添加永久静态路由 如何实现自动化。

相关内容