我打算在我的 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,但是我遇到了以下问题:
无法从每个 Pi 连接到互联网,因为我已在 OSX 的共享菜单中将互联网连接从 WiFi 共享到以太网端口:
重置 MacBook 后,bootpd.plist 文件将被删除
如能帮助解决上述两个问题,我们将不胜感激!
答案1
据我了解,您的互联网共享可能会干扰您的bootd
配置,特别是考虑到您为 Raspberry π 分配了静态地址。
一旦 dhcp 服务器运行,您就可以为它们创建路由。如果您的 wifi 已开启en1
,并且我们假设您的网关为en1
,172.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 添加永久静态路由 如何实现自动化。