GoLang Webserver - Acesso Externo - Problema de Porta - Como servir na porta 9003 (ou qualquer outra)?

GoLang Webserver - Acesso Externo - Problema de Porta - Como servir na porta 9003 (ou qualquer outra)?

Como servir na porta 9003 (ou qualquer outra)?

Eu tenho um Apache WebServer rodando em um VPS (ubuntu 16). Como padrão, ele roda na porta 80. Se eu tentar via navegador:

http://104.XXX.YYY.237

Funciona muito bem. (Eu tenho um aplicativo php/mysql completo em execução nele)

.....

Agora, quero servir uma API REST pública, construída com Golang, na porta 9003 (ou qualquer outra)

Então eu tenho no meu arquivo main.go

func main() {

    router := NewRouter()

    log.Fatal(http.ListenAndServe(":9003", router))
}

Quando tento acessar:

http://104.XXX.YYY.237:9003

Não recebo resposta alguma.

...

Eu tenho uma configuração semelhante em execução no meu host local, onde posso acessar com sucesso através do terminal, curl, navegador ou ajax em um endereço comohttp://localhost:9003

Então, não há nada de errado com minha API.

...

Conheço muito pouco sobre linux e configuração de servidores, então, pesquisando um pouco sobre o assunto, pude pensar que o problema pode ser a porta 9003! Para testar essa conclusão, parei o serviço Apache, mudei a porta da API para 80 e !! BINGO!!! funcionou ! Consegui acessar minha API usando meu navegador.

...

Pesquisando um pouco mais e encontrei este (maravilhoso) comando Linux:

netstat -vatn

o que me deu a resposta: (na minha configuração original restaurada)

tcp6 0 0 :::9003 :::* LISTEN

tcp6 0 0 :::80 :::* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 104.XXX.YYY.237:80 177.XX.YYY.243:4297 TIME_WAIT

Não sou nenhum especialista em Linux, mas a primeira linha me diz que a porta 9003 está aberta e pronta para ser usada, como a 80 e a 22

Mas a última linha me diz que o servidor escuta 104.XXX.YYY.237:80.

Então, estou com falta de uma linha. Concluo que deveria esperar algo como:

tcp6 0 0 104.XXX.YYY.237:9003 177.YY.XXX.243:4297 TIME_WAIT

Então aqui estão minhas perguntas:

_ Como poder fornecer acesso externo à minha API usando o endereço IP do meu VPS (ou posteriormente meu domínio) usando a porta fornecida? _Eu disse algo errado sobre minhas conclusões?

desde já, obrigado

Responder1

Consegui corrigir o problema e permitir conexão externa direto para minha API na porta 9003!

Para conseguir isso, editei as regras de firewall no painel de controle do meu provedor VPS!

Embora eu realmente gostaria de aprender como fazer isso pelo terminal!

informação relacionada