Come posso abilitare la condivisione Internet senza utilizzare la GUI o AppleScript?

2

per qualche strana ragione, la scheda delle preferenze di condivisione si blocca (è una lunga storia e sembra che non ci sia una buona soluzione per questo, sta cercando un oggetto ui che non esiste più).

Comunque, voglio abilitare la condivisione su Internet per condividere la connessione Internet del mio macbook con il mio iPad, ma non riesco a trovare un modo per farlo senza la GUI o lo script Apple (che in pratica chiama la GUI).

Il problema è che ho bisogno di entrambi (1) configurare e (2) eseguire il demone di condivisione Internet. L'esecuzione del daemon è facile ma non riesco a configurarlo.

Finora ho pensato di dover abilitare 1- il routing 2- eseguire natd 3- assicurarsi che il firewall sia configurato correttamente 4- fare una rete wireless peer-to-peer su wifi. Un'altra opzione è usare sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist il problema è che ho bisogno di almeno un file .opist di Snow Leopard valido perché funzioni.

Un'altra soluzione che ho provato è quella di utilizzare una macchina virtuale (io uso una macchina virtuale Ubuntu in Parallels) per fare la condivisione delle connessioni. Funziona ma è troppo lavoro.

(Nel caso ti stia chiedendo, quando faccio clic su Shring nella scheda delle preferenze si blocca e in console ottengo un errore come "Classe sconosciuta 'AppleSharing_NatManager' usando 'NSObject' invece")

Qualche commento?

    
posta Ali 12.04.2011 - 16:05
fonte

4 risposte

0

Grazie a @Austin e ad altri, ho finalmente risolto il problema! Pensavo dannatamente, questa è una scatola Unix, dovrei essere in grado di scoprire cosa sta succedendo! Ho trovato un'altra macchina Snow Leopard al lavoro che non ha mai attivato la condivisione Internet e in un terminale che ho eseguito:
touch now && sudo find -x / -newer now

e ho ricevuto un breve elenco di file che vengono sempre visualizzati (indici spotlight, file di log in / private / log e se si utilizza FileVault un gruppo di pacchetti sparsi crittografati)

quindi ho abilitato la condivisione su Internet e questa volta ho eseguito:     %codice% ovviamente senza il "tocco ora". Si scopre che oltre a un mucchio di file di registro e altra roba di rifiuto ci sono una mano piena di file che vengono modificati. Li ho copiati tutti sulla mia macchina e ho modificato i nomi delle interfacce e pochi altri nomi host e indirizzi IP e cose del genere. Il problema è successo con sudo find -x / -newer now c'è una chiave di servizio primaria lì che è impostata su un UUID ed è diversa su ogni macchina che ho testato (2 macchine in realtà) e non funziona se la copi da una macchina a un'altra successiva.

* SE SEI IN UN HURRY, LEGGI QUESTA PARTE *

Fin dall'inizio ho evitato di reinstallare il mio sistema operativo perché avevo così tante installazioni e configurazioni che non volevo perdere. Si è scoperto che se si utilizza il DVD originale fornito con la macchina e si reinstalla il sistema operativo TUTTE LE APPLICAZIONI, HOME DIRECTORY, le modifiche personalizzate, le porte mac e le installazioni fink, le preferenze, i montaggi di rete, le posizioni di rete, gli strumenti di sviluppo, TUTTI SONO CONSERVATI. MA REINSTALLA I COMPONENTI DEL SISTEMA CORE che risolvono il mio pannello di condivisione delle preferenze!

    
risposta data 07.05.2011 - 03:20
fonte
2

Il plist che altri hanno menzionato ( /System/Library/LaunchDaemons/com.apple.InternetSharing.plist ) non sembra mai cambiare a prescindere dallo stato di Condivisione Internet - almeno in Snow Leopard.

Penso che la risposta stia da qualche parte in /usr/libexec/InternetSharing e /etc/boopd.plist .

Per prima cosa, prova a eseguire:

sudo /usr/libexec/InternetSharing -d

Probabilmente vedrai messaggi come i seguenti:

InternetSharing[40307]: InternetSharing starting

/etc/bootpd.plist is empty/missing

InternetSharing[40307]: no primary service specified, exiting

Si scopre che /etc/bootpd.plist viene creato quando viene avviata la Condivisione Internet dal riquadro Pref Condivisione e viene eliminata quando Internet Sharing è disattivato.

Se ti senti avventuroso, puoi provare a creare manualmente il file Plist. Ho attivato Condivisione Internet con Ethernet condivisa su AirPort e copiato il testo del file /etc/bootpd.plist risultante in un pastebin qui: link

Questo plist non contiene tutte le impostazioni necessarie (ad esempio SSID per la connessione wireless condivisa), quindi suppongo che non funzionerà da solo. Sto ancora cercando le altre impostazioni e aggiornerò questa risposta se le trovo. (È possibile che alcuni vengano passati come parametri a /usr/libexec/InternetSharing , ma su questa non riesco a trovare alcuna documentazione.)

Dopo aver creato il file plist, prova nuovamente a eseguire sudo /usr/libexec/InternetSharing -d . Potremmo riuscire a risolvere questo errore alla volta. A questo punto è davvero un esercizio accademico, in quanto sarebbe molto più semplice reinstallare il sistema operativo per risolvere il problema del riquadro pref. ;]

Se per miracolo si avvia, credo che /usr/libexec/InternetSharing -q interrompa la condivisione.

Lavorare con i file di sistema è sempre un po 'rischioso, quindi assicurati di avere un backup recente dei tuoi file importanti (ti consiglio Dropbox ).

    
risposta data 02.05.2011 - 08:47
fonte
1

Per risolvere il problema UUID, puoi visualizzare l'UUID della macchina con system_profiler | grep 'Hardware UUID' e aggiornare il file.

Questo è quello che ho fatto quando ho dovuto prendere una copia di /Library/Preferences/SystemConfiguration/com.apple.nat.plist da un altro Mac quando ho notato che il mio computer non ce l'aveva.

Nonostante tutto questo sono ancora bloccato nel tentativo di condividere la mia connessione Internet da ethernet ad aeroporto.

L'esecuzione di sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.InternetSharing.plist attiva la GUI delle preferenze di Condivisione Internet ma con impostazioni errate (condivisione da Aeroporto a Ethernet - Ho bisogno del contrario).

Nonostante la richiesta di caricamento launchctl i log degli errori continuano a mostrare lo stesso dell'output per 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

Ho provato questo con e senza creare manualmente il file /etc/bootpd.plist .

    
risposta data 14.10.2011 - 11:02
fonte
0
man networksetup 

o

man systemsetup 

potrebbe farlo.

    
risposta data 13.04.2011 - 20:40
fonte

Leggi altre domande sui tag