Eu escrevi um módulo de software em PHP que gerencia a gravação de dados em diferentes armazenamentos de dados (MySQL, ElasticSearch e Redis). Para testar o módulo, criei vários planos de teste no Apache JMeter, incluindo alguns que fazem muitas solicitações simultâneas. Os testes são executados em uma pilha LAMP em uma VM LTS Ubuntu 14.04 (uma caixa Vagrant).
O que eu observei é que, às vezes, a porta 9200 (ElasticSearch) é fechada após um determinado número de solicitações. O que é bom, porque eu quero testar cenários em que um dos armazenamentos de dados fica indisponível. No entanto, para validar os resultados do teste, preciso que essa porta abra novamente.
O ElasticSearch ainda está em execução e escutando a porta.
Situação antes do teste
$ nmap -p 9200 localhost
(...)
PORT STATE SERVICE
9200/tcp open wap-wsp
$ sudo netstat -tlnp | grep '9200'
tcp6 0 0 :::9200 :::* LISTEN 1057/java
Situação após o teste
$ nmap -p 9200 localhost
(...)
PORT STATE SERVICE
9200/tcp closed wap-wsp
$ sudo netstat -tlnp | grep '9200'
tcp6 0 0 :::9200 :::* LISTEN 1057/java
Pergunta
Até agora, esperei até a loja abrir novamente ou reiniciei a VM. No entanto, isso é muito inconveniente, o que me leva à pergunta:
Existe um comando para reabrir uma porta fechada?
Eu pesquisei, mas encontrei apenas conselhos sobre como configurar o iptables
. Eu tentei
$ sudo iptables -A INPUT -d 0/0 -s 0/0 -p tcp --dport 9200 -j ACCEPT
Mas pelo que eu sei, isso cria apenas uma regra e não tem nenhum efeito imediato na porta:
$ sudo iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:9200
$ nmap -p 9200 localhost
(...)
PORT STATE SERVICE
9200/tcp closed wap-wsp