Come posso aprire una porta specifica nel firewall? Non posso usare "consenti connessioni dall'applicazione" perché voglio aprire la porta per Jenkins, che non è nell'elenco ...
OS X Mavericks di Apple contiene tre firewall. Innanzitutto, Application Level Firewall che può essere configurato utilizzando le impostazioni di sistema. Ma c'è anche ipfw, un firewall per il filtraggio dei pacchetti come netfilter / iptables su GNU / Linux e pf (FreeBSD / OpenBSD).
Puoi configurare ipfw usando la riga di comando, o usando un front-end grafico come free / libre waterroof .
Potresti iniziare con un comando ipfw come:
sudo ipfw add 31010 allow tcp from any to any dst-port 8080
Ho avuto lo stesso problema in OS X Yosemite (10.10.3). Trovato questo post del blog che fornisce istruzioni chiare. Non possiamo più usare ipfw, dato che è deprecato. Invece, usa pfctl, che sfortunatamente manca di un bel modo da riga di comando per dirgli di aprire una porta. Invece, è necessario:
# Open port 8080 for TCP on all interfaces
pass in proto tcp from any to any port 8080
sudo pfctl -f /etc/pf.conf
Se hai bisogno di aprire una porta udp, modifica tcp
a udp
, se ne hai bisogno, aggiungi una seconda linea. Ulteriori dettagli possono essere trovati in man pf.conf
.
Verifica inoltre che il tuo server sia in ascolto sull'interfaccia effettiva a cui desideri accedere (o su tutte le interfacce, utilizzando 0.0.0.0
o ::0
), non localhost ( 127.0.0.1
o ::1
).
Ecco una copertina piuttosto che richiedere all'utente di scherzare con Vim. Utile per l'automazione.
sed -i '' -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
O un'alternativa per gli utenti Linux
sed -i -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf
Assicurati di cambiare 8080
nell'esempio con qualsiasi cosa tu abbia in mente. Scambia tcp con udp se lo desideri.