Nota: (22/02/2016) Percebi que essa configuração vaza consultas DNS para os rastreadores de torrent através da WAN normal, em vez de enviá-la pela VPN. Estou investigando como consertar isso. Mas continuarei executando minha configuração, pois a conexão em si usa a VPN corretamente.
Atualização: notei que, quando defino o Transmission para download durante a noite no Beaglebone, o uso da CPU chega a 100% depois de um tempo. Parece que isso não acontece depois da mesma quantidade de tempo; às vezes, tudo fica bem a noite toda; outras, depois de 10 minutos. Ele também pode se recuperar pausando todos os torrents e aguardando que a carga da CPU volte ao normal e iniciando novamente. Eu ainda estou investigando. Uma solução alternativa pode ser pausar e retomar torrents periodicamente, embora não seja uma solução muito boa.
Observe que esse problema se aplica apenas ao Beaglebone e provavelmente a outros dispositivos ARM. Eu nunca tive esse problema em uma CPU x86.
Introdução
Eu desenvolvi e testei esta solução para o Ubuntu 14.04, rodando em um BeagleBone Black. O provedor de VPN que estou usando é chamado ibVPN . No entanto, ele deve funcionar com qualquer hardware suportado (ou seja, em um computador x86 "normal"), com qualquer provedor de VPN compatível com OpenVPN - e provavelmente deve funcionar para a 14.10 ou posterior. Em algum momento, acredito que o Ubuntu usará o SystemD para inicialização, o que significa que os scripts do Upstart usados aqui precisarão ser migrados. Atualização: Jonas Kalderstam tem uma resposta abaixo para usar o SystemD. Também estou assumindo que o ufw está sendo usado como firewall, se você estiver usando algo diferente, os comandos ufw aqui precisarão ser alterados.
Suponho que todo o trabalho seja feito através de uma conexão SSH com o sistema, embora funcionasse tão bem se digitado em um terminal físico.
Este é um tutorial bastante longo, leia tudo primeiro e verifique se você está confortável com o que fará.
Também notei que a transmissão não se liga adequadamente a um endereço IP para o envio de dados UPnP / NAT-PMP - ou seja, dados torrent passam corretamente pela VPN, mas se o encaminhamento de porta UPnP estiver ativado, a transmissão solicitará o encaminhamento da porta do roteador local , não através da VPN do servidor VPN. Por isso, fiz o script Upstart desativar o encaminhamento de porta, pois pode parecer que funcionou, mas não funcionou. Deve ser possível usar o iptables e o iproute para forçar todo o tráfego do usuário de transmissão debian através da VPN, mas ainda estou analisando isso. Também deveria funcionar se a rota padrão fosse alterada para enviar todos os dados da Internet por meio da VPN, mas eu não queria fazer isso porque também utilizava esse servidor para outras coisas, e isso também faria com que todas as atualizações do sistema passassem pelo VPN.Esta pergunta tem mais informações se você realmente deseja que o UPnP funcione através da VPN .
Atualização: falk0069 tem uma dica fantástica abaixo para ajudar a incentivar o UPnP através da VPN.
Instalando e configurando o OpenVPN
Eu recomendo que você tente fazer sua conexão VPN funcionar usando o Ubuntu antes de tentar fazê-la funcionar aqui - ou seja, em um desktop. Isso confirmará que você possui a configuração correta e reduzirá o tempo gasto na depuração.
Primeiro, instale os pacotes necessários
sudo apt-get install openvpn
Em seguida, crie um diretório para armazenar os arquivos de configuração. Estou usando / opt / ibVPN, pois esse é o provedor que estou usando. Mude para o que quiser.
sudo mkdir /opt/ibVPN
A primeira coisa a fazer neste novo diretório é criar o arquivo de configuração para executar o cliente VPN. O ibVPN fornece um arquivo de configuração básico para usuários do Linux, que eu apenas copiei e colei.
cd /opt/ibVPN
sudo vim config.ovpn
Copie e cole sua versão editada no vim, usando as configurações do seu provedor de VPN. (FYI, cole no terminal Ubuntu é Ctrl+Shift+V
) Você deve conseguir isso com seu provedor de VPN.
remote 888.888.888.888 1194 udp #This address will be different for you
client
dev tap1
resolv-retry infinite
script-security 3 system
explicit-exit-notify 3
persist-key
mute-replay-warnings
ca ibvpn.com.crt
comp-lzo
verb 3
mute 20
ns-cert-type server
fragment 1300
route-delay 2
reneg-sec 0
max-routes 5000
link-mtu 1578
auth-user-pass pass
auth-nocache
persist-tun
route-noexec
lport 1195
lladdr 00:FF:11:AA:BB:CC
route-up "/opt/home/openvpn/route-up.sh"
down "/opt/home/openvpn/down.sh"
Para aqueles que não estão familiarizados com o vim, pressione Insert
para digitar ou colar texto e pressione Escape
e digite :wq
para salvar e sair. Obviamente, você não precisa usar o vim - qualquer editor de texto funcionará.
Explicarei rapidamente esse arquivo de configuração: As primeiras 18 linhas especificam as configurações específicas a serem usadas com o servidor, elas vieram do ibVPN - as suas provavelmente serão ligeiramente diferentes se você tiver um provedor diferente. As próximas linhas são opções modificadas que eu especifiquei.
Se o seu arquivo de configurações tiver linhas auth-user*
, comente-as. Para que essa configuração funcione automaticamente, precisamos ter um arquivo com o nome de usuário e a senha - portanto, verifique se a senha que você escolheu para o provedor de VPN é forte, aleatória e exclusiva.
O auth-user-pass pass
comando diz ao OpenVPN para procurar um arquivo chamado pass
para ler o usuário e a senha.
auth-nocache
remove a senha da memória, o que pode aumentar um pouco a segurança se você estiver preocupado com isso.
persist-tun
tentará manter o mesmo endereço IP do servidor se sua conexão cair, o que, esperamos, significa menos inicialização e parada do Transmission-daemon.
route-noexec
diz ao cliente OpenVPN para não usar automaticamente as rotas fornecidas pelo servidor - o que puxaria todo o tráfego da rede pela VPN. Apenas queremos enviar tráfego de torrent, portanto, precisaremos usar diferentes configurações de roteamento.
lport 1195
diz ao cliente OpenVPN para usar a porta 1195 em vez de 1194 - no meu caso, também quero executar um servidor OpenVPN no mesmo dispositivo, e o servidor precisará usar a porta 1194. Mesmo se você não estiver executando um servidor OpenVPN, não dói fazer essa mudança.
Alterei a linha dev tap
para dev tap1
, para forçar o dispositivo virtual a ser tap1 em vez de ser atribuído pelo OpenVPN, novamente por causa da execução de um servidor OpenVPN separado. Mesmo se você não estiver executando um servidor VPN, essa alteração não deve importar. Os scripts do firewall foram escritos para uso tap1
, portanto, se você preferir usar outro dispositivo, lembre-se de alterá-los quando apropriado.
lladdr 00:FF:11:AA:BB:CC
diz ao OpenVPN para atribuir a interface de toque a esse endereço MAC, o que pode ser útil para as regras de firewall do iptables.
route-up
e down
execute scripts para iniciar e parar o Transmission-daemon, conforme necessário - estes são necessários aqui porque são executados com variáveis de ambiente que contêm informações sobre a conexão, necessárias para ligar corretamente a Transmission ao endereço IP e à porta corretos.
No meu caso, eu tinha um certificado de servidor do provedor VPN - que também precisa estar no mesmo diretório que o arquivo de configuração.
sudo vim /opt/ibVPN/ibvpn.com.crt
Copie e cole isso ou mova-o via SCP ou SSHFS.
-----BEGIN CERTIFICATE-----
MIIDeDCCAuGgAwIBAgIJAMVKgpjMPUfxMA0GCSqGSIb3DQEBBQUAMIGFMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCQ0ExFTATBgNVBAcTDFNhbkZyYW5jaXNjbzEVMBMG
A1UEChMMRm9ydC1GdW5zdG9uMRgwFgYDVQQDEw9Gb3J0LUZ1bnN0b24gQ0ExITAf
BgkqhkiG9w0BCQEWEm1lQG15aG9zdC5teWRvbWFpbjAeFw0xMDA3MjExOTU5MzVa
Fw0yMDA3MTgxOTU5MzVaMIGFMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFTAT
BgNVBAcTDFNhbkZyYW5jaXNjbzEVMBMGA1UEChMMRm9ydC1GdW5zdG9uMRgwFgYD
VQQDEw9Gb3J0LUZ1bnN0b24gQ0ExITAfBgkqhkiG9w0BCQEWEm1lQG15aG9zdC5t
eWRvbWFpbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAz23m3BXY5Asiw8Dx
T4F6feqsp+pIx6ivftTniyUCbSAxI1J1s1x75DzxmUpIwPu5xavzgPXgZr8FT81X
JGqF9km4AE95iddJawKx0wNgdTo7GximQq9rw0dsQIB5hZZQ9TJwHC3VOnmEic5A
OawKOCybMcRs8saLakZOgh7Xc+UCAwEAAaOB7TCB6jAdBgNVHQ4EFgQUeRhE2N4l
XwL4H1dbjkZ4ou6fj3AwgboGA1UdIwSBsjCBr4AUeRhE2N4lXwL4H1dbjkZ4ou6f
j3ChgYukgYgwgYUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEVMBMGA1UEBxMM
U2FuRnJhbmNpc2NvMRUwEwYDVQQKEwxGb3J0LUZ1bnN0b24xGDAWBgNVBAMTD0Zv
cnQtRnVuc3RvbiBDQTEhMB8GCSqGSIb3DQEJARYSbWVAbXlob3N0Lm15ZG9tYWlu
ggkAxUqCmMw9R/EwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQASt0pl
WzVseQLTNM8Mlgw4ZnGAv/x2xnijmMqrkE+F7pnaOicGpxgCfMKzjZuJu0TNJqF2
fibE7GhMdomD4dLFgIu8Wb5E7iQ1CSBEOGumRhK8qCsDzjr7WXUdhqA6Xvo+ylU6
DMzy0Wn3NNvfGC+qxOgybYCJwDnVPi0CEDSbzQ==
-----END CERTIFICATE-----
Obviamente, se você não estiver usando uma conta ibVPN, seu certificado será diferente.
Vamos agora criar o arquivo de senha:
sudo vim /opt/ibVPN/pass
A primeira linha deve ser o nome de usuário completo e a segunda linha deve ser a senha. Esse deve ser o único conteúdo deste arquivo.
you@address.com
myBIGstrongpassword1234567890
Também precisamos garantir as permissões nesse arquivo, ou o OpenVPN não será iniciado.
sudo chmod 400 pass
Isso tornará o arquivo somente leitura e apenas para o proprietário (ou seja, nenhum outro usuário poderá lê-lo)
Esses comandos criarão os arquivos a serem executados na inicialização e os definirão para serem executáveis somente pela raiz.
sudo touch route-up.sh
sudo touch down.sh
sudo chmod 700 route-up.sh
sudo chmod 700 down.sh
Neste ponto, provavelmente é uma boa ideia testar se a conexão VPN realmente funciona. Inicie a conexão com:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
Você verá avisos de que os comandos externos para cima e para baixo não puderam ser executados, mas não se preocupe com isso. Se funcionar, você verá Initialization Sequence Completed
no terminal. Pressione Control+C
para finalizar a conexão. Se não funcionar, você terá que investigar por que não e corrigi-lo antes de continuar. Descobri que algumas vezes eram necessárias algumas tentativas para começar a trabalhar. Verifique se o seu arquivo de senha está correto. Existem muitos recursos excelentes na Internet sobre o OpenVPN, então dê uma olhada.
Neste ponto, provavelmente é mais fácil avançar para colocar a Transmission em funcionamento. Depois de ter certeza de que a VPN e a transmissão podem ser executadas separadamente, elas podem ser combinadas.
Instalando e configurando a transmissão
Instale os pacotes necessários:
sudo apt-get install transmission-daemon
Por padrão, a transmissão será executada automaticamente na inicialização. Como eventualmente usaremos o OpenVPN para iniciar a transmissão, queremos desativar isso. Para fazer isso, edite o arquivo de configuração para o Transmission-daemon
sudo vim /etc/default/transmission-daemon
E altere a seguinte linha para ler:
ENABLE_DAEMON=0
Agora a transmissão não inicia na inicialização.
Vamos agora criar um diretório para as configurações de Transmissão residirem e para os torrents baixados. Isso pressupõe que você já configurou algum tipo de disco e está montado em / media / arm-disk /. Por questões de segurança, o daemon será executado por seu próprio usuário, e não como root ou como "ubuntu". Um novo usuário é criado pelo instalador para o daemon de transmissão, "debian-transmission". Esse usuário precisa possuir a pasta que criamos e ter acesso de leitura e gravação ao local de armazenamento dos torrents que estão sendo baixados.
sudo mkdir /opt/transmission
sudo chown debian-transmission:debian-transmission /opt/transmission
sudo mkdir /media/arm-disk/torrents-complete
sudo chown debian-transmission:debian-transmission /media/arm-disk/torrents-complete
sudo mkdir /media/arm-disk/torrents-incomplete
sudo chown debian-transmission:debian-transmission /media/arm-disk/torrents-incomplete
Agora precisamos iniciar a transmissão, apenas brevemente, para que ele crie o arquivo de configurações que precisamos:
sudo -u debian-transmission -g debian-transmission /usr/bin/transmission-daemon --config-dir /opt/transmission --foreground
Este comando inicia o daemon de transmissão como o usuário da transmissão do debian, instrui-o a usar o diretório / opt / transmission para os arquivos de configurações e instrui-o a continuar em execução em primeiro plano. Depois de alguns segundos, pressione Control+C
para finalizar. Agora podemos editar o arquivo de configurações.
sudo -u debian-transmission vim /opt/transmission/settings.json
Agora precisamos mudar para as seguintes linhas de seus padrões para ler:
"download-dir": "/media/arm-disk/torrents-complete",
"incomplete-dir": "/media/arm-disk/torrents-incomplete",
"incomplete-dir-enabled": true,
"rpc-whitelist": "127.0.0.1,192.168.1.*",
Salvar e sair (Escape, digite: wq e pressione Enter)
As duas edições do meio permitirão o uso do diretório "incompleto", separando os torrents finalizados dos inacabados. Isso não é completamente necessário, mas pessoalmente acho extremamente útil. A última edição permite que a GUI da web seja acessada por qualquer computador na LAN (supondo que sua sub-rede LAN seja 192.168.1.0, modifique-a se for diferente).
Agora é uma boa ideia rodar o Transmission novamente, para ver se funciona e pode realmente baixar um torrent. Usaremos uma janela do navegador da web para acessar a GUI e adicionar um torrent. Primeiro, vamos permitir o acesso à GUI da web através do firewall da LAN e, em seguida, execute o daemon de transmissão novamente.
sudo ufw allow in from 192.168.0.0/16 to any port 9091
sudo -u debian-transmission -g debian-transmission /usr/bin/transmission-daemon --config-dir /opt/transmission --foreground
Visite este URL no Firefox (ou em qualquer navegador que você preferir): http://XXX.XXX.XXX.XXX:9091 , onde XXX é substituído pelo endereço do seu servidor na LAN (por exemplo, 192.168.1.10). Encontre um torrent para download, por exemplo, Big Buck Bunny em 1080p60hz. Este é um curta-metragem gratuito, disponível legalmente para download gratuito. Na GUI de transmissão, clique no botão "Abrir Torrent" e cole este link (ou qualquer outro torrent que você desejar) na primeira caixa. Então pressione "Upload". Se a transmissão estiver funcionando corretamente, o torrent começará a baixar. Se isso não acontecer, você precisará descobrir o motivo antes de continuar. Existem muitos recursos disponíveis na Internet para usar o daemon de transmissão. Também pode ser que o torrent que você escolheu não esteja funcionando, tente alguns outros primeiro.
Quando o download estiver concluído, pressione Control+C
na janela do terminal para parar o daemon de transmissão.
Configurar transmissão de ligação à interface VPN
Agora vamos criar um script Upstart, que será usado para iniciar a transmissão quando a VPN estiver pronta.
sudo mv /etc/init/transmission-daemon.conf /etc/init/transmission-daemon.conf.bak
Não se preocupe se isso reclamar, é apenas para fazer um backup do arquivo Upstart, se ele existir - ele pode não ter. Vamos abrir o vim para editar o novo:
sudo vim /etc/init/transmission-daemon.conf
Cole isso no editor:
description "transmission-daemon, attached to OpenVPN tunnel tap1"
start on transmission-daemon-start
stop on runlevel [!2345] or transmission-vpn-down
# This includes the information from OpenVPN into this environment
export LOCAL_IP
env PORT=51413
# give time to send info to trackers
kill timeout 30
# Run as unprivileged user
setuid debian-transmission
setgid debian-transmission
# Start transmission again if it stops for some reason
respawn
# If transmission stops 5 times in a minute, give up trying to respawn it
respawn limit 5 60
exec /usr/bin/nice -15 /usr/bin/transmission-daemon --config-dir /opt/transmission --bind-address-ipv4 $LOCAL_IP --peerport $PORT --no-portmap --foreground
Salve e feche o vim. ( Escape
, digite :wq
). Novamente, abra o vim:
sudo vim /etc/init/transmission-up.conf
E cole este:
description "Script to create firewall and routing rules for transmission-daemon"
start on transmission-vpn-up
# This includes the information from OpenVPN into this environment
export VPN_GATEWAY
export LOCAL_IP
env PORT=51413
task
script
# Set up IP route, firewall rules
# It doesn't matter if they already exist, they will be skipped
/sbin/ip route add default via $VPN_GATEWAY dev tap1 table 200
/sbin/ip rule add from $LOCAL_IP table 200
/sbin/ip route flush cache
/usr/sbin/ufw insert 1 reject out on eth0 from any port $PORT
/usr/sbin/ufw insert 1 reject in on eth0 to any port $PORT
/usr/sbin/ufw insert 1 deny in on tap1 to any
/usr/sbin/ufw insert 1 allow in on tap1 to any port $PORT proto udp
# Start the actual transmission-daemon process, in a separate task so that unprivileged user/group can be set
/sbin/initctl emit transmission-daemon-start LOCAL_IP=$LOCAL_IP
end script
Mais uma vez, salve e feche o vim. ( Escape
, digite :wq
). Finalmente:
sudo vim /etc/init/transmission-down.conf
Cole isto:
description "Script to remove firewall rules for transmission-daemon"
start on runlevel [!2345] or stopping openvpn-transmission
env PORT=51413
task
script
# Take down IP route, firewall rules
# It doesn't really matter if they don't get taken down, but this will be cleaner
/usr/sbin/ufw delete reject out on eth0 from any port $PORT
/usr/sbin/ufw delete reject in on eth0 to any port $PORT
/usr/sbin/ufw delete deny in on tap1 to any
/usr/sbin/ufw delete allow in on tap1 to any port $PORT proto udp
/sbin/ip route flush cache
end script
Esses scripts dizem ao Upstart para ouvir o sinal "transmissão-vpn-up". O script "conversion-up.conf" configura as regras de roteamento necessárias para enviar tráfego do endereço VPN local por meio da interface VPN e define o firewall para permitir o tráfego da VPN para a porta de escuta de Transmissão. O tráfego direcionado para a porta de escuta da transmissão a partir da interface normal da LAN está bloqueado. O script "transmission-daemon.conf" inicia a transmissão-daemon com as configurações necessárias para vinculá-lo ao endereço IP da VPN. Observe que este comando também garantirá que o UPnP / NAT-PMP esteja desativado - veja minha observação no topo sobre encaminhamento de porta. O "nice -15" define a Transmission para ter uma prioridade mais baixa, que eu achei útil ao usar o BeagleBone de especificação inferior - às vezes a Transmission pode consumir recursos, o que atrasa o sistema. Pelo menos com baixa prioridade, tarefas mais importantes do sistema ainda podem ser executadas. O script "conversion-down.conf" removerá as regras de firewall quando a VPN for parada. Três scripts diferentes são usados para que o daemon de transmissão possa ser executado como um usuário sem privilégios, mas as regras do firewall podem ser executadas como raiz.
Agora vamos voltar às configurações do OpenVPN e editar os scripts "route-up" e "down" para acionar o início e a parada do script de transmissão.
sudo vim /opt/ibVPN/route-up.sh
Cole isso no vim:
#! /bin/bash
/sbin/initctl emit transmission-vpn-up VPN_GATEWAY=$route_vpn_gateway LOCAL_IP=$ifconfig_local
Tudo o que esse script faz é dizer ao Iniciante que o daemon de transmissão deve iniciar e fornece as informações necessárias para conectar à conexão VPN.
sudo vim /opt/ibVPN/down.sh
Novamente, mais colagem:
#! /bin/bash
/sbin/initctl emit transmission-vpn-down
Esse script é ainda mais simples - sinaliza para a transmissão-daemon parar.
Nesse momento, é provavelmente uma boa idéia garantir que o proprietário de toda a pasta de configuração da VPN seja o usuário raiz - uma vez que esses scripts são executados como raiz, qualquer pessoa que possa alterá-los pode executar o que quiser como usuário raiz.
sudo chown root:root -R /opt/ibVPN
sudo chmod 700 -R /opt/ibVPN
sudo chmod 400 /opt/ibVPN/pass
Agora, isso significa que apenas o usuário root pode modificar ou visualizar as configurações de conexão VPN.
OK, estamos quase terminando! Vamos testar se nossa configuração está funcionando até agora:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
Conecte-se novamente à GUI da web da transmissão e retome o torrent existente ou adicione um novo. Deve ser capaz de fazer o download, talvez depois de alguns minutos de espera pelos colegas. Uma maneira bacana que encontrei de testar se está funcionando ou não é examinar o iftop. Instale o iftop e execute:
sudo apt-get install iftop
sudo iftop -i tap1
Essa tela mostrará todas as conexões em execução na VPN. Se o seu torrent estiver baixando e estiver usando corretamente a VPN, haverá muitos endereços IP e nomes de host aqui. Veja também iftop para a conexão LAN:
sudo iftop -i eth0
Aqui você deve ver uma grande quantidade de tráfego para um único endereço IP, sendo o servidor VPN e, em seguida, apenas o tráfego mínimo para outros dispositivos de LAN - supondo que você não esteja executando outros serviços no seu BeagleBone.
Você pode confirmar que a VPN está funcionando seguindo estas instruções .
Este site permite que você baixe um torrent para ver o endereço IP que outros colegas usam para se conectar a você - se tudo estiver funcionando, será o endereço IP da VPN e não o seu próprio endereço IP da WAN.
Se você estiver com problemas, poderá ver o log de erros do Upstart fazendo:
sudo tail -f /var/log/upstart/transmission-daemon.log
Em uma janela separada do terminal / SSH, tente executar o comando tail ao iniciar a conexão VPN como acima e procure por mensagens de erro. Espero que você possa resolver o problema vendo as mensagens de erro, se não tiver uma escavação na Internet ou postar um comentário.
Configure tudo para iniciar automaticamente
Se você estiver satisfeito com a emissão manual do comando para iniciar o túnel do OpenVPN ou desejar fazê-lo com seu próprio script, estará pronto. Mas eu queria que ele iniciasse na inicialização, então criei outro script Upstart para iniciar o OpenVPN.
sudo vim /etc/init/openvpn-transmission.conf
Esta é a última coisa que temos que colar!
description "OpenVPN client, with attached transmission-daemon"
start on started networking
stop on runlevel [!2345] or stopped networking
# Give time for Transmission to send info to trackers, wait for graceful close
kill timeout 45
# Start the OpenVPN tunnel again if it stops for some reason
respawn
# If it stops 5 times in a minute, give up trying to respawn it
respawn limit 5 60
exec openvpn --cd /opt/ibVPN --config config.ovpn
post-stop script
# Pause for a few seconds, before exiting
/bin/sleep 3s
end script
Tudo isso é esperar que o sistema sinalize que a rede está pronta e, em seguida, iniciará o túnel OpenVPN - que, por sua vez, iniciará a transmissão. Quando o sistema é desligado ou se a rede é desativada por algum motivo, o Upstart remove as regras do firewall e fecha o daemon de transmissão. Simples! Isso continuará a funcionar após uma reinicialização também, agora você está pronto.
Para interagir com a transmissão, use a GUI da web como fizemos durante a fase de configuração. Também é possível tornar a GUI acessível pela Internet, configurando o encaminhamento de porta. Existem muitos tutoriais sobre como fazer isso, então não vou repeti-lo aqui.
Quanto a obter os downloads concluídos do BeagleBone, estou usando o NFS. Posso obter velocidades de cópia de cerca de 8 MB / s através da LAN do BeagleBone para o meu computador desktop - o que é muito bom para um dispositivo de baixa potência. O Ubuntu fornece algumas informações úteis para configurar isso.