Tenho um Servidor Virtual Dedicado baseado no Ubuntu 20.04.6 com endereço IP 193.23.xxx.xx . blizcore.fun
resolve para este IP. Neste servidor, instalei o painel pterodactyl. O Pterodactyl tem IP 172.18.0.0/16 . Eu instalo o basic python 3.10 egg no pterodactyl e crio o servidor para a porta 6668 .
Meu alvo: criar uma solicitação GET para https://blizcore.fun/status
. Essa solicitação deve ser manipulada pelo servidor Flask em execução no ambiente Pterodactyl.
Código:
from flask import Flask, request
from flask_restful import Api, Resource, abort
from dotenv import load_dotenv
load_dotenv()
import os
key = os.getenv("AUTH_KEY")
app = Flask(__name__)
api = Api()
class BlizcoreApi(Resource):
def get(self):
headers = request.headers
auth = headers.get("Authorization")
if auth == key:
return {"code": 200, "message": "All working stable."}
else:
return abort(401, message="Unauthorized.")
api.add_resource(BlizcoreApi, "/status")
api.init_app(app)
if __name__ == "__main__":
app.run(host="193.23.220.14", port=6668, debug=True)
Mas tenho erro (saída do console do servidor na porta 6668):
* Serving Flask app 'server'
* Debug mode: on
Cannot assign requested address
Tentei conectar o Flask ao host 0.0.0.0
para escutar em todas as interfaces e estou conectado ao IP do Pterodactyl (saída do console após essas ações):
* Serving Flask app 'server'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:6668
* Running on http://172.18.0.6:6668
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 144-915-975
As regras do Firewall são assim:
root@vm25-lendnodes:~# sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
...
6668 ALLOW 172.18.0.0/24
...
Acho que preciso criar um roteador para conectar o fluxo de 172.18.0.6:6668
para 193.23.xxx.xx:6668
, mas isso é só teoria.