Ich muss oft Geräte direkt über den Ethernet-Port meines MacBook verbinden.
Wenn ich mit einem drahtlosen Netzwerk verbunden bin, kann ich meine Verbindung mit Ethernet teilen. Beim zweiten verliere ich jedoch die drahtlose Verbindung, ich verliere die Verbindung zu den Geräten.
Ich kann sowohl auf dem MacBook als auch auf dem Gerät eine statische IP einrichten, aber das ist nicht sehr einfach, da ich noch eine erste Verbindung herstellen muss, um die statische IP einzurichten.
Gibt es eine Möglichkeit, einen DHCP-Server am Ethernet-Port einzurichten, der auch dann funktioniert, wenn ich nicht mit einem Netzwerk verbunden bin?
Basierend auf meiner Antwort hier: Using Server 5.0.15 to share internet WITHOUT internet sharing biete ich eine Möglichkeit, das Internet mit PF und dnsmasq (dh ohne Apples OS X Server) zu teilen:
Damit NAT ohne Internetfreigabe funktioniert, müssen Sie eine pf-Regel verwenden und eine plist erstellen, um die Weiterleitung zu aktivieren und die pf-Regel zu laden. Zusätzlich müssen Sie einen DNS/DHCP-Server einrichten: dnsmasq .
Im Folgenden gehe ich von en0 aus: die mit dem Internet oder einem Router verbundene Schnittstelle und en1: die mit dem LAN verbundene Schnittstelle. Der Router hat die IP 192.168.0.1 und die Netzmaske 255.255.255.0.
Verwenden Sie ifconfig
, um die Gerätenamen abzurufen.
Bereiten Sie das Mac-Gateway vor:
Richten Sie die beiden Schnittstellen en0 und en1 mit festen IPs und Netzmasken ein
Beispiel:
en0: IP: 192.168.0.2 Netzmaske: 255.255.255.0 Gateway: 192.168.0.1 DNS: 8.8.8.8 und 127.0.0.1 Suchdomänen: home.org
en1: IP: 192.168.1.1 Netzmaske: 255.255.255.0
Deaktivieren Sie den Systemintegritätsschutz, wenn El Capitan installiert ist
dnsmasq installieren:
brew install dnsmasq
Einrichten und Konfigurieren von dnsmasq
cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
sudo mkdir -p /usr/local/var/lib/misc
sudo touch /usr/local/var/lib/misc/dnsmasq.leases
Öffnen Sie /usr/local/etc/dnsmasq.conf mit einem Editor und ändern Sie mindestens die folgenden Zeilen:
~ line 144
# 3) Provides the domain part for "expand-hosts"
domain=home.org
~ line 163
# don't need to worry about this.
dhcp-range=192.168.1.50,192.168.1.100,255.255.255.0,12h
~ line 243
# Always give the host with Ethernet address 11:22:33:44:55:66
# the name fred and IP address 192.168.0.60 and lease time 45 minutes
dhcp-host=11:22:33:44:55:66,raspberry,192.168.1.70,12h
**use the proper MAC of your raspberry here**
~ line 536
# This defaults to a sane location, but if you want to change it, use
# the line below.
dhcp-leasefile=/usr/local/var/lib/misc/dnsmasq.leases
Sie können viel mehr konfigurieren - überprüfen Sie einfach die Konfigurationsdatei und ihre Beschreibungen.
sudo brew services start dnsmasq
sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
Erstellen Sie eine Datei namens nat-rules in /private/etc/ mit folgendem Inhalt
nat on en0 from en1 to any -> (en0)
Erstellen Sie ein Shell-Skript namens nat-pf.sh , das die Weiterleitung und das Laden der pf-Regel ermöglicht. Ich habe es in /usr/local/bin gespeichert:
#!/bin/sh
sysctl -w net.inet.ip.forwarding=1
sysctl -w net.inet.ip.fw.enable=1
#disables pfctl
pfctl -d
sleep 1
#flushes all pfctl rules
pfctl -F all
sleep 1
#starts pfctl and loads the rules from the nat-rules file
pfctl -f /private/etc/nat-rules -e
Erstellen Sie eine Plist namens org.user.natpf.plist mit folgendem Inhalt und speichern Sie sie in /Library/LaunchDaemons/, um das obige Shell-Skript beim Start auszuführen:
<?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>Disabled</key>
<false/>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>org.user.natpf</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nat-pf.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/org.user.natpf.stderr</string>
<key>StandardOutPath</key>
<string>/tmp/org.user.natpf.stdout</string>
</dict>
</plist>
Alle drei Dateien benötigen eine abschließende Leerzeile, kopieren Sie also nicht einfach den obigen Code/die Zeilen.
Eigentums- und Dateimodi ändern:
sudo chown root:wheel /private/etc/nat-rules
sudo chown root:wheel /usr/local/bin/nat-pf.sh
sudo chmod 755 /usr/local/bin/nat-pf.sh
sudo chown root:wheel /Library/LaunchDaemons/org.user.natpf.plist
Laden Sie den Start-Daemon:
sudo launchctl load /Library/LaunchDaemons/org.user.natpf.plist
Starten Sie Ihren Gateway-Mac neu. Wenn alles funktioniert, aktivieren Sie SIP erneut.
Die Datei /tmp/org.user.natpf.stderr enthält Fehlermeldungen. Sie können der Datei /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist einen ähnlichen Schlüssel hinzufügen, um mögliche Fehlermeldungen zu erhalten:
...
<key>StandardErrorPath</key>
<string>/tmp/homebrew.mxcl.dnsmasq</string>
<key>StandardOutPath</key>
<string>/tmp/homebrew.mxcl.dnsmasq</string>
...
Bereiten Sie Ihren Internet-Router vor (falls vorhanden)
Bereiten Sie Ihre Himbeere vor
Nachdem Sie alles erfolgreich eingerichtet haben, sollten Sie ein zuverlässiges LAN mit NAT, DHCP und DNS haben. Sie können sogar ping raspberry
mit einem richtigen Ergebnis teilnehmen.
Wenn Sie auf Probleme stoßen, hinterlassen Sie einen Kommentar.
klanomath
klanomath
Allan
klanomath
Allan
Skyler 440