Newsgroup: it.hobby.elettronica.digitale
Titolo: Server su 3G

E' possibile, oppure gli operatori telefonici permettono solo 
connessioni in uscita da una SIM connessa al 3G?
 
In altre parole, posso metter su un server web collegato ad Internet 
tramite router 3G e contattarlo *direttamente* da uno smartphone (o 
qualsiasi altro nodo di Internet)?
 
Ho paura che ciï¿œ non sia facile per via di eventuali indirizzi privati, 
dinamici o firewall dell'operatore.

 connessioni in uscita da una SIM connessa al 3G?
 
Non so se valga in generale, ma col mio operatore (Wind) apparentemente
viene assegnato un IP di classe A (netmask 10.255.255.255) quindi
appartenente a una rete interna connessa a Internet tramite router/firewall
e inaccessibile dall'esterno.
 
Se invece usi uno di quei siti che ti dicono il tuo IP, ti viene restituito
un IP appartenente a Infostrada, ma probabilmente appartiene a uno dei loro
server. Fatto sta che comunque non pinga nemmeno.
 
-- 
Fletto i muscoli e sono nel vuoto.


Questo � quello che temevo.  Se � cos� sempre, � praticamente 
impossibile gestire dei server connessi tramite 3G.
 
Magari esiste un piano tariffario particolare da richiedere 
appositamente all'operatore?

 appositamente all'operatore?
 
Devi vedere le proposte dei singoli operatori.
 
A parte la questione della gestione un server collegato cos� non 
servirebbe proprio nulla, almeno su internet, perch� sarebbe 
irragiungibile dall'esterno.
 
Se ti interessa solo l'accesso puoi pensare di fare il contrario, cio� 
di stabilire un canale tra il server collegato in 3G ed una macchina su 
internet istradando le porte che ti servono via ssh. Poi tu ti 
collegherai al server su internet, come risultato sei l� ma c'� un po' 
di overhead per il tunnel.
 
La valutazione di una soluzione del genere dipende ovviamente dall'esigenza.
 
-- 
Andrea
 


Io sul mio smartphone android + sim tim ho un server tcp...
Per semplificarmi la vita ho messo no-ip anche sul telefono...
 
Non cambia niente.....indirizzo ip pubblico (non fisso)....come un'adsl

Il 23/07/2014 16:16, pozzugno ha scritto:

Se non ho capito male, solo TIM offre IP pubblici dinamici (almeno con i 
contratti business). Gli statici, manco a pagarli.
 
Il problema ï¿œ che non c'ï¿œ nessuna garanzia. Anche Wind fino a poco tempo 
fa forniva IP pubblici, ma da un po' di tempo sembra che stia nattando 
tutti e tutto senza preavviso.
 
Quanto dureranno gli IP pubblici di TIM? Chissï¿œ...


Purtroppo gli IPv4 sono ormai finiti e gli ISP iniziano a fare NAT anche 
sulle linee fisse, figuriamoci su quelle mobili. L'unico modo 
future-proof ï¿œ fare un reverse-tunnel verso un server su internet con IP 
pubblico. Il server poi fa il forward delle connessioni che riceve su 
un'altra porta verso il tuo server su rete mobile. Ogni volta che la 
connessione cade o l'IP mobile cambia, spetta al server mobile 
riconnettersi a quello pubblico, cosï¿œ il collegamento ï¿œ sempre su.
 
Altrimenti puoi ripensare il sistema in modo che non sia necessario 
avere un server su rete mobile. Magari se ci fornisci qualche dettaglio 
in piï¿œ sul sistema posso darti qualche consiglio.
 
Ciao!

 in piï¿œ sul sistema posso darti qualche consiglio.
 
In realtï¿œ le applicazioni sono tante, ma alla fine riconducibili ad una 
comunicazione tra uno smartphone (o in genere un host su Internet) e un 
gadget elettronico: l'antifurto o il sistema domotico che hai in casa 
(senza fidarsi o avere la necessitï¿œ di una ADSL), un tracking veicolo o 
qualsiasi altra cosa (senza avere la necessitï¿œ di fare log, ma 
semplicemente per sapere la posizione attuale), ...
 
Diciamo che con l'Internet of Things queste cose dovrebbero diventare 
sempre di piï¿œ all'ordine del giorno e obbligare ad usare sempre un 
server pubblico intermedio complica inutilmente le cose.

 intermedio complica inutilmente le cose.
 
Aspettando IPv6.
 
 
-- 
Andrea
 

 Banalmente un forwarding ssh.
 
Forse non ho capito una cippa, ma non penso il forwarding ssh risolva.
 
Da quello che ho capito, un tunnel ssh viene creato tra un client ed un 
server ssh.  Questa connessione *deve* essere possibile, altrimenti 
niente.  Diciamo che sia lo smartphone, sia il sistema embedded 
(entrambi su rete mobile 3G/4G), possono collegarsi ad un mio server ssh 
(naturalmente deve essere possibile avere un client ssh sullo 
smartphone... � possibile?).
 
Diciamo che sullo smartphone posso lanciare un comando del tipo:
 
   ssh -L 5555:<che_scrivo?>:80 server_ssh
 
Tutti i pacchetti da/verso localhost:5555 sullo smartphone 
vanno/vengono, tramite il tunnel, al server_ssh... il quale li reinoltra 
sulla porta 80 all'host <che_scrivo?>.
Lo stesso far� il sistema embedded, utilizzando lo stesso server_ssh.
 
Ma qual � il computer <che_scrivo?>?
 

1024), ma il tunnel è originato dal sistema embedded.
 
Sullo smartphone non devi fare nulla dato che a mascherare la 
connessione ci pensa l'operatore.
Attraverso il tunnel server_ssh inoltrerà al sistema embedded le 
richieste provenienti dallo smartphone e poi si occuperà di rispondere 
allo smartphone. Fine.
 
 
Questo scenario però non è robusto perché le connessioni SSH a volte 
muoiono. Per mitigare il problema ci sono opzioni come quelle relative 
al keepalive che aiutano a mantenere viva la connessione più a lungo 
(credo mandino un heartbeat) e puoi comunque usare uno spawner come 
autossh o una soluzione fai-da-te in sh come
 
  while [ true ]; do ssh […]; sleep 30; done
 
per ristabilire la connessione quando questa cade.
 
Il punto è che potresti ritrovarti con il server web che non risponde 
per mezzo minuto o non risponde affatto, se va bene o meno dipende da 
quanto è critica la richiesta. Io l'ho intesa come soluzione leggera 
per collegarti ad un tuo server, cioè singolo utente e situazione non 
critica, ad esempio hai la stazione metereologica sulla baita in 
montagna e vuoi sapere quanti metri di neve ci sono mentre metti 
benzina in autostrada e stai squagliando di calore.
 
Se invece devi servire tanti utenti una soluzione ragionevole è non 
usare un server su rete mobile ma noleggiare un sistema opportunamente 
dimensionato e disaccoppiare il server web che mostra i dati ai client 
dalla parte su rete mobile che si limiterà ad aggiorna i dati in 
maniera asincrona sul server web quando deve e quando può.
 
 
I miei 0010 cent.
 
 
-- 
Andrea
 

 asincrona sul server web quando deve e quando può.
 
Certo e in questo caso devo metter su un server proprietario su Internet 
che logga tutti i dati in arrivo dai sistemi embedded (che dovranno 
iniziare loro la connessione) e li mette a disposizione degli smartphone.
 
 

 smartphone.
 
Mi sembra la soluzione pi� pulita specie dato che ora nomini "sistemi" 
embedded, al plurale. Di quanti sistemi parli a occhio e di quanti 
client con quale frequenza di accesso?
 
-- 
Andrea
 

 client con quale frequenza di accesso?
 
Chiaramente � la pi� pulita e flessibile, ma ha un costo considerevole 
sia in termini di sviluppo (bisogna sviluppare il server centrale) che 
di esercizio (il server non � un semplice sshd che pu� accettare N 
connessioni e tenerle aperte, ma un server proprietario con database e 
altro).
 
 



On 2014-08-22 06:49:17 +0000, pozzugno said:




Perch� dici, "provare e vedere"?
� 
Quali sono i fattori che influenzano l'affidabilit� di una connessione ssh?
� 
Mi sembra un discorso troppo aleatorio.




Perch� non ho mai indagato come funziona, mi sono limitato ad aumentare TCPKeepAlive e ClientAliveInterval e ad impostare autossh. Mi dispiace ma non so aiutarti su questo.


Suggerivo una prova per capire come si comporta.




Chiaramente � la pi� pulita e flessibile, ma ha un costo considerevole sia in termini di sviluppo (bisogna sviluppare il server centrale) che di esercizio (il server non � un semplice sshd che pu� accettare N connessioni e tenerle aperte, ma un server proprietario con database e altro).




Per� il server sulla stazione embedded avresti comunque dovuto implementarlo, o quello lo hai gi�?






--
�


Andrea