Old:Condividere file e connessione con Xbox 360: differenze tra le versioni
m (ha spostato Condividere file e connessione con Xbox 360 a Old:Condividere file e connessione con Xbox 360) |
|||
(10 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Old}} | |||
== Introduzione == | == Introduzione == | ||
L'Xbox 360 (console targata Miscrosoft) permette di rilevare PC Windows nella rete domestica per sfruttare la sua componente di "media services": riprodurre file multimediali dal vostro PC direttamente sull'Xbox. | L'Xbox 360 (console targata Miscrosoft) permette di rilevare PC Windows nella rete domestica per sfruttare la sua componente di "media services": riprodurre file multimediali dal vostro PC direttamente sull'Xbox. | ||
Per chi non ha installato Windows, questa feature resta preclusa. Fino ad ora. | Per chi non ha installato Windows, questa feature resta preclusa. Fino ad ora. | ||
Vedremo come poter usufruire di questa opzione anche tramite Debian. | Vedremo come poter usufruire di questa opzione anche tramite Debian. | ||
Ma non | Ma non è tutto. Volendo fare una panoramica più generale, possiamo ipotizzare che la nostra console sia collegata direttamente al PC e che quest'ultimo voglia condividere la connessione internet all'Xbox, per usufruire del Live. | ||
Vedremo come poter condividere facilmente la connessione tra il PC Debian e l'Xbox 360. | Vedremo come poter condividere facilmente la connessione tra il PC Debian e l'Xbox 360. | ||
==Prerequisiti== | |||
Prima di addentrarci nel tecnico, bisogna fornire la configurazione di base. | Prima di addentrarci nel tecnico, bisogna fornire la configurazione di base. | ||
Per sfruttare sia la condivisione internet che file | Per sfruttare sia la condivisione internet che file è necessario impostare l'IP statico sia all'Xbox (potete farlo in "Impostazione di Sistema") che alla scheda di rete alla quale è collegata la console. | ||
Nel nostro caso, '''eth0''' | Nel nostro caso, '''eth0''' è l'interfaccia collegata all'Xbox ed ha IP 192.168.2.1. | ||
L'Xbox 360 ha IP 192.168.2.10; come gateway dovrete impostare l'IP della macchina Linux (per questo abbiamo impostato l'IP statico) ed anche il DNS va impostato con l'IP di Linux. | L'Xbox 360 ha IP 192.168.2.10; come gateway dovrete impostare l'IP della macchina Linux (per questo abbiamo impostato l'IP statico) ed anche il DNS va impostato con l'IP di Linux. | ||
L'interfaccia '''eth1''' | L'interfaccia '''eth1''' è collegata ad internet tramite modem ethernet (e non tratteremo la sua configurazione, dando per scontato che funzioni). | ||
==Condivisione della connessione== | ==Condivisione della connessione== | ||
La configurazione di rete (riassumendo quanto detto poco fa) | La configurazione di rete (riassumendo quanto detto poco fa) è: | ||
internet--> PC Linux --> Xbox 360 | internet--> PC Linux --> Xbox 360 | ||
ovvero l'Xbox si collega ad internet tramite il PC. | ovvero l'Xbox si collega ad internet tramite il PC. | ||
Prima di tutto, verifichiamo il contenuto di /proc/sys/net/ipv4/ip_forward: questa chiave deve avere valore | Prima di tutto, verifichiamo il contenuto di <code>/proc/sys/net/ipv4/ip_forward</code>: questa chiave deve avere valore <code>1</code> per redirigere il traffico da Linux all'Xbox. Se questo valore fosse 0, si può modificare "al volo" con | ||
<pre> | |||
# echo 1 > /proc/sys/net/ipv4/ip_forward | # echo 1 > /proc/sys/net/ipv4/ip_forward | ||
</pre> | |||
ed in maniera definitiva aggiungendo questa stringa al file /etc/sysctl.conf : | ed in maniera definitiva aggiungendo questa stringa al file <code>/etc/sysctl.conf</code>: | ||
<pre> | |||
net.ipv4.ip_forward = 1 | net.ipv4.ip_forward = 1 | ||
</pre> | |||
Per condividere la connessione bisogna impostare questa semplice regola di iptables: | Per condividere la connessione bisogna impostare questa semplice regola di iptables: | ||
<pre> | |||
# iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE | # iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE | ||
</pre> | |||
In pratica, utilizziamo una regola di NAT, nello specifico andiamo a manipolare la "catena" di Postrouting. | In pratica, utilizziamo una regola di NAT, nello specifico andiamo a manipolare la "catena" di Postrouting. | ||
Abbiamo impostato l'IP statico nella console, altrimenti questa regola sarebbe stata impossibile da fare (o quasi). | Abbiamo impostato l'IP statico nella console, altrimenti questa regola sarebbe stata impossibile da fare (o quasi). | ||
Il -j MASQUERADE indica che il pacchetto che ha come sorgente (-s) l'IP dell'Xbox deve essere mascherato e passare al processo di routing che | Il <code>-j MASQUERADE</code> indica che il pacchetto che ha come sorgente (<code>-s</code>) l'IP dell'Xbox deve essere mascherato e passare al processo di routing che porterà il pacchetto ad uscire tramite l'interfaccia eth1: il PC diventa un piccolo router. | ||
{{Warningbox|Ad ogni riavvio, la configurazione di iptables sparirà, rendendo necessario ridare il comando sopra descritto.}} | |||
Ci sono vari modi per mantenere la configurazione di iptables. Uno è quello di usare <code>iptables-save</code> (che salva la configurazione attuale) e poi <code>iptables-restore</code> (che ripristina la configurazione). | |||
Si può utilizzare anche il file <code>interfaces</code>, posto in <code>/etc/network/</code>. | |||
Il file in questione gestisce le interfacce di rete: IP, gateway, impostazioni varie e script. Ecco come figura il file nel mio caso: | |||
<pre> | |||
iface eth0 inet static | iface eth0 inet static | ||
address 192.168.2.1 | address 192.168.2.1 | ||
Riga 44: | Riga 48: | ||
post-up iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE | post-up iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE | ||
post-up ushare -x -c /media/dati2 &>/dev/null & | post-up ushare -x -c /media/dati2 &>/dev/null & | ||
</pre> | |||
Come detto, eth0 è collegata all'Xbox, la quale ha IP 192.168.2.10 mentre la mia scheda ha IP 192.168.2.1. | |||
Come detto, eth0 | <pre> | ||
post-up iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE | post-up iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE | ||
</pre> | |||
il comando post-up indica di eseguire il comando dopo che l'interfaccia eth0 | il comando <code>post-up</code> indica di eseguire il comando dopo che l'interfaccia eth0 è diventata attiva. | ||
<pre> | |||
post-up ushare -x -c /media/dati2 &>/dev/null & | post-up ushare -x -c /media/dati2 &>/dev/null & | ||
</pre> | |||
questo comando lo vedremo dopo e serve per la condivisione dei file tra Linux ed Xbox. | questo comando lo vedremo dopo e serve per la condivisione dei file tra Linux ed Xbox. | ||
L'interfaccia eth0 | L'interfaccia eth0 può essere attivata manualmente tramite | ||
<pre> | |||
# ifup eth0 | # ifup eth0 | ||
</pre> | |||
se invece la si vuole all'avvio, basta scrivere un | se invece la si vuole all'avvio, basta scrivere un | ||
<pre> | |||
auto eth0 | auto eth0 | ||
</pre> | |||
ad inizio file. | ad inizio file. | ||
Se si fa uso di firewall front-end, bisogna verificare la documentazione dello stesso per implementare la regola di iptables sopra descritta. | Se si fa uso di firewall front-end, bisogna verificare la documentazione dello stesso per implementare la regola di iptables sopra descritta. | ||
Per quanto riguarda il file interfaces, anche qui '''non''' si | Per quanto riguarda il file <code>interfaces</code>, anche qui '''non''' si è fatto uso del NetworkManager, preferendo una configurazione diretta ed universale, che non faccia uso di front-end specifici. | ||
Si | Si dà per scontato, inoltre, che iptables non contenga altre regole e che la policy di default sia ACCEPT (si verifica tramite <code>iptables -L</code>). | ||
==Condivisione file== | ==Condivisione file== | ||
Per poter condividere i file tra Linux ed Xbox ci avvaliamo di un programma prezioso: [http://ushare.geexbox.org/ uShare]. | Per poter condividere i file tra Linux ed Xbox ci avvaliamo di un programma prezioso: [http://ushare.geexbox.org/ uShare]. | ||
Scaricate i sorgenti da [http://ushare.geexbox.org/releases/ushare-1.1a.tar.bz2 qui](v1.1a) e compilateli al solito modo: | Scaricate i sorgenti da [http://ushare.geexbox.org/releases/ushare-1.1a.tar.bz2 qui](v1.1a) e compilateli al solito modo: | ||
<pre> | |||
$ cd ushare-src/ | $ cd ushare-src/ | ||
ushare-src: $ ./configure | ushare-src: $ ./configure | ||
ushare-src: $ make | ushare-src: $ make | ||
</pre> | |||
e per installare (da root) | e per installare (da root) | ||
<pre> | |||
ushare-src: # make install | ushare-src: # make install | ||
</pre> | |||
A questo punto, non ci resta che impostare la nostra directory da condividere. | A questo punto, non ci resta che impostare la nostra directory da condividere. | ||
La sintassi base l'abbiamo | La sintassi base l'abbiamo già vista prima, ma rivediamola: | ||
<pre> | |||
# ushare -x -c /media/dati | # ushare -x -c /media/dati | ||
</pre> | |||
ovvero: | ovvero: | ||
-x | ; <code>-x</code>: abilita il supporto per l'Xbox; | ||
-c /media/dati | ; <code>-c /media/dati </code>: condivide il contenuto di <code>/media/dati</code> con l'Xbox. | ||
Se andate a vedere ora sulla vostra console | Se andate a vedere ora sulla vostra console troverete i dati pronti per essere gustati (potrebbe essere necessario riavviare più volte il riconoscimento del PC dall'Xbox). | ||
Impostarlo nel file interfaces con la dicitura post-up ci permette di eseguire in automatico lo script: facendo ifup eth0 si | Impostarlo nel file <code>interfaces</code> con la dicitura post-up ci permette di eseguire in automatico lo script: facendo <code>ifup eth0</code>si abiliterà sia la condivisione internet che file con l'Xbox. |
Versione attuale delle 21:05, 8 nov 2019
Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica. |
Introduzione
L'Xbox 360 (console targata Miscrosoft) permette di rilevare PC Windows nella rete domestica per sfruttare la sua componente di "media services": riprodurre file multimediali dal vostro PC direttamente sull'Xbox. Per chi non ha installato Windows, questa feature resta preclusa. Fino ad ora. Vedremo come poter usufruire di questa opzione anche tramite Debian. Ma non è tutto. Volendo fare una panoramica più generale, possiamo ipotizzare che la nostra console sia collegata direttamente al PC e che quest'ultimo voglia condividere la connessione internet all'Xbox, per usufruire del Live. Vedremo come poter condividere facilmente la connessione tra il PC Debian e l'Xbox 360.
Prerequisiti
Prima di addentrarci nel tecnico, bisogna fornire la configurazione di base. Per sfruttare sia la condivisione internet che file è necessario impostare l'IP statico sia all'Xbox (potete farlo in "Impostazione di Sistema") che alla scheda di rete alla quale è collegata la console. Nel nostro caso, eth0 è l'interfaccia collegata all'Xbox ed ha IP 192.168.2.1. L'Xbox 360 ha IP 192.168.2.10; come gateway dovrete impostare l'IP della macchina Linux (per questo abbiamo impostato l'IP statico) ed anche il DNS va impostato con l'IP di Linux. L'interfaccia eth1 è collegata ad internet tramite modem ethernet (e non tratteremo la sua configurazione, dando per scontato che funzioni).
Condivisione della connessione
La configurazione di rete (riassumendo quanto detto poco fa) è:
internet--> PC Linux --> Xbox 360
ovvero l'Xbox si collega ad internet tramite il PC.
Prima di tutto, verifichiamo il contenuto di /proc/sys/net/ipv4/ip_forward
: questa chiave deve avere valore 1
per redirigere il traffico da Linux all'Xbox. Se questo valore fosse 0, si può modificare "al volo" con
# echo 1 > /proc/sys/net/ipv4/ip_forward
ed in maniera definitiva aggiungendo questa stringa al file /etc/sysctl.conf
:
net.ipv4.ip_forward = 1
Per condividere la connessione bisogna impostare questa semplice regola di iptables:
# iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE
In pratica, utilizziamo una regola di NAT, nello specifico andiamo a manipolare la "catena" di Postrouting.
Abbiamo impostato l'IP statico nella console, altrimenti questa regola sarebbe stata impossibile da fare (o quasi).
Il -j MASQUERADE
indica che il pacchetto che ha come sorgente (-s
) l'IP dell'Xbox deve essere mascherato e passare al processo di routing che porterà il pacchetto ad uscire tramite l'interfaccia eth1: il PC diventa un piccolo router.
ATTENZIONE Ad ogni riavvio, la configurazione di iptables sparirà, rendendo necessario ridare il comando sopra descritto. |
Ci sono vari modi per mantenere la configurazione di iptables. Uno è quello di usare iptables-save
(che salva la configurazione attuale) e poi iptables-restore
(che ripristina la configurazione).
Si può utilizzare anche il file interfaces
, posto in /etc/network/
.
Il file in questione gestisce le interfacce di rete: IP, gateway, impostazioni varie e script. Ecco come figura il file nel mio caso:
iface eth0 inet static address 192.168.2.1 netmask 255.255.255.0 broadcast 192.168.2.255 post-up iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE post-up ushare -x -c /media/dati2 &>/dev/null &
Come detto, eth0 è collegata all'Xbox, la quale ha IP 192.168.2.10 mentre la mia scheda ha IP 192.168.2.1.
post-up iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.10 -j MASQUERADE
il comando post-up
indica di eseguire il comando dopo che l'interfaccia eth0 è diventata attiva.
post-up ushare -x -c /media/dati2 &>/dev/null &
questo comando lo vedremo dopo e serve per la condivisione dei file tra Linux ed Xbox. L'interfaccia eth0 può essere attivata manualmente tramite
# ifup eth0
se invece la si vuole all'avvio, basta scrivere un
auto eth0
ad inizio file.
Se si fa uso di firewall front-end, bisogna verificare la documentazione dello stesso per implementare la regola di iptables sopra descritta.
Per quanto riguarda il file interfaces
, anche qui non si è fatto uso del NetworkManager, preferendo una configurazione diretta ed universale, che non faccia uso di front-end specifici.
Si dà per scontato, inoltre, che iptables non contenga altre regole e che la policy di default sia ACCEPT (si verifica tramite iptables -L
).
Condivisione file
Per poter condividere i file tra Linux ed Xbox ci avvaliamo di un programma prezioso: uShare. Scaricate i sorgenti da qui(v1.1a) e compilateli al solito modo:
$ cd ushare-src/ ushare-src: $ ./configure ushare-src: $ make
e per installare (da root)
ushare-src: # make install
A questo punto, non ci resta che impostare la nostra directory da condividere. La sintassi base l'abbiamo già vista prima, ma rivediamola:
# ushare -x -c /media/dati
ovvero:
-x
- abilita il supporto per l'Xbox;
-c /media/dati
- condivide il contenuto di
/media/dati
con l'Xbox.
Se andate a vedere ora sulla vostra console troverete i dati pronti per essere gustati (potrebbe essere necessario riavviare più volte il riconoscimento del PC dall'Xbox).
Impostarlo nel file interfaces
con la dicitura post-up ci permette di eseguire in automatico lo script: facendo ifup eth0
si abiliterà sia la condivisione internet che file con l'Xbox.