Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Java - TomCat - Spring Boot] Configurare Server per essere reperibile da remoto.

    Buongiorno,

    Avete idea di come:

    "Configurare Server per essere reperibile da remoto."?
    Ultima modifica di jabjoint; 17-01-2023 a 14:54
    jabjoint

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,255
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    "Configurare Server per essere reperibile da remoto."?
    Rendere accessibile un server da remoto ("remoto" poi intendi cosa? da Internet? immagino ...) in realtà NON c'entra nulla con Java e la programmazione in generale. Sono solo questioni di "amministrazione" di tutta la infrastruttura di rete che si ha a disposizione, ovvero: firewall hardware e/o software, switch, router, ecc...

    Si tratta solo di garantire che la porta sia "aperta" lungo tutta la via che va dal server fino al dispositivo che si connette ad internet (o cosa intendi tu per "remoto").

    A livello di Spring Boot l'unica cosa a cui prestare attenzione è su quale indirizzo IP il server fa il bind. Se non sbaglio, Spring Boot fa per default il bind su 0.0.0.0 che vuol dire "tutte le interfacce". Quindi se hai una interfaccia di rete cablata e una wifi, il server è accessibile da entrambe.

    Se invece configuri es.:

    server.address = 127.0.0.1

    allora fa il bind SOLO sul localhost, quindi non è raggiungibile dall'esterno della maccchina (nemmeno se un firewall sw aprisse la porta). C'è poi la questione IPv4 vs IPv6 ma non sempre è rilevante.

    Per il resto non si può dire nulla .... perché nessuno può sapere quale infrastruttura di rete utilizzi o utilizzerai ....
    Ultima modifica di andbin; 17-01-2023 a 15:28
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    A seconda di come ci si connette insomma all'infrastruttura? Router-SmartPhone e collegamento /WiFi/USB/Ethernet

    Non devo configurare Tomcat?

    Pensavo di usare l'indirizzo:

    server.address = indirizzo-IP-pubblico-router

    server.port = numero-porta

    Ma se mi connettessi con un collegamento tethering -usb senza un vero router quindi, come farei ad abilitare le porte dell'indirizzo?
    jabjoint

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,255
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Non devo configurare Tomcat?
    Se Spring Boot parte con il server embedded, no. Nel senso che per il server embedded valgono già le property server.****

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Pensavo di usare l'indirizzo:

    server.address = indirizzo-IP-pubblico-router
    No, non puoi mettere l'IP "pubblico" su internet (insomma, quello che il provider internet ti assegna). Il server.address deve essere l'indirizzo della interfaccia di rete (la scheda di rete fisica, cablata o wifi che sia) sulla TUA macchina dove c'è il server. Perché è su quella interfaccia che il server fa il bind (o il localhost o 0.0.0.0 = tutte).

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Ma se mi connettessi con un collegamento tethering -usb senza un vero router quindi, come farei ad abilitare le porte dell'indirizzo?
    Spiega meglio tutta la infrastruttura. Hai un PC desktop su cui gira il server?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se Spring Boot parte con il server embedded, no. Nel senso che per il server embedded valgono già le property server.****


    No, non puoi mettere l'IP "pubblico" su internet (insomma, quello che il provider internet ti assegna). Il server.address deve essere l'indirizzo della interfaccia di rete (la scheda di rete fisica, cablata o wifi che sia) sulla TUA macchina dove c'è il server. Perché è su quella interfaccia che il server fa il bind (o il localhost o 0.0.0.0 = tutte).


    Spiega meglio tutta la infrastruttura. Hai un PC desktop su cui gira il server?
    Si ma anche inserendo l'IP (192.*.*.*) della scheda di rete locale, funziona, certamente, ma solo da localhost...al pari di inserire localhost o 127.0.0.1.

    Quindi in qualche modo l'indirizzo pubblico va reso accessibile...non so come...
    Ho un server su cui gira perfettamente Tomcat di STS in locale.
    (Vi è installato Ubuntu desktop.)
    Ma questo è al momento connesso tramite USB dello smartphone.
    Ultima modifica di jabjoint; 17-01-2023 a 17:04
    jabjoint

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,255
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Si ma anche inserendo l'IP (192.*.*.*) della scheda di rete locale, funziona, certamente, ma solo da localhost...al pari di inserire localhost o 127.0.0.1.
    Esiste anche un'altra questione: c'è un firewall software sulla macchina? Questo è la prima cosa da verificare. Fare il bind su una interfaccia di rete specifica è ok ... ma se poi il firewall sw blocca (giustamente) la porta dall'esterno ... capisci che siamo allo stesso punto ..

    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Quindi in qualche modo l'indirizzo pubblico va reso accessibile...non so come...
    Non devi "sapere" l'indirizzo pubblico su internet!

    Allora:
    1) il server deve fare il bind su una interfaccia di rete specifica (o tutte) della TUA macchina su cui gira il server.
    2) il firewall sw deve permettere l'accesso alla porta dall'esterno.
    3) se la porta è accessibile dall'esterno, allora lo è dalla rete "locale" (la LAN).
    4) se il router è direttamente attaccato alla LAN, allora basta configurare nel router la regola per cui tutto quello che arriva sulla porta es. 80 della WAN (la rete "ampia" es. internet) venga "girato" sulla porta es. 8080 della macchina locale 192.168.x.y. In questo caso è bene che la TUA macchina abbia un IP statico, perché se è dato dal DHCP del router, ovviamente è un problema. Ci sono router che pur usando il DHCP permettono la prenotazione del IP in base al MAC (es. a quel MAC dai sempre l'IP x).


    P.S. la applicazione Spring Boot NON deve generalmente sapere l'indirizzo "pubblico" su internet. A meno che ci siano scenari particolari per cui deve fare es. un redirect "assoluto" ad una pagina web della applicazione stessa. E' ovvio che NON può fare un redirect su 192.168.x.y perché su internet nessuno lo conosce e ci arriverebbe. Ma in tal caso è meglio valutare: a) di prendere un provider che dia un IP statico; b) usare il DDNS (se previsto dal router); c) prendere un nome di dominio in modo da avere un nome stabile.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Esiste anche un'altra questione: c'è un firewall software sulla macchina? Questo è la prima cosa da verificare. Fare il bind su una interfaccia di rete specifica è ok ... ma se poi il firewall sw blocca (giustamente) la porta dall'esterno ... capisci che siamo allo stesso punto ..


    Non devi "sapere" l'indirizzo pubblico su internet!

    Allora:
    1) il server deve fare il bind su una interfaccia di rete specifica (o tutte) della TUA macchina su cui gira il server.
    2) il firewall sw deve permettere l'accesso alla porta dall'esterno.
    3) se la porta è accessibile dall'esterno, allora lo è dalla rete "locale" (la LAN).
    4) se il router è direttamente attaccato alla LAN, allora basta configurare nel router la regola per cui tutto quello che arriva sulla porta es. 80 della WAN (la rete "ampia" es. internet) venga "girato" sulla porta es. 8080 della macchina locale 192.168.x.y. In questo caso è bene che la TUA macchina abbia un IP statico, perché se è dato dal DHCP del router, ovviamente è un problema. Ci sono router che pur usando il DHCP permettono la prenotazione del IP in base al MAC (es. a quel MAC dai sempre l'IP x).


    P.S. la applicazione Spring Boot NON deve generalmente sapere l'indirizzo "pubblico" su internet. A meno che ci siano scenari particolari per cui deve fare es. un redirect "assoluto" ad una pagina web della applicazione stessa. E' ovvio che NON può fare un redirect su 192.168.x.y perché su internet nessuno lo conosce e ci arriverebbe. Ma in tal caso è meglio valutare: a) di prendere un provider che dia un IP statico; b) usare il DDNS (se previsto dal router); c) prendere un nome di dominio in modo da avere un nome stabile.
    Proverò col router. In effetti facendo l' hotspot tutto si complica...
    jabjoint

  8. #8
    Grazie @andbin, collegandomi tramite smart-phone non riesco a vedere le impostazioni di controllo(visibili altrimenti con router), e forse non è possibile?
    E' tassativo il router?
    jabjoint

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,255
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Grazie @andbin, collegandomi tramite smart-phone non riesco a vedere le impostazioni di controllo(visibili altrimenti con router), e forse non è possibile?
    E' tassativo il router?
    Allora: per collegarti ad internet hai sicuramente un qualche dispositivo ("router"), che sia acquistato da te o fornito in "comodato" dal provider non cambia/importa. In questi router, di norma tutte le connessioni verso l'esterno (verso internet) sono sempre permesse, mentre qualunque connessione dall'esterno (internet) verso l'interno è sempre normalmente rifiutata. Per ovvi motivi di sicurezza.

    Se vuoi "esporre" qualcosa, un qualche servizio, su internet, quindi devi per forza configurare come minimo quel router.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2023 vBulletin Solutions, Inc. All rights reserved.