Modbus IP com transporte TCP Listener


#1

Olá companheiros!

Estou implementando uma aplicação aqui com modem GPRS e a comunicação com o ScadaBR será por Modbus IP com tipo de transporte TCP Listener. Mas estou tendo problemas, a escuta na pota 502 não está levantando, estou recebendo os seguintes dados no arquivo de log catalina.out:

WARN 2020-09-14 22:54:58,202 (com.serotonin.modbus4j.ip.listener.TcpListener.init:88) - Initialized Port: 502
WARN 2020-09-14 22:54:58,707 (com.serotonin.modbus4j.ip.listener.TcpListener$ListenerConnectionHandler.acceptConnection:299) - Open connection failed on port 502, caused by Permission denied (Bind failed)
java.net.BindException: Permission denied (Bind failed)

Estou rodando o ScadaBR 1.1 CE em uma instância AWS EC2 Linux Debian 8 + Tomcat8 + Java7 + MySQL 5.7.

Alguém tem ideia de como conceder essa permissão?
Grato desde já.


#2

Verifique no painel do Firewall do AWS se a porta 502 está aberta para fora sem restrição de acesso. E se tem outra aplicação na VM fora o ScadaBR que usa a porta 502


#3

Já olhei, tá tudo liberado, e também a porta 502 estava liberada. Inclusive agora acabei instalando um outro gateway modbus que vi aqui no forum, o mbusd, esse tá rodando bem e levantando na porta 502. Parece ser algum problema com as permissões do java, vou continuar pesquisando sobre esse erro.


#4

Olá companheiros! Consegui resolver. Só precisei conceder ao executável do java privilégios elevados, fiz isso com o seguinte comando:

~# setcap cap_net_bind_service+ep /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java