Примечание: (2016-02-22) Я понял, что эта конфигурация пропускает DNS-запросы к торрент-трекерам через обычную глобальную сеть, а не отправляет их через VPN. Я расследую, как это исправить. Я собираюсь продолжать работать с моей конфигурацией, так как само соединение использует VPN правильно.
Обновление: я заметил, что когда я устанавливаю Transmission для загрузки на Beaglebone в течение ночи, загрузка ЦП через некоторое время достигает 100%. Похоже, что это не происходит через одно и то же время, иногда все хорошо, а иногда - через 10 минут. Он также может восстановиться, приостановив все торренты и подождав, пока загрузка процессора вернется к нормальному состоянию, а затем запустится снова. Я все еще расследую. Обходной путь может состоять в том, чтобы периодически приостанавливать и возобновлять торренты, хотя это не очень хороший обходной путь.
Обратите внимание, что эта проблема касается только Beaglebone и, возможно, других устройств ARM. У меня никогда не было этой проблемы на процессоре x86.
Вступление
Я разработал и протестировал это решение для Ubuntu 14.04, работающей на BeagleBone Black. Провайдер VPN, который я использую, называется ibVPN . Он должен работать с любым поддерживаемым оборудованием (например, на «нормальном» компьютере с архитектурой x86), с любым OpenVPN-совместимым провайдером VPN - и, вероятно, должен работать для 14.10 или более поздней версии. В какой-то момент я считаю, что Ubuntu будет использовать SystemD для загрузки, а это означает, что используемые здесь сценарии Upstart необходимо будет перенести. Обновление: Jonas Kalderstam имеет ответ ниже для использования SystemD. Я также предполагаю, что в качестве брандмауэра используется ufw, если вы используете что-то другое, то здесь нужно будет изменить команды ufw.
Я предполагаю, что вся работа выполняется по SSH-соединению с системой, хотя она будет работать так же хорошо, если набрать ее на физическом терминале.
Это довольно длинный урок, пожалуйста, сначала прочитайте все и убедитесь, что вы довольны тем, что будете делать.
Я также заметил, что передача не связывается должным образом с IP-адресом для отправки данных UPnP / NAT-PMP - то есть торрент-данные корректно проходят через VPN, но если включена переадресация порта UPnP, передача будет запрашивать переадресацию порта с локального маршрутизатора. , а не через VPN с сервера VPN. Поэтому я заставил скрипт Upstart отключить переадресацию портов, поскольку он может выглядеть так, как будто он работает, но это не так. Должна быть возможность использовать iptables и iproute для принудительной передачи всего трафика от пользователя передачи debian через VPN, но я все еще изучаю это. Он также должен работать, если маршрут по умолчанию был изменен для отправки всех данных из Интернета через VPN, но я не хотел этого делать, потому что я использую этот сервер и для других целей, и это также приведет к тому, что все обновления системы будут проходить через VPN.Этот вопрос содержит дополнительную информацию, если вы действительно хотите, чтобы UPnP работал через VPN .
Обновление: falk0069 имеет фантастический совет ниже, чтобы помочь стимулировать UPnP через VPN.
Установка и настройка OpenVPN
Я бы порекомендовал вам попробовать заставить ваше VPN-соединение работать с использованием Ubuntu, прежде чем пытаться заставить его работать здесь - то есть с рабочего стола. Это подтвердит правильность конфигурации и сократит время, затрачиваемое на отладку.
Во-первых, установите необходимые пакеты
sudo apt-get install openvpn
Затем создайте каталог для хранения файлов конфигурации. Я использую / opt / ibVPN, так как это провайдер, которого я использую. Измените это на то, что вам нравится.
sudo mkdir /opt/ibVPN
Первое, что нужно сделать в этом новом каталоге, это создать файл конфигурации для запуска VPN-клиента. ibVPN предоставляет основной файл конфигурации для пользователей Linux, который я в основном только что скопировал и вставил.
cd /opt/ibVPN
sudo vim config.ovpn
Скопируйте и вставьте отредактированную версию в vim, используя настройки вашего провайдера VPN. (К вашему сведению, вставьте в терминал Ubuntu Ctrl+Shift+V
). Вы сможете получить это у своего провайдера 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"
Если вы не знакомы с vim, нажмите, Insert
чтобы ввести или вставить текст, затем нажмите Escape
и введите, :wq
чтобы сохранить и выйти. Конечно, вам не нужно использовать vim - любой текстовый редактор будет работать.
Я быстро объясню этот файл конфигурации: первые 18 строк определяют конкретные настройки для использования с сервером, они взяты из ibVPN - ваши, вероятно, будут немного отличаться, если у вас другой поставщик. Следующие строки представляют собой измененные параметры, которые я указал.
Если в вашем файле настроек есть какие-либо строки auth-user*
, закомментируйте их. Чтобы эта настройка работала автоматически, нам нужен файл с именем пользователя и паролем, поэтому убедитесь, что пароль, выбранный вами для провайдера VPN, является надежным, случайным и уникальным.
Он auth-user-pass pass
сообщает OpenVPN, что нужно искать файл pass
для вызова пользователя и пароля.
auth-nocache
удаляет пароль из памяти, что может немного повысить безопасность, если вы беспокоитесь об этом.
persist-tun
будет пытаться сохранить тот же IP-адрес от сервера, если ваше соединение оборвется, что, как мы надеемся, должно означать меньше запуска и остановки Transmission-daemon.
route-noexec
говорит клиенту OpenVPN не использовать автоматически маршруты, предоставленные сервером, что перетянет весь сетевой трафик через VPN. Мы просто хотим отправлять торрент-трафик, поэтому нам нужно будет использовать разные настройки маршрутизации.
lport 1195
говорит клиенту OpenVPN использовать порт 1195 вместо 1194 - в моем случае я также хочу запустить сервер OpenVPN на том же устройстве, и серверу нужно будет использовать порт 1194. Даже если вы не используете сервер OpenVPN, он не помешает сделать это изменение.
Я изменил строку dev tap
на dev tap1
, чтобы заставить виртуальное устройство быть tap1 вместо того, чтобы быть назначенным OpenVPN, снова из-за запуска отдельного сервера OpenVPN. Даже если вы не используете VPN-сервер, это изменение не должно иметь значения. Сценарии брандмауэра были написаны для использования tap1
, поэтому, если вы предпочитаете использовать другое устройство, не забудьте изменить эти сценарии, где это необходимо.
lladdr 00:FF:11:AA:BB:CC
говорит OpenVPN назначить интерфейсу касания этот MAC-адрес, что может быть полезно для правил брандмауэра iptables.
route-up
и down
запускать сценарии для запуска и остановки Transmission-daemon по мере необходимости - они необходимы здесь, потому что они работают с переменными среды, содержащими информацию о соединении, которая необходима для правильной привязки Transmission к нужному IP-адресу и порту.
В моем случае у меня был сертификат сервера от провайдера VPN, который также должен находиться в том же каталоге, что и файл конфигурации.
sudo vim /opt/ibVPN/ibvpn.com.crt
Скопируйте и вставьте это или переместите через SCP или 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-----
Очевидно, что если вы не используете учетную запись ibVPN, ваш сертификат будет другим.
Давайте теперь создадим файл паролей:
sudo vim /opt/ibVPN/pass
Первая строка должна быть полным именем пользователя, затем вторая строка должна быть паролем. Это должно быть единственным содержимым этого файла.
you@address.com
myBIGstrongpassword1234567890
Мы также должны защитить разрешения для этого файла, иначе OpenVPN не запустится.
sudo chmod 400 pass
Это сделает файл доступным только для чтения и только для владельца (т.е. никакой другой пользователь не сможет его прочитать)
Эти команды создадут файлы для запуска при запуске и сделают их исполняемыми только пользователем root.
sudo touch route-up.sh
sudo touch down.sh
sudo chmod 700 route-up.sh
sudo chmod 700 down.sh
На этом этапе, вероятно, стоит проверить, действительно ли работает VPN-соединение. Начать соединение с:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
Вы увидите предупреждения о том, что внешние команды up и down не могут быть запущены, но не беспокойтесь об этом. Если это работает, вы увидите Initialization Sequence Completed
на терминале. Нажмите, Control+C
чтобы завершить соединение. Если это не сработает, вам придется выяснить, почему нет и исправить это, прежде чем продолжить. Я обнаружил, что иногда требуется несколько ходов, чтобы начать работать. Убедитесь, что ваш файл паролей правильный. В Интернете есть много отличных ресурсов об OpenVPN, так что взгляните вокруг.
На данный момент, вероятно, проще всего перейти к настройке и запуску Transmission. Если вы уверены, что VPN и Transmission могут работать раздельно, их можно объединить.
Установка и настройка трансмиссии
Установите необходимые пакеты:
sudo apt-get install transmission-daemon
По умолчанию Transmission будет запускаться автоматически при загрузке. Поскольку в конечном итоге мы будем использовать OpenVPN для запуска передачи, мы хотим отключить это. Для этого отредактируйте файл конфигурации для Transmission-daemon
sudo vim /etc/default/transmission-daemon
И измените следующую строку, чтобы читать:
ENABLE_DAEMON=0
Теперь передача не начнется при загрузке.
Теперь давайте создадим каталог для настроек передачи, в которых будут находиться загруженные торренты. Это предполагает, что вы уже настроили какой-то диск, и он смонтирован в / media / arm-disk /. В целях безопасности демон будет запускаться своим собственным пользователем, а не как пользователь root или как «ubuntu». Новый пользователь создается установщиком для демона передачи "debian-transmission". Этот пользователь должен владеть папкой, которую мы создаем, и иметь права на чтение и запись в хранилище для загружаемых торрентов.
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
Теперь нам нужно кратко начать передачу, чтобы он создал нужный файл настроек:
sudo -u debian-transmission -g debian-transmission /usr/bin/transmission-daemon --config-dir /opt/transmission --foreground
Эта команда запускает демона передачи в качестве пользователя debian-translation, говорит ему использовать каталог / opt / transmission для файлов настроек и говорит, что он должен работать на переднем плане. Как только он запустится в течение нескольких секунд, нажмите, Control+C
чтобы завершить его. Теперь мы можем редактировать файл настроек.
sudo -u debian-transmission vim /opt/transmission/settings.json
Теперь нам нужно перейти к следующим строкам по умолчанию:
"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.*",
Сохранить и выйти (Escape, введите: wq и нажмите Enter)
Средние два редактирования позволят использовать «неполный» каталог, отделяя ваши законченные торренты от незаконченных. Это не совсем необходимо, но я лично нахожу это чрезвычайно полезным. Последнее редактирование позволяет получить доступ к веб-интерфейсу с любого компьютера в локальной сети (при условии, что ваша подсеть локальной сети - 192.168.1.0, измените ее, если она отличается).
Теперь хорошей идеей будет снова запустить Transmission, чтобы посмотреть, работает ли она и действительно ли она может загрузить торрент. Мы будем использовать окно веб-браузера для доступа к графическому интерфейсу и добавления торрента. Сначала давайте разрешим доступ к веб-интерфейсу через брандмауэр из локальной сети, затем снова запустим демо-передачу.
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
Посетите этот URL в Firefox (или любом другом браузере): http://XXX.XXX.XXX.XXX:9091 , где XXX заменяется адресом вашего сервера в локальной сети (т. Е. 192.168.1.10). Найдите торрент для загрузки, например Big Buck Bunny в разрешении 1080p60hz. Это бесплатный короткометражный фильм, легально доступный для бесплатного скачивания. В графическом интерфейсе передачи нажмите кнопку «Открыть торрент » и вставьте эту ссылку (или любой другой понравившийся торрент) в первое поле. Затем нажмите «Загрузить». Если передача работает правильно, торрент начнет загружаться. Если этого не произойдет, то вам нужно выяснить, почему, прежде чем продолжить. В Интернете доступно множество ресурсов для использования демона передачи. Это также может быть тот поток, который вы выбрали, не работает, попробуйте сначала несколько других.
После завершения загрузки нажмите Control+C
в окне терминала, чтобы остановить передачу-демон.
Настроить привязку передачи на интерфейс VPN
Теперь давайте создадим сценарий Upstart, который будет использоваться для запуска передачи, когда VPN будет готова.
sudo mv /etc/init/transmission-daemon.conf /etc/init/transmission-daemon.conf.bak
Не беспокойтесь, если это будет жаловаться, просто сделайте резервную копию файла Upstart, если он существует - его может и не быть. Давайте откроем vim для редактирования нового:
sudo vim /etc/init/transmission-daemon.conf
Вставьте это в редактор:
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
Сохраните и закройте vim. ( Escape
затем введите :wq
). Снова откройте vim:
sudo vim /etc/init/transmission-up.conf
И вставьте это:
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
Снова сохраните и закройте vim. ( Escape
затем введите :wq
). В заключение:
sudo vim /etc/init/transmission-down.conf
Вставьте это:
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
Эти сценарии сообщают Upstart прислушиваться к сигналу «translation-vpn-up». Затем сценарий «translation-up.conf» устанавливает необходимые правила маршрутизации для отправки трафика с локального адреса VPN через интерфейс VPN и настраивает межсетевой экран на пропуск трафика из VPN в порт прослушивания для передачи. Трафик, направляемый на порт прослушивания Transmission из обычного интерфейса LAN, блокируется. Затем сценарий «translation-daemon.conf» запускает демона передачи с необходимыми настройками, чтобы привязать его к IP-адресу VPN. Обратите внимание, что эта команда также обеспечит отключение UPnP / NAT-PMP - см. Мою заметку вверху о переадресации портов. "Nice -15" устанавливает Transmission на более низкий приоритет, что я считаю полезным при использовании BeagleBone с более низкой спецификацией - иногда Transmission может захватывать ресурсы, что замедляет работу системы. По крайней мере, с низким приоритетом, более важные системные задачи могут выполняться. Сценарий «translation-down.conf» удалит правила брандмауэра при остановке VPN. Три различных сценария используются для того, чтобы демон передачи можно было запускать как непривилегированный пользователь, но правила брандмауэра можно запускать как root.
Теперь давайте вернемся к настройкам OpenVPN и отредактируем сценарии «route-up» и «down», чтобы запускать и останавливать наш скрипт Transmission.
sudo vim /opt/ibVPN/route-up.sh
Вставьте это в vim:
#! /bin/bash
/sbin/initctl emit transmission-vpn-up VPN_GATEWAY=$route_vpn_gateway LOCAL_IP=$ifconfig_local
Все, что делает этот скрипт, говорит Upstart, что демон передачи должен запуститься, и дает ему информацию, необходимую для подключения к VPN-соединению.
sudo vim /opt/ibVPN/down.sh
Опять же приклеиваем:
#! /bin/bash
/sbin/initctl emit transmission-vpn-down
Этот скрипт еще более прост - он сигнализирует об остановке демона передачи.
На этом этапе, вероятно, будет хорошей идеей убедиться, что владельцем всей папки конфигурации VPN является пользователь root - поскольку эти сценарии запускаются с правами root, любой, кто может их изменить, может запускать все, что хочет в качестве пользователя root.
sudo chown root:root -R /opt/ibVPN
sudo chmod 700 -R /opt/ibVPN
sudo chmod 400 /opt/ibVPN/pass
Теперь это означает, что только пользователь root может изменять или просматривать настройки VPN-подключения.
ОК, мы почти закончили! Давайте проверим, работает ли наша установка до сих пор:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
Снова подключитесь к веб-интерфейсу Transmission и возобновите существующий торрент или добавьте новый. Это должно быть в состоянии загрузить, возможно после нескольких минут ожидания для пиров. Изысканный способ тестирования того, работает ли он, - это посмотреть на iftop. Установите iftop и запустите:
sudo apt-get install iftop
sudo iftop -i tap1
На этом экране будут показаны все соединения, проходящие через VPN. Если ваш торрент загружается и правильно использует VPN, здесь будет много IP-адресов и имен хостов. Также посмотрите на iftop для подключения к локальной сети:
sudo iftop -i eth0
Здесь вы должны увидеть большой объем трафика на один IP-адрес, являющийся сервером VPN, а затем только минимальный трафик на другие устройства локальной сети - при условии, что вы не используете другие сервисы на своей BeagleBone.
Вы можете подтвердить, что VPN работает, следуя этим инструкциям .
Этот сайт позволяет вам скачать торрент, чтобы увидеть IP-адрес, который другие узлы используют для подключения к вам - если все работает, то это будет IP-адрес VPN, а не ваш собственный IP-адрес в глобальной сети.
Если у вас возникли проблемы, вы можете просмотреть журнал ошибок Upstart, выполнив:
sudo tail -f /var/log/upstart/transmission-daemon.log
В отдельном окне терминала / SSH попробуйте выполнить команду tail при запуске VPN-подключения, как описано выше, и найдите все сообщения об ошибках. Надеюсь, вы сможете решить проблему, увидев сообщения об ошибках, если не покопайтесь в Интернете, или оставьте комментарий.
Настройте все это для автоматического запуска
Если вы довольны ручным вводом команды для запуска туннеля OpenVPN или хотите сделать это с помощью собственного сценария, то все готово. Но я хотел, чтобы он запускался при загрузке, поэтому я сделал еще один скрипт Upstart для запуска OpenVPN.
sudo vim /etc/init/openvpn-transmission.conf
Это последнее, что мы должны вставить!
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
Все, что нужно сделать, это дождаться, пока система подаст сигнал о готовности сети, а затем запустит туннель OpenVPN, который, в свою очередь, начнет передачу. Когда система выключена или если по какой-то причине сеть отключена, Upstart удалит правила брандмауэра и закроет демон передачи. Просто! Это продолжит работать и после перезагрузки, так что теперь все готово.
Чтобы взаимодействовать с Transmission, используйте веб-интерфейс, как мы делали на этапе установки. Также возможно сделать графический интерфейс доступным через Интернет, настроив переадресацию портов. Есть много учебников о том, как это сделать, поэтому я не буду повторять это здесь.
Что касается получения завершенных загрузок с BeagleBone, я использую NFS. Я могу получить скорость копирования около 8 МБ / с по локальной сети с BeagleBone на мой настольный компьютер - что очень хорошо для такого маломощного устройства. Ubuntu предоставляет некоторую полезную информацию для настройки этого.