6

Я хочу подключить Ethernet-порт к моему сетевому порту MacBook, через который у меня будет несколько подключенных Raspberry Pi, получающих свои IP-адреса через DHCP, на каждом из них будет работать VNC-сервер для удаленного доступа, и я хочу, чтобы мой интернет был доступен для них из Wi-Fi моего MacBook.

Для этого я использовал встроенный в OSX DHCP-сервер следующим образом:

  • Отредактированный bootpd.plist в /etc /, это настраивает сервер DHCP для сети 192.168.2.0

    <?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 /, он назначает статические IP-адреса Raspberry Pi

%%
# hostname      hwtype  hwaddr              ipaddr          bootfile
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:
alias dhcp-start='sudo /bin/launchctl load -w /System/Library/LaunchDaemons/bootps.plist'
alias dhcp-stop='sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/bootps.plist'

Отлично, я могу подключиться к каждому Pi удаленно, но у меня есть следующие проблемы:

  1. Невозможно подключиться к Интернету с каждого Pi, поскольку я поделился интернет-соединением от WiFi до порта Ethernet в меню общего доступа OSX:

    Общий Интернет в OSX

  2. После перезагрузки MacBook файл bootpd.plist удаляется

Любая помощь в решении вышеуказанных двух вопросов приветствуется!

1 ответ1

2

Насколько я понимаю, ваш общий доступ к Интернету может мешать вашей конфигурации bootd , особенно если учесть, что вы назначаете статические адреса Raspberry πs.

После запуска сервера dhcp вы можете создать для них маршруты. Если ваш Wi-Fi на 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, чтобы узнать, как его автоматизировать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .