bind: não é possível atribuir o endereço solicitado

5

Eu recentemente mudei para a AWS da Rackspace e estou configurando um servidor de geolocalização simples usando o freegeopip . Embora os comandos a seguir funcionem perfeitamente em um novo saque da Rackspace (Ubuntu), não consigo trabalhar na AWS (tentei o Red Hat e o Ubuntu). Aqui está o código que usei para configurá-lo:

curl -s https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz | tar -C /opt -zx
export GOPATH=$HOME
export GOROOT=/opt/go
export PATH=$PATH:/opt/go/bin
go get github.com/fiorix/freegeoip/cmd/freegeoip
$GOPATH/bin/freegeoip -addr="<MY IP ADDRESS>:8080"

Como eu disse, isso funciona perfeitamente na minha instalação Rackspace, mas a AWS me dá esse erro:

listen tcp <MY IP ADDRESS>:8080: bind: cannot assign requested address

Eu verifiquei esta porta com netstat e não há nada nela. Eu não tenho idéia porque estou recebendo este erro. Alguma idéia?

    
por jwerre 09.02.2015 / 16:02

2 respostas

4

Em muitos casos, a ligação a 0.0.0.0 é o melhor curso de ação, a menos que você tenha um motivo específico para se vincular apenas a um endereço específico.

Mas presumo que o que você está fazendo não está funcionando, porque você está tentando se vincular ao endereço IP público da instância, que você encontrará (via ifconfig ) que sua pilha de IP não está ciente .

As instâncias do AWS estão nativamente cientes do seu endereço IP privado, que é o que você precisa vincular.

Os endereços públicos da instância EC2 (clássica e VPC) associados a instâncias são convertidos em NAT de 1: 1 para o endereço privado pela infraestrutura de rede da AWS.

    
por 09.02.2015 / 23:25
0

A AWS executa a tradução de endereços de rede entre sua instância e a Internet. Portanto, a instância do AWS pode ser acessada pelo endereço IP 08.08.08.0808, no entanto, o servidor está realmente configurado para usar 88.88.88.88. O que eu preciso fazer foi ligar para o IP interno do servidor que eu encontrei com o ifconfig.

    
por 09.02.2015 / 23:24