나는 용어에 대해 확신하지 못합니다. 최대한 명확하게 설명하려고 노력하겠지만 단어를 잘못 사용할 수도 있다는 점에 유의하세요.
여러 개의 Ubuntu 서버가 있으며 모두 동일한 네트워크에 연결되어 있습니다. SSH를 통해 이러한 각 서버에 액세스할 수 있지만 VPN을 통해 동일한 네트워크에 연결된 경우에만 가능합니다.
배경:
네트워크의 다른 서버에 라이센스를 제공하도록 되어 있는 라이센스 소프트웨어를 실행하려고 합니다. 라이센스 소프트웨어는 지정된 서버에서 올바르게 실행되는 것으로 보이며 해당 서버도 라이센스 소프트웨어에 액세스할 수 있습니다. 네트워크의 다른 서버는 라이센스 소프트웨어를 실행하는 이 서버에 연결할 수 없습니다.
이 네트워크 문제를 해결하기 위해 독점 소프트웨어 문제를 해결하는 대신 각 서버에서 간단한 Python Flask 서버를 실행하려고 했습니다. 독점 소프트웨어와 마찬가지로 Flask가 제대로 실행되는 것처럼 보이지만 동일한 네트워크의 다른 서버에서는 연결할 수 없지만 동일한 서버에서는 연결할 수 있습니다.
문제:
내가 간단한 것을 실행할 때"안녕하세요!" 플라스크 서버을 Server_1
( 를) Server_2
사용 하여 다른 모든 서버 와 연결할 수 있습니다 .host=0.0.0.0
port=5000
Server_1
Server_2
ip_of_Server:5000
그러나 동일한 매개변수를 사용하여 동일한 Flask 서버를 실행하면 또는 Server_3
에서 연결할 수 없습니다 . 을(를) 통해 연결하려고 할 때 발생하는 오류 는 입니다 . Chrome을 통해 연결하려고 하면 대신 나타납니다.Server_1
Server_2
wget
failed: No route to host.
ERR_CONNECTION_TIMED_OUT
localhost:5000
또한 각 서버에서 항상 연결할 수 있습니다 . 즉, localhost:5000을 Server_1
통해 실행 중인 플라스크 서버에 연결할 수 있지만 , localhost:5000을 통해 실행 Server_1
중인 플라스크 서버에는 연결할 수 없습니다 .Server_1
Server_2
내가 시도한 것:
처음에는 이것이 방화벽 문제일 수도 있지만.
'비활성화'하려고 했습니다.' 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
도 없거나 없다는 것을 의미합니다 . 이는 방화벽 문제나 플라스크 문제가 아니라 IP(인터넷 프로토콜) 문제에 더 가깝습니다.Server_2
Server_3
이 문제를 해결하려면 'ping'을 할 수 있는지 Server_3
확인하여 인터넷에 연결되어 있는지, wget을 사용할 때 올바른 IP 주소를 사용하고 있는지 확인하는 것이 좋습니다. traceroute
.