Con un po 'di fortuna, c'è una soluzione facile per questo:
-
curl ifconfig.me
per trovare il tuo indirizzo IP esterno -
sudo lsof -i4 -n | grep LISTEN | grep \*
per trovare processi in ascolto di connessioni da altre macchine -
telnet EXTERNAL_IP PORT
onc -v EXTERNAL_IP PORT
per vedere se il resto del mondo può raggiungerlo, non solo altre macchine sulla rete
Sul mio sistema 10.9.4 completamente rattoppato con il firewall acceso, possono farlo. Questo mi ha sorpreso. In qualche modo avevo deciso che le applicazioni che necessitavano del mondo per parlare con loro richiedevano OS X per gestire NAT-PNP o farlo da soli. Non mi è mai venuto in mente che OS X potesse farlo per ogni porta aperta non vincolata a 127.0.0.1
.
Raccogli Dropbox , nonostante non sia colpa loro per sé ...
$ sudo lsof -i4 -n | grep LISTEN | grep \* | grep Dropbox
Dropbox 361 userid 32u IPv4 0x... 0t0 TCP *:17500 (LISTEN)
$ curl ifconfig.me
93.184.216.119
$ telnet 93.184.216.119 17500
Trying 93.184.216.119...
Connected to example.com.
Escape character is '^]'.
Dropbox non è accessibile solo ad altre macchine sulla tua rete: tutto il mondo può batterlo. Che ne dici di iTunes?
$ sudo lsof -i4 -n | grep LISTEN | grep \* | grep iTunes
iTunes 8950 userid 29u IPv4 0x... 0t0 TCP *:55732 (LISTEN)
iTunes 8950 userid 31u IPv4 0x... 0t0 TCP *:daap (LISTEN)
$ telnet 93.184.216.119 daap
Trying 93.184.216.119...
Connected to example.com.
Escape character is '^]'.
Il mondo intero potrebbe essere in grado di vederti come Nickelback.
TextExpander ? Sì. Il mondo intero può provare a ottenere i tuoi frammenti. AirServer ? Ora so come ho fatto a scattare strane foto quella volta. (Buono su di loro per aggiungere il supporto del passcode.) Quello script Node.js di esempio che ascolta 0.0.0.0
invece di 127.0.0.1
? Anche quello. Se hai detto a OS X che il software poteva ascoltare, può ascoltarlo.
Hai selezionato "Consenti automaticamente al software firmato di ricevere connessioni in entrata"? Aggiungi tutti quelli alla lista, anche.
Mi piacciono le altre macchine sulla mia rete domestica che parlano al mio portatile per ottenere i frammenti di TextExpander e condividere i contenuti DropBox più velocemente. Mi piace il mio iPad che parla al mio portatile per visualizzare i miei diagrammi per i miei colleghi. Non sono entusiasta del mondo intero che parla con le stesse porte aperte.
Come faccio a convincere OS X a non chiedere al mio router di perforare ogni singola porta aperta?