Я надеюсь, что это правильный сайт stackexchange, чтобы задать этот вопрос.

Я пытаюсь запустить минный сервер с моего компьютера (Linux), но не могу подключить его с другого компьютера, подключенного к Интернету, в другой сети. Я использую сервер minetest, используя minetestserver, и он выдает следующий результат:

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.

Который действительно должен быть выходом, если все успешно.

Когда сервер работает,

netstat -na | grep 30000

дает

udp        0      0 0.0.0.0:30000           0.0.0.0:*

Я также настроил свой маршрутизатор для переадресации портов. Я пытался пропинговать свой публичный IP-адрес с другого компьютера, подключенного к Интернету, но это не сработало.

Я пытался использовать netcat чтобы получить некоторую идею, но я не получил много, отчасти потому, что я действительно не знал, что делать. Тем не менее, я начал прослушивать порт 30001 и отправлять пакеты, используя netcat с той же машины, используя мой локальный IP-адрес в сети (192.168.0.102), и это работало. Но когда я использовал свой публичный IP-адрес и отправил пакет с удаленного компьютера, он ничего не показывает.

Когда я выполняю трассировку с другого компьютера на мой общедоступный IP-адрес, он не достигает моего адреса, а заканчивается каким-то другим адресом; Когда я выполняю трассировку на google.com или любой другой веб-сайт со своего сервера, я вижу, что все запросы проходят через IP из одной сети. Я действительно не знаю, означает ли это что-нибудь.

Я разместил этот вопрос на форуме Arch, думая, что это может быть проблема, связанная с ОС, но я не добился успеха.

РЕДАКТИРОВАТЬ :

Вывод после запуска nmap из удаленного местоположения:

> 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

1 ответ1

1

Minetest wiki утверждает, что вам нужно включить пересылку для пакетов UDP и TCP. Это может быть вашей проблемой. Если это не поможет, сделайте следующее:

  1. Сначала отладьте соединение с другого компьютера в вашей локальной сети. Соединение с вашим локальным IP-адресом с того же компьютера не выполняет эту работу - это соединение автоматически маршрутизируется через устройство обратной связи и никогда не покидает ваш компьютер.

  2. Убедитесь, что ваш публичный IP-адрес доступен удаленно и действительно разрешает подключения через порт 30000. Многие маршрутизаторы отбрасывают пакеты ICMP (ping) из внешних сетей в качестве меры "безопасности" для блокировки трассировки. Вместо этого попробуйте сканировать ваши общедоступные IP-порты из удаленного местоположения с помощью такого инструмента, как nmap. Это также должно сказать вам, если ваш провайдер блокирует соединения. Пример для диапазона портов от 70 до 80:

    nmap -sU -sS 127.0.0.1 -p 70-80

Примечание: это уже упоминалось на форуме Arch - НЕ запускайте общедоступный игровой сервер от имени root. Есть слишком много вещей, которые могут пойти не так. Даже если это только для тестирования, это все еще очень плохая идея. Порты с номером выше 1024 не нуждаются в привилегированном доступе, вы можете войти в систему с любой обычной учетной записью пользователя и запустить процесс сервера. Даже для привилегированных портов вам не нужно быть пользователем root, проверьте этот вопрос.

Изменить: Да - ваш ip явно доступен, но не показывает, что он пересылает пакеты в локальную сеть (в этом случае порт 30000 должен показывать ОТКРЫТО для TCP, даже если в локальной сети нет устройств, ожидающих). Это может быть заблокировано провайдером, это может быть вызвано тем, что маршрутизатор не делает то, что должен. Я не думаю, что смогу помочь вам только с этой информацией - вы действительно должны проверить эти вещи:

  1. Подключитесь к серверу Minetest с другого компьютера в локальной сети или смоделируйте его с помощью Virtual Box и адаптера моста.

  2. Проверьте, что переадресация маршрутизатора работает с чем-то более простым для проверки, например: переадресация TCP-порта 80 на apache, как это было предложено Morn на форуме arch.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .