Executando um servidor para o Minetest

0

Espero que este seja o site correto do stackexchange para fazer essa pergunta.

Estou tentando executar um servidor minicurso do meu computador (Linux), mas não consigo conectá-lo de outro computador conectado à Internet na rede diferente. Estou executando o servidor minetest usando minetestserver e ele fornece a seguinte saída:

2016-07-13 20:45:22: WARNING[Main]: Couldn't find a locale directory!
2016-07-13 20:45:22: [Main]: Automatically selecting world at [/root/.minetest/worlds/world]
2016-07-13 20:45:22: WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition
2016-07-13 20:45:22: ACTION[Main]:         .__               __                   __   
2016-07-13 20:45:22: ACTION[Main]:   _____ |__| ____   _____/  |_  ____   _______/  |_ 
2016-07-13 20:45:22: ACTION[Main]:  /     \|  |/    \_/ __ \   __\/ __ \ /  ___/\   __\
2016-07-13 20:45:22: ACTION[Main]: |  Y Y  \  |   |  \  ___/|  | \  ___/ \___ \  |  |  
2016-07-13 20:45:22: ACTION[Main]: |__|_|  /__|___|  /\___  >__|  \___  >____  > |__|  
2016-07-13 20:45:22: ACTION[Main]:       \/        \/     \/          \/     \/        
2016-07-13 20:45:22: ACTION[Main]: World at [/root/.minetest/worlds/world]
2016-07-13 20:45:22: ACTION[Main]: Server for gameid="minetest" listening on 0.0.0.0:30000.

Que, de fato, deve ser a saída se tudo for bem-sucedido.

Quando o servidor está em execução,

netstat -na | grep 30000

udp        0      0 0.0.0.0:30000           0.0.0.0:*

Também configurei meu roteador para encaminhamento de porta. Tentei fazer ping no meu IP público de outra máquina conectada à internet, mas não funcionou.

Eu tentei usar netcat para ter uma ideia, mas não consegui muito, em parte porque não sabia o que fazer. Ainda assim, comecei a ouvir na porta 30001 e enviei pacotes usando o netcat da mesma máquina usando o meu IP local na rede (192.168.0.102) e funcionou. Mas quando eu usei meu IP público e enviei um pacote de uma máquina remota, ele não mostra nada.

Quando faço traceroute de outra máquina para o meu IP público, ele realmente não alcança meu endereço, mas termina em outro endereço; Quando faço traceroute para google.com ou qualquer outro site da minha máquina servidor, vejo que todas as solicitações passam por um IP da mesma rede. Eu realmente não sei se isso significa alguma coisa.

Eu postei essa pergunta no fórum do fórum pensando que poderia ser um problema relacionado ao SO, mas não t realmente bem sucedido.

EDITAR:

Saída depois de executar nmap do local remoto:

> sudo nmap -sU -sS <public ip> -p 70-80
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-23 13:43 IST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.65 seconds

> sudo nmap -sU -Pn -sS <public ip> -p 70-80
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-23 13:43 IST
Nmap scan report for <public ip>
Host is up (0.12s latency).
PORT   STATE         SERVICE
70/tcp filtered      gopher
71/tcp filtered      netrjs-1
72/tcp filtered      netrjs-2
73/tcp filtered      netrjs-3
74/tcp filtered      netrjs-4
75/tcp filtered      priv-dial
76/tcp filtered      deos
77/tcp filtered      priv-rje
78/tcp filtered      unknown
79/tcp filtered      finger
80/tcp filtered      http
70/udp open|filtered gopher
71/udp open|filtered netrjs-1
72/udp open|filtered netrjs-2
73/udp open|filtered netrjs-3
74/udp open|filtered netrjs-4
75/udp open|filtered priv-dial
76/udp open|filtered deos
77/udp open|filtered priv-rje
78/udp open|filtered vettcp
79/udp open|filtered finger
80/udp open|filtered http
Nmap done: 1 IP address (1 host up) scanned in 8.15 seconds

sudo nmap -sU -Pn -sS <public ip> -p 29999-30005
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-23 13:50 IST
Nmap scan report for <public ip>
Host is up.
PORT      STATE         SERVICE
29999/tcp filtered      unknown
30000/tcp filtered      unknown
30001/tcp filtered      pago-services1
30002/tcp filtered      unknown
30003/tcp filtered      unknown
30004/tcp filtered      unknown
30005/tcp filtered      unknown
29999/udp open|filtered unknown
30000/udp open|filtered unknown
30001/udp open|filtered unknown
30002/udp open|filtered unknown
30003/udp open|filtered unknown
30004/udp open|filtered unknown
30005/udp open|filtered unknown
    
por Nijraj Gelani 23.07.2016 / 06:54

1 resposta

1

O minetest wiki afirma que é necessário ativar o encaminhamento para os pacotes UDP e TCP. Este pode ser o seu problema. Se não ajudar, faça o seguinte:

  1. Primeiro depure a conexão de um computador diferente na sua rede local. Conectar-se ao seu IP local da mesma máquina não faz o trabalho - esta comunicação é automaticamente roteada através do dispositivo de loopback e nunca sai da sua máquina.

  2. Verifique se seu IP público está acessível remotamente e de fato permite conexões na porta 30000. Muitos roteadores descartam pacotes ICMP (ping) de redes externas como uma medida de "segurança" para bloquear o rastreamento. Em vez disso, tente escanear suas portas IP públicas de locais remotos com ferramentas como nmap. Isso também deve informar se seu ISP bloqueia conexões. Exemplo para o intervalo de portas 70 a 80:

    nmap -sU -sS 127.0.0.1 -p 70-80

Nota: Isso já foi mencionado no fórum do Arch - NÃO execute o servidor de jogo disponível publicamente como root. Há muitas coisas que podem dar errado. Mesmo que seja apenas para testes, ainda é uma péssima ideia. Portas com número acima de 1024 não precisam de acesso privilegiado, você pode efetuar login com qualquer conta de usuário normal e executar o processo do servidor. Mesmo para portas privilegiadas, você não precisa ser root, verifique esta questão.

Editar: Sim - seu ip está claramente acessível, mas não mostra que está encaminhando os pacotes para a rede local (nesse caso, a porta 30000 deve mostrar OPEN para TCP, mesmo que não haja nenhum dispositivo aguardando na rede local). Pode ser bloqueado pelo ISP, pode ser causado pelo roteador não fazer o que deveria. Eu não acho que posso ajudá-lo com apenas esta informação - você realmente deveria testar estas coisas:

  1. Conecte-se ao servidor do minicurso de outra máquina na rede local ou simule isso com o Virtual Box e o adaptador em ponte.

  2. Teste que o encaminhamento do roteador funciona com algo mais fácil de verificar, por exemplo: TCP porta 80 encaminhando para o apache, conforme sugerido pelo fórum Morn in arch.

por 23.07.2016 / 09:19