Я не уверен в терминологии; я постараюсь быть максимально ясным, но учтите, что я могу использовать неправильное слово.
У меня есть несколько серверов Ubuntu, все подключены к одной сети. Я могу получить доступ к каждому из этих серверов по SSH, но только если я подключен к той же сети через VPN.
Фон:
Я пытаюсь запустить лицензионное программное обеспечение, которое должно обслуживать лицензию на других серверах в сети. Лицензионное программное обеспечение, по-видимому, работает правильно на указанном сервере, и этот сервер также может получить доступ к лицензионному программному обеспечению. Любой другой сервер в сети не может подключиться к этому серверу, на котором запущено лицензионное программное обеспечение.
Чтобы устранить эту сетевую проблему, вместо устранения неполадок в фирменном программном обеспечении я попытался запустить простые серверы Python Flask на каждом из серверов. Подобно фирменному программному обеспечению, Flask, похоже, работает правильно, но я не могу подключиться к нему с другого сервера в той же сети, но я могу подключиться к нему с того же сервера.
Проблема:
Когда я запускаю простую"привет мир!" сервер Flaskна Server_1
или Server_2
с помощью host=0.0.0.0
и port=5000
я могу подключаться к любому другому серверу Server_1
и с него, используя .Server_2
ip_of_Server:5000
Однако если я запускаю тот же сервер Flask на Server_3
с теми же параметрами, я не могу подключиться к нему из Server_1
или Server_2
. Ошибка, которую я получаю при попытке подключения через . Когда я пытаюсь подключиться через Chrome, я получаю вместо wget
этого .failed: No route to host.
ERR_CONNECTION_TIMED_OUT
Я также всегда могу подключиться к localhost:5000
с каждого из серверов. То есть, я могу подключиться к серверу Flask, работающему на Server_1
через Server_1
localhost:5000, но я не могу подключиться к серверу Flask, работающему на Server_1
через Server_2
localhost:5000.
Что я пробовал:
Сначала я подумал, что это проблема брандмауэра.
Я пытался отключить' iptables
используя следующее:
sudo iptables-save > /root/firewall.rules
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Это, похоже, не повлияло на проблему. Я тоже попробовал sudo ufw disable
, но это тоже не повлияло на проблему.
Это заставляет меня думать, что это не брандмауэр, но я не уверен, правда ли это. Я также не знаю, как продолжить отладку этой проблемы.
решение1
Вывод wget «Нет маршрута к хосту» означает, что ни у Server_1
, ни Server_2
у нет «пути» к Server_3
, это не проблема брандмауэра или Flask, а скорее проблема IP (интернет-протокола).
Чтобы исправить это, я предлагаю убедиться, что вы можете выполнить команду «ping» Server_3
, убедиться, что устройство подключено к Интернету, и что при использовании wget вы используете правильный IP-адрес. Для правильного указания ошибки потребуются дополнительные сведения, например, запуск traceroute
.