¿Cómo puedo habilitar el uso compartido de Internet sin usar la GUI o AppleScript?

2

por alguna extraña razón, la pestaña de preferencias de uso compartido se bloquea (es una historia larga y parece que no hay una buena solución para ella, está buscando un objeto ui que ya no existe).

De todos modos, quiero habilitar el uso compartido de Internet para compartir la conexión a Internet de mi macbook con mi iPad, pero no puedo encontrar una manera de hacerlo sin el gui o el script de Apple (que básicamente se llama gui).

El problema es que necesito tanto configurar (1) como (2) ejecutar el demonio para compartir Internet. Ejecutar el demonio es fácil, pero no puedo configurarlo.

Hasta ahora estoy pensando que necesito 1- habilitar el enrutamiento 2- ejecutar natd 3- asegurar que el firewall esté configurado correctamente 4- hacer una red inalámbrica de igual a igual en wifi. Otra opción es usar sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist , el problema es que necesito al menos un archivo .plist válido de Snow Leopard para que esto funcione.

Otra solución que probé es usar una máquina virtual (uso una máquina virtual de Ubuntu en Parallels) para compartir la conexión. Funciona pero es demasiado trabajo.

(En caso de que se esté preguntando, cuando hago clic en shring en la pestaña de preferencias, se bloquea y en la consola aparece un error como "Clase desconocida 'AppleSharing_NatManager' usando 'NSObject' en su lugar")

¿Algún comentario?

    
pregunta Ali 12.04.2011 - 16:05

4 respuestas

0

Gracias a @Austin y otros, ¡finalmente resolví el problema! Pensé, maldita sea, esta es una caja de Unix, ¡debería poder averiguar qué está pasando! Encontré otra máquina Snow Leopard en el trabajo que nunca tuvo activada la Conexión compartida y en una terminal corrí:
touch now && sudo find -x / -newer now

y obtuve una breve lista de archivos que siempre se muestran (índices de Spotlight, log en / private / log y si está usando FileVault un montón de paquetes dispersos encriptados)

luego habilité el uso compartido de Internet y esta vez ejecuté:     %código% Obviamente sin el "toque ahora". Resulta que, aparte de un montón de archivos de registro y otra basura, hay una mano llena de archivos que se modifican. Los copié en mi máquina y modifiqué los nombres de la interfaz y algunos otros nombres de host y direcciones IP y cosas por el estilo. El problema se produjo con sudo find -x / -newer now ; allí hay una clave de servicio principal que está configurada en un UUID y es diferente en cada máquina que probé (2 máquinas en realidad) y no funciona si solo se copia desde una máquina a siguiente.

* SI ESTÁ EN UNA PRISIÓN, LEA ESTA PARTE *

Desde el principio evité volver a instalar mi sistema operativo porque tenía tantas instalaciones y configuraciones que no quería perder. Resultó que si usa el DVD original que viene con su máquina y reinstala su sistema operativo TODAS SUS APLICACIONES, DIRECTORIO DE INICIO, modificaciones personalizadas, instalaciones de puertos y fink mac, preferencias, montajes de red, ubicaciones de red, herramientas de desarrollador, TODO ESTÁ CONSERVADO. ¡PERO REINSTALA LOS COMPONENTES BÁSICOS DEL SISTEMA que corrigen el panel de intercambio de preferencias!

    
respondido por el Ali 07.05.2011 - 03:20
2

La lista que otros han mencionado ( /System/Library/LaunchDaemons/com.apple.InternetSharing.plist ) nunca parece cambiar, independientemente del estado de la conexión compartida, al menos bajo Snow Leopard.

Creo que la respuesta se encuentra en algún lugar en /usr/libexec/InternetSharing y /etc/boopd.plist .

Primero, intenta ejecutar:

sudo /usr/libexec/InternetSharing -d

Probablemente verá mensajes como los siguientes:

InternetSharing[40307]: InternetSharing starting

/etc/bootpd.plist is empty/missing

InternetSharing[40307]: no primary service specified, exiting

Resulta que /etc/bootpd.plist se crea cuando se inicia el uso compartido de Internet desde el panel de preferencias de uso compartido, y se elimina cuando se desactiva el uso compartido de Internet.

Si te sientes aventurero, puedes intentar crear manualmente el archivo plist. Permití el uso compartido de Internet con Ethernet compartido a AirPort y copié el texto del archivo /etc/bootpd.plist resultante en un pastebin aquí: enlace

Esta lista no contiene todas las configuraciones necesarias (por ejemplo, SSID para la conexión inalámbrica compartida), así que supongo que no funcionará por sí sola. Todavía estoy buscando las otras configuraciones y actualizaré esta respuesta si las encuentro. (Es posible que algunos se pasen como parámetros a /usr/libexec/InternetSharing , pero no puedo encontrar ninguna documentación al respecto).

Una vez que haya creado el archivo plist, intente ejecutar sudo /usr/libexec/InternetSharing -d nuevamente. Es posible que podamos solucionar este error por vez. En este punto, es realmente un ejercicio académico, ya que sería mucho más fácil volver a instalar el sistema operativo para solucionar el problema del panel de preferencias. ;]

Si por algún milagro comienza, creo que /usr/libexec/InternetSharing -q dejará de compartir.

Jugar con los archivos de su sistema siempre es algo riesgoso, así que asegúrese de tener una copia de seguridad reciente de sus archivos importantes (recomiendo Dropbox ).

    
respondido por el Austin 02.05.2011 - 08:47
1

Para solucionar el problema del UUID, puede buscar el UUID de la máquina con system_profiler | grep 'Hardware UUID' y actualizar el archivo.

Esto es lo que hice cuando tuve que agarrar una copia de /Library/Preferences/SystemConfiguration/com.apple.nat.plist de otra Mac cuando noté que mi máquina no la tenía.

A pesar de todo esto, todavía estoy atascado al intentar compartir mi conexión a Internet desde Ethernet al aeropuerto.

Al ejecutar sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist se activan las preferencias de uso compartido de Internet pero con configuraciones incorrectas (uso compartido de un aeropuerto a Ethernet: necesito lo contrario).

A pesar de la solicitud de carga de launchctl, los registros de errores siguen mostrando lo mismo que la salida para sudo /usr/libexec/InternetSharing -d

Oct 14 01:54:39 boatdelight-lm InternetSharing[52015]: InternetSharing starting
Oct 14 01:54:39 boatdelight-lm InternetSharing[52015]: no primary service specified, exiting

He intentado esto con y sin crear manualmente el archivo /etc/bootpd.plist .

    
respondido por el Adriano Castro 14.10.2011 - 11:02
0
man networksetup 

o

man systemsetup 

podría hacerlo.

    
respondido por el chiggsy 13.04.2011 - 20:40

Lea otras preguntas en las etiquetas