Примітка: (2016-02-22) Я зрозумів, що ця конфігурація пропускає запити DNS до торентських трекерів через звичайну WAN, а не надсилає її через VPN. Я розслідую, як це виправити. Але я продовжуватиму працювати, оскільки саме з'єднання використовує VPN належним чином.
Оновлення: Я помітив, що коли я встановив Transmission для завантаження протягом ночі на Beaglebone, використання процесора через деякий час переходить на 100%. Здається, це не відбувається через стільки ж часу, іноді це ціла ніч, інший раз - 10 хвилин. Він також може відновитися, призупинивши всі торренти та чекаючи, коли завантаження процесора повернеться до нормального стану, а потім запуститься знову. Я досі розслідую. Вирішення проблеми може бути періодичним призупиненням та відновленням потоків, хоча це не дуже вдале рішення.
Зауважте, ця проблема стосується лише Beaglebone та, ймовірно, інших пристроїв ARM. У мене ніколи не виникало цієї проблеми на процесорі x86.
Вступ
Я розробив і протестував це рішення для Ubuntu 14.04, який працює на BeagleBone Black. Провайдер VPN, який я використовую, називається ibVPN . Він повинен працювати з будь-яким підтримуваним обладнанням (наприклад, на "звичайному" комп'ютері x86), з будь-яким VPN-постачальником, сумісним OpenVPN, і, ймовірно, повинен працювати протягом 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. (FYI, вставте термінал 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-адресу від сервера, якщо ваше з'єднання припинить, що, сподіваємось, означатиме менший запуск та зупинку передачі-демон.
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 призначити інтерфейс tap, щоб мати цю MAC-адресу, що може бути корисно для правил брандмауера iptables.
route-up
та down
запустіть сценарії для запуску та зупинки демона передачі у міру необхідності - вони потрібні тут, оскільки вони працюють із змінними середовища, що містять інформацію про з'єднання, яка потрібна для правильного прив’язування передачі до потрібної 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
Це зробить файл лише для читання і лише для власника (тобто жоден інший користувач не може його читати взагалі)
Ці команди створять файли для запуску при запуску та встановлять їх для виконання тільки під коренем.
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
Ви побачите попередження про те, що зовнішні команди вгору та вниз не можуть бути запущені, але не хвилюйтеся з цього приводу. Якщо це працює, ви побачите Initialization Sequence Completed
на терміналі. Натисніть, Control+C
щоб припинити з'єднання. Якщо це не працює, вам доведеться вивчити, чому б ні, і виправити це, перш ніж продовжувати. Я виявив, що іноді потрібно кілька піти, щоб почати працювати. Переконайтесь, що файл вашого пароля правильний. В Інтернеті є багато чудових ресурсів про OpenVPN, тому подивіться навколо.
На даний момент, мабуть, найпростіше перейти до отримання та запуску програми Transmission. Коли ви впевнені, що і VPN, і передача можуть працювати окремо, їх можна поєднувати.
Встановлення та налаштування передачі
Встановіть необхідні пакети:
sudo apt-get install transmission-daemon
За замовчуванням передача працюватиме автоматично під час завантаження. Оскільки ми врешті-решт будемо використовувати OpenVPN для запуску передачі, ми хочемо відключити це. Для цього відредагуйте конфігураційний файл для передачі-демон
sudo vim /etc/default/transmission-daemon
І змініть наступний рядок, щоб прочитати:
ENABLE_DAEMON=0
Тепер передача не розпочнеться під час завантаження.
Давайте тепер створимо каталог для налаштувань Передачі для проживання та для завантажених торрентів. Це передбачає, що ви вже створили якийсь диск, і він встановлений на / media / arm-disk /. З метою безпеки демон буде управляти власним користувачем, а не як root або як "ubuntu". Інсталятор створює нового користувача для передачі-демон, "debian-передача". Цей користувач повинен мати власну папку, яку ми створюємо, і читати та записувати доступ до місця зберігання для завантажуваних торрентів.
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-передачі, вказує їй використовувати каталог / opt / передачі для файлів налаштувань та пропонує йому продовжувати працювати на передньому плані. Після запуску протягом декількох секунд натисніть 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)
Середні два редагування дозволять використовувати каталог "неповний", відокремлюючи готові торренти від незакінчених. Це не зовсім необхідно, але я особисто вважаю це надзвичайно корисним. Останнє редагування дозволяє отримати доступ до веб-графічного інтерфейсу на будь-якому комп’ютері в локальній мережі (припустимо, що ваша підмережа LAN 192.168.1.0, змініть це, якщо воно інше).
Тепер хороша ідея запустити передачу ще раз, щоб побачити, чи працює вона та чи може фактично завантажити торрент. Ми будемо використовувати вікно веб-браузера для доступу до GUI та для додавання торента. Спочатку дозвольмо доступ до веб-інтерфейсу інтерфейсу через брандмауер через локальну мережу, потім запустимо передачу-демон знову.
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 прослухати сигнал "передача-vpn-up". Сценарій "testing-up.conf" потім встановлює необхідні правила маршрутизації для надсилання трафіку з локальної VPN-адреси через інтерфейс VPN та встановлює брандмауер, щоб дозволити трафік від VPN до порту прослуховування для передачі. Трафік, спрямований на прослуховувальний порт Transmission, від звичайного інтерфейсу локальної мережі заблокований. Сценарій "передача-daemon.conf" потім запускає передачу-демон з необхідними налаштуваннями, щоб прив'язати його до IP-адреси VPN. Зауважте, що ця команда також забезпечить відключення UPnP / NAT-PMP - див. Мою примітку вгорі про переадресацію портів. "Приємний -15" встановлює передачу нижчим пріоритетом, що я вважаю корисним при використанні BeagleBone з нижньою специфікацією - іноді передача може свиняти ресурси, що уповільнює роботу системи. Принаймні з низьким пріоритетом все-таки важливіші системні завдання все ще можуть виконуватися. Сценарій "передача-вниз.conf" видалить правила брандмауера, коли VPN зупинено. Три різні сценарії використовуються так, що демон передачі може бути запущений як непривілейований користувач, але правила брандмауера можуть бути запущені як root.
Тепер повернемось до налаштувань OpenVPN та відредагуємо сценарії "маршрут" та "вниз", щоб запустити та зупинити наш сценарій передачі.
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, кожен, хто міг би їх змінити, може виконувати все, що хотів, як кореневий користувач.
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
Знову підключіться до веб-інтерфейсу передачі та відновіть наявний торрент або додайте новий. Це має бути в змозі завантажити, можливо, через кілька хвилин очікування однолітків. Чудовим способом тестування того, чи працює він чи ні, є перегляд 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-адреса WAN.
Якщо у вас виникли проблеми, ви можете побачити журнал помилок Upstart, виконавши:
sudo tail -f /var/log/upstart/transmission-daemon.log
У окремому вікні терміналу / SSH спробуйте виконати команду хвоста під час запуску 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 видалить правила брандмауера та закриє демон передачі. Просто! Це буде продовжувати працювати і після перезавантаження, тому тепер все налаштовано.
Щоб взаємодіяти з передачею, використовуйте веб-графічний інтерфейс, як ми це робили під час налаштування. Також можна зробити доступ до GUI через Інтернет, встановивши переадресацію портів. Про те, як це зробити, є багато підручників, тому я тут не повторюсь.
Щодо отримання завершених завантажень з BeagleBone, я використовую NFS. Я можу отримати швидкість копіювання близько 8 Мб / с через локальну мережу з BeagleBone на настільний комп'ютер - що досить добре для такого малопотужного пристрою. Ubuntu надає деяку зручну інформацію для налаштування цієї настройки.