A menudo tengo la necesidad de conectarme a dispositivos directamente a través del puerto ethernet de mi MacBook.
Cuando estoy conectado a una red inalámbrica, puedo compartir mi conexión a ethernet. Sin embargo, el segundo, pierdo la conexión inalámbrica, pierdo la conectividad con los dispositivos.
Puedo configurar una IP estática tanto en la MacBook como en el dispositivo, pero esto no es muy fácil porque todavía tengo que hacer una conexión inicial para configurar la IP estática.
¿Hay alguna forma de configurar un servidor DHCP en el puerto ethernet que funcione incluso si no estoy conectado a una red?
Basado en mi respuesta aquí: Usando Server 5.0.15 para compartir Internet SIN compartir Internet, brindo la posibilidad de compartir Internet con PF y dnsmasq (es decir, sin el servidor OS X de Apple):
Para que NAT funcione sin usar Internet Sharing, debe usar una regla pf y crear una plist para habilitar el reenvío y cargar la regla pf. Además, debe configurar un servidor DNS/DHCP: dnsmasq .
A continuación, asumo en0: la interfaz conectada a Internet o un enrutador y en1: la interfaz conectada a la LAN. El enrutador tiene la IP 192.168.0.1 y la máscara de red 255.255.255.0.
Úselo ifconfig
para obtener los nombres de los dispositivos.
Prepare la puerta de enlace de Mac:
Configure las dos interfaces en0 y en1 con IP fijas y máscaras de red
Ejemplo:
en0: IP: 192.168.0.2 Máscara de red: 255.255.255.0 Puerta de enlace: 192.168.0.1 DNS: 8.8.8.8 y 127.0.0.1 Dominios de búsqueda: home.org
en1: IP: 192.168.1.1 Máscara de red: 255.255.255.0
Deshabilite la protección de integridad del sistema si está instalado El Capitán
Instalar dnsmasq:
brew install dnsmasq
Instalar y configurar 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
abre /usr/local/etc/dnsmasq.conf con un editor y modifica al menos las siguientes líneas:
~ 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
Puede configurar mucho más, simplemente verifique el archivo de configuración y sus descripciones.
sudo brew services start dnsmasq
sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
Cree un archivo llamado nat-rules en /private/etc/ con el siguiente contenido
nat on en0 from en1 to any -> (en0)
Cree un script de shell llamado nat-pf.sh que permita reenviar y cargar la regla pf. Lo guardé en /usr/local/bin:
#!/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
Cree un plist llamado org.user.natpf.plist con el siguiente contenido y guárdelo en /Library/LaunchDaemons/ para ejecutar el script de shell anterior al inicio:
<?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>
Los tres archivos necesitan una línea final vacía, así que no copie simplemente el código o las líneas anteriores.
Modificar la propiedad y los modos de archivo:
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
Cargue el demonio de lanzamiento:
sudo launchctl load /Library/LaunchDaemons/org.user.natpf.plist
Reinicie su puerta de enlace Mac. Si todo funciona bien, vuelva a habilitar SIP.
El archivo /tmp/org.user.natpf.stderr contiene mensajes de error. Puede agregar una clave similar al archivo /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist para obtener posibles mensajes de error:
...
<key>StandardErrorPath</key>
<string>/tmp/homebrew.mxcl.dnsmasq</string>
<key>StandardOutPath</key>
<string>/tmp/homebrew.mxcl.dnsmasq</string>
...
Prepare su enrutador de Internet (si tiene uno)
Prepara tu Frambuesa
Después de configurar todo con éxito, debe tener una LAN confiable con NAT, DHCP y DNS. Incluso puede ingresar ping raspberry
con un resultado adecuado.
Si tiene problemas, deje un comentario.
klanomath
klanomath
Alano
klanomath
Alano
Skyler 440