Como posso abrir uma porta específica no meu sistema macOS Yosemite (10.10)?

2

Eu tenho um servidor baseado em Java (arquivo jar) e está sendo executado na porta 8080.

Ele está funcionando bem no meu localhost , mas não consigo acessá-lo por meio de outras redes

Eu acho que é um problema de firewall. Primeiro, tentei socketfilterfw :

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add 
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp 

hellomac# sudo /usr/libexec/ApplicationFirewall/socketfilterfw --list
ALF: total number of apps = 5 

1 :  /usr/bin/nc 
     ( Allow incoming connections ) 

2 :  /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java 
     ( Allow incoming connections ) 

Isso não ajuda. Em segundo lugar, adicione regra em pf .

hellomac# cat /etc/pf.conf 
#
# Default PF configuration file.
#
# This file contains the main ruleset, which gets automatically loaded
# at startup.  PF will not be automatically enabled, however.  Instead,
# each component which utilizes PF is responsible for enabling and disabling
# PF via -E and -X as documented in pfctl(8).  That will ensure that PF
# is disabled only when the last enable reference is released.
#
# Care must be taken to ensure that the main ruleset does not get flushed,
# as the nested anchors rely on the anchor point defined here. In addition,
# to the anchors loaded by this file, some system services would dynamically
# insert anchors into the main ruleset. These anchors will be added only when
# the system service is used and would removed on termination of the service.
#
# See pf.conf(5) for syntax.
#

#
# com.apple anchor point
#
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"

pass in proto tcp from any to any port 8080

Mas também não ajuda.

Então, o que há de errado? o que devo fazer agora?

    
por Warlus 01.07.2015 / 04:10

1 resposta

0

Acabei de ter um problema semelhante com os trilhos.

O problema é que o Yosemite tem um firewall de aplicativo e, embora tenha certeza de que deve haver uma maneira de abrir portas individuais, independentemente da vinculação do aplicativo a essa porta, não consegui encontrar uma maneira rápida e fácil de fazê-lo.

A maneira mais fácil de fazer o que você está tentando fazer é adicionar o executável "java" (JVM) que você usa para executar seu aplicativo nas preferências do sistema > segurança > firewall > opções de firewall, e isso deve funcionar.

Por exemplo, para abrir a porta 3000 para acessar o aplicativo rails que estou desenvolvendo, adicionei o executável ruby que executa rails e outros códigos ruby em execução para o meu projeto.

Para descobrir qual java (JVM) você está usando, use "which java".

    
por 01.07.2015 / 19:01