Uwaga: (2016-02-22) Zdałem sobie sprawę, że ta konfiguracja przecieka zapytania DNS do trackerów torrentowych przez normalną sieć WAN, zamiast wysyłać je przez VPN. Badam, jak to naprawić. Będę jednak nadal uruchamiać konfigurację, ponieważ samo połączenie prawidłowo korzysta z VPN.
Aktualizacja: Zauważyłem, że kiedy ustawiam Transmission na pobieranie z Beaglebone na noc, użycie procesora po pewnym czasie spada do 100%. Wydaje się, że nie dzieje się to po tym samym czasie, czasem jest w porządku przez całą noc, innym razem walczy po 10 minutach. Można go również odzyskać, zatrzymując wszystkie torrenty i czekając, aż obciążenie procesora powróci do normy, a następnie uruchom ponownie. Nadal badam. Obejściem może być okresowe wstrzymywanie i wznawianie torrentów, chociaż nie jest to zbyt dobre obejście.
Uwaga: ten problem dotyczy tylko Beaglebone i prawdopodobnie innych urządzeń ARM. Nigdy nie miałem tego problemu na procesorze x86.
Wprowadzenie
Opracowałem i przetestowałem to rozwiązanie dla Ubuntu 14.04, działającego na BeagleBone Black. Dostawca VPN, którego używam, nazywa się ibVPN . Powinien jednak działać z każdym obsługiwanym sprzętem (tj. Na „normalnym” komputerze x86), z dowolnym dostawcą VPN zgodnym z OpenVPN - i prawdopodobnie powinien działać dla wersji 14.10 lub nowszej. W pewnym momencie wierzę, że Ubuntu użyje SystemD do rozruchu, co oznacza, że skrypty Upstart użyte tutaj będą musiały zostać zmigrowane. Aktualizacja: Jonas Kalderstam ma poniżej odpowiedź dotyczącą używania SystemD. Zakładam również, że jako zapora ogniowa używana jest ufw, jeśli używasz czegoś innego, musisz zmienić polecenia ufw tutaj.
Zakładam, że cała praca jest wykonywana przez połączenie SSH z systemem, choć równie dobrze działałoby, gdyby zostało wpisane w fizycznym terminalu.
To dość długi samouczek, przeczytaj go najpierw i upewnij się, że czujesz się dobrze z tym, co będziesz robić.
Zauważyłem również, że Transmisja nie wiąże się poprawnie z adresem IP do wysyłania danych UPnP / NAT-PMP - tzn. Dane torrentów poprawnie przechodzą przez VPN, ale jeśli przekierowanie portów UPnP jest włączone Transmisja zażąda przekazania portu z routera lokalnego , nie przez VPN z serwera VPN. Dlatego skrypt Upstart wyłącza przekierowywanie portów, ponieważ może się wydawać, że działał, ale nie działał. Powinno być możliwe użycie iptables i iproute, aby wymusić cały ruch od użytkownika transmisji debian przez VPN, ale nadal się tym zajmuję. Powinno to również działać, jeśli domyślna trasa została zmieniona, aby wysyłać wszystkie dane internetowe przez VPN, ale nie chciałem tego robić, ponieważ używam tego serwera również do innych rzeczy, a to również spowodowałoby, że wszystkie aktualizacje systemu przeszłyby przez VPN.To pytanie zawiera dodatkowe informacje, jeśli naprawdę chcesz, aby UPnP działał przez VPN .
Aktualizacja: falk0069 ma fantastyczną wskazówkę poniżej, która pomaga zachęcić UPnP przez VPN.
Instalowanie i konfigurowanie OpenVPN
Zalecam, aby spróbować uruchomić połączenie VPN przy użyciu Ubuntu, zanim spróbujesz go uruchomić tutaj - tj. Z komputera. Potwierdzi to prawidłową konfigurację i skróci czas debugowania.
Najpierw zainstaluj wymagane pakiety
sudo apt-get install openvpn
Następnie utwórz katalog, w którym będą przechowywane pliki konfiguracyjne. Używam / opt / ibVPN, ponieważ to jest dostawca, którego używam. Zmień to na co tylko chcesz.
sudo mkdir /opt/ibVPN
Pierwszą rzeczą do zrobienia w tym nowym katalogu jest utworzenie pliku konfiguracyjnego do uruchomienia klienta VPN. ibVPN zapewnia podstawowy plik konfiguracyjny dla użytkowników Linuksa, który w większości właśnie skopiowałem i wkleiłem.
cd /opt/ibVPN
sudo vim config.ovpn
Skopiuj i wklej edytowaną wersję do vima, korzystając z ustawień swojego dostawcy VPN. (FYI, wklej w terminalu Ubuntu jest Ctrl+Shift+V
) Powinieneś być w stanie uzyskać to od swojego dostawcy 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"
Dla tych, którzy nie znają vima, naciśnij, Insert
aby wpisać lub wkleić tekst, a następnie naciśnij Escape
i wpisz, :wq
aby zapisać i wyjść. Oczywiście nie musisz używać vima - dowolny edytor tekstu będzie działał.
Wyjaśnię szybko ten plik konfiguracyjny: pierwsze 18 wierszy określa konkretne ustawienia, które mają być używane z serwerem, pochodzą one z ibVPN - twoje będą prawdopodobnie nieco inne, jeśli masz innego dostawcę. Kolejne wiersze to zmodyfikowane opcje, które określiłem.
Jeśli plik ustawień zawierał jakieś wiersze auth-user*
, skomentuj je. Aby ta konfiguracja działała automatycznie, musimy mieć plik z nazwą użytkownika i hasłem - upewnij się więc, że hasło wybrane dla dostawcy VPN jest silne, losowe i unikalne.
auth-user-pass pass
Mówi OpenVPN szukać pliku o nazwie pass
czytać użytkownika i hasła.
auth-nocache
usuwa hasło z pamięci, co może nieco zwiększyć bezpieczeństwo, jeśli się o to martwisz.
persist-tun
spróbuje zachować ten sam adres IP z serwera, jeśli połączenie zostanie przerwane, co, miejmy nadzieję, powinno oznaczać mniej uruchamiania i zatrzymywania demona transmisji.
route-noexec
mówi klientowi OpenVPN, aby nie korzystał automatycznie z tras dostarczonych przez serwer - co spowodowałoby zatrzymanie całego ruchu sieciowego przez VPN. Chcemy tylko wysłać ruch torrentowy, więc będziemy musieli użyć różnych ustawień routingu.
lport 1195
mówi klientowi OpenVPN, aby używał portu 1195 zamiast 1194 - w moim przypadku chcę również uruchomić serwer OpenVPN na tym samym urządzeniu, a serwer będzie musiał użyć portu 1194. Nawet jeśli nie korzystasz z serwera OpenVPN, to nie zaszkodzi dokonać tej zmiany.
Zmieniłem linię dev tap
na dev tap1
, aby zmusić urządzenie wirtualne do tap1 zamiast przypisywania przez OpenVPN, ponownie z powodu uruchomienia osobnego serwera OpenVPN. Nawet jeśli nie korzystasz z serwera VPN, ta zmiana nie powinna mieć znaczenia. Skrypty zapory zostały napisane do użycia tap1
, więc jeśli wolisz korzystać z innego urządzenia, pamiętaj o zmianie tych skryptów w razie potrzeby.
lladdr 00:FF:11:AA:BB:CC
mówi OpenVPN, aby przypisał interfejs tap do tego adresu MAC, co może być przydatne w regułach zapory iptables.
route-up
i down
uruchamiaj skrypty, aby uruchamiać i zatrzymywać demona transmisji zgodnie z wymaganiami - są one potrzebne tutaj, ponieważ działają ze zmiennymi środowiskowymi zawierającymi informacje o połączeniu, które są potrzebne do prawidłowego powiązania transmisji z odpowiednim adresem IP i portem.
W moim przypadku miałem certyfikat serwera od dostawcy VPN - który również musi znajdować się w tym samym katalogu co plik konfiguracyjny.
sudo vim /opt/ibVPN/ibvpn.com.crt
Skopiuj i wklej to lub przenieś za pomocą SCP lub 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-----
Oczywiście, jeśli nie korzystasz z konta ibVPN, twój certyfikat będzie inny.
Stwórzmy teraz plik haseł:
sudo vim /opt/ibVPN/pass
Pierwszy wiersz musi być pełną nazwą użytkownika, następnie drugi wiersz musi być hasłem. To musi być jedyna zawartość tego pliku.
you@address.com
myBIGstrongpassword1234567890
Musimy również zabezpieczyć uprawnienia do tego pliku, w przeciwnym razie OpenVPN nie uruchomi się.
sudo chmod 400 pass
Spowoduje to, że plik będzie tylko do odczytu i tylko dla właściciela (tzn. Żaden inny użytkownik nie będzie mógł go odczytać)
Te polecenia utworzą pliki, które będą uruchamiane podczas uruchamiania, i ustawią je tak, aby były uruchamialne tylko przez root.
sudo touch route-up.sh
sudo touch down.sh
sudo chmod 700 route-up.sh
sudo chmod 700 down.sh
W tym momencie prawdopodobnie dobrym pomysłem jest sprawdzenie, czy połączenie VPN faktycznie działa. Rozpocznij połączenie z:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
Zobaczysz ostrzeżenia, że nie można uruchomić zewnętrznych poleceń w górę iw dół, ale nie martw się tym. Jeśli to zadziała, zobaczysz Initialization Sequence Completed
na terminalu. Naciśnij, Control+C
aby zakończyć połączenie. Jeśli to nie zadziała, będziesz musiał dowiedzieć się, dlaczego nie i naprawić, zanim przejdziesz dalej. Przekonałem się, że czasami zajęło kilka minut, aby zacząć działać. Upewnij się, że plik hasła jest poprawny. Istnieje wiele wspaniałych zasobów w Internecie na temat OpenVPN, więc rozejrzyj się.
W tym momencie prawdopodobnie najłatwiej jest przejść do uruchomienia Transmission. Gdy masz pewność, że zarówno VPN, jak i Transmisja mogą działać osobno, można je połączyć.
Instalowanie i konfigurowanie transmisji
Zainstaluj wymagane pakiety:
sudo apt-get install transmission-daemon
Domyślnie skrzynia biegów uruchomi się automatycznie podczas rozruchu. Ponieważ w końcu będziemy używać OpenVPN do rozpoczęcia transmisji, chcemy to wyłączyć. W tym celu edytuj plik konfiguracyjny dla Transmission-daemon
sudo vim /etc/default/transmission-daemon
I zmień następujący wiersz, aby przeczytać:
ENABLE_DAEMON=0
Teraz transmisja nie rozpocznie się przy rozruchu.
Utwórzmy teraz katalog, w którym będą przechowywane ustawienia transmisji i do których będą pobierane torrenty. Zakłada się, że już skonfigurowałeś jakiś dysk i jest on zamontowany w / media / arm-disk /. Ze względów bezpieczeństwa demon będzie uruchamiany przez własnego użytkownika, a nie jako root lub „ubuntu”. Instalator tworzy nowego użytkownika dla demona transmisji „debian-transmisja”. Ten użytkownik musi być właścicielem folderu, który tworzymy, oraz mieć dostęp do odczytu i zapisu w miejscu przechowywania pobieranych torrentów.
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
Teraz musimy krótko rozpocząć transmisję, aby utworzyć potrzebny plik ustawień:
sudo -u debian-transmission -g debian-transmission /usr/bin/transmission-daemon --config-dir /opt/transmission --foreground
Ta komenda uruchamia demona transmisji jako użytkownik debian-transmisji, mówi mu, aby używał katalogu / opt / transmisja dla plików ustawień i każe mu kontynuować działanie na pierwszym planie. Po kilku sekundach naciśnij, Control+C
aby zakończyć. Możemy teraz edytować plik ustawień.
sudo -u debian-transmission vim /opt/transmission/settings.json
Musimy teraz przejść do następujących wierszy z ich ustawień domyślnych, aby przeczytać:
"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.*",
Zapisz i wyjdź (Escape, wpisz: wq i naciśnij Enter)
Dwie środkowe zmiany umożliwią użycie katalogu „niekompletnego”, oddzielając gotowe torrenty od niedokończonych. Nie jest to całkowicie konieczne, ale osobiście uważam to za niezwykle przydatne. Ostatnia edycja umożliwia dostęp do internetowego interfejsu GUI z dowolnego komputera w sieci LAN (zakładając, że twoja podsieć LAN to 192.168.1.0, zmień ją, jeśli jest inna).
Teraz dobrym pomysłem jest ponowne uruchomienie Transmission, aby sprawdzić, czy działa i czy rzeczywiście może pobrać torrent. Użyjemy okna przeglądarki internetowej, aby uzyskać dostęp do GUI i dodać torrent. Najpierw zezwólmy na dostęp do GUI przez zaporę sieci LAN, a następnie ponownie uruchom demona transmisji.
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
Odwiedź ten adres URL w przeglądarce Firefox (lub dowolnej innej przeglądarce): http://XXX.XXX.XXX.XXX:9091 , gdzie XXX jest zastąpiony adresem Twojego serwera w sieci LAN (tj. 192.168.1.10). Znajdź torrenta do pobrania, na przykład Big Buck Bunny w 1080p60hz. Jest to darmowy film krótkometrażowy, legalnie dostępny do pobrania za darmo. W interfejsie GUI transmisji kliknij przycisk „Otwórz torrent” i wklej ten link (lub dowolny inny torrent, który chcesz) do pierwszego pola. Następnie naciśnij „Prześlij”. Jeśli Transmisja działa poprawnie, torrent zacznie się pobierać. Jeśli tak się nie stanie, musisz dowiedzieć się, dlaczego, zanim przejdziesz dalej. W Internecie dostępnych jest wiele zasobów do używania demona transmisji. Może to być również torrent, który wybrałeś nie działa, wypróbuj najpierw kilka innych.
Po zakończeniu pobierania naciśnij Control+C
w oknie terminala, aby zatrzymać demona transmisji.
Skonfiguruj transmisję wiązania do interfejsu VPN
Teraz stwórzmy skrypt Upstart, który będzie używany do rozpoczęcia Transmisji, gdy VPN będzie gotowy.
sudo mv /etc/init/transmission-daemon.conf /etc/init/transmission-daemon.conf.bak
Nie martw się, jeśli to narzeka, wystarczy wykonać kopię zapasową pliku Upstart, jeśli taki istniał - może nie mieć. Otwórzmy vima, aby edytować nowy:
sudo vim /etc/init/transmission-daemon.conf
Wklej to do edytora:
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
Zapisz i zamknij vim. ( Escape
, a następnie wpisz :wq
). Ponownie otwórz vim:
sudo vim /etc/init/transmission-up.conf
I wklej to:
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
Ponownie zapisz i zamknij vim. ( Escape
, a następnie wpisz :wq
). Wreszcie:
sudo vim /etc/init/transmission-down.conf
Wklej to:
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
Skrypty te informują Upstart, aby nasłuchiwał sygnału „transmisja-VPN-up”. Skrypt „Transmission-up.conf” następnie konfiguruje wymagane reguły routingu, aby wysyłać ruch z lokalnego adresu VPN za pośrednictwem interfejsu VPN, i ustawia zaporę sieciową, aby zezwalać na ruch z VPN do portu nasłuchiwania dla transmisji. Ruch kierowany do portu nasłuchiwania transmisji z normalnego interfejsu LAN jest blokowany. Następnie skrypt „transmisja-daemon.conf” uruchamia demona transmisji z ustawieniami wymaganymi do powiązania go z adresem IP VPN. Zauważ, że to polecenie zapewni również wyłączenie UPnP / NAT-PMP - patrz moja uwaga na górze na temat przekierowywania portów. „Ładne -15” ustawia Transmission na niższy priorytet, co uważam za użyteczne przy użyciu BeagleBone o niższej specyfikacji - czasami Transmisja może pochłaniać zasoby, co spowalnia system. Przynajmniej z niskim priorytetem mogą nadal działać ważniejsze zadania systemowe. Skrypt „transmisja-w dół.conf” usunie reguły zapory, gdy VPN zostanie zatrzymany. Wykorzystywane są trzy różne skrypty, dzięki którym demon transmisji może być uruchamiany jako użytkownik nieuprzywilejowany, ale reguły zapory można uruchamiać jako root.
Teraz wróćmy do ustawień OpenVPN i edytuj skrypty „route-up” i „down”, aby uruchomić uruchamianie i zatrzymywanie naszego skryptu Transmission.
sudo vim /opt/ibVPN/route-up.sh
Wklej to do vima:
#! /bin/bash
/sbin/initctl emit transmission-vpn-up VPN_GATEWAY=$route_vpn_gateway LOCAL_IP=$ifconfig_local
Wszystko, co robi ten skrypt, mówi Upstartowi, że demon transmisji powinien się uruchomić, i dostarcza mu informacji potrzebnych do przyłączenia się do połączenia VPN.
sudo vim /opt/ibVPN/down.sh
Ponownie, więcej wklejania:
#! /bin/bash
/sbin/initctl emit transmission-vpn-down
Ten skrypt jest jeszcze prostszy - sygnalizuje zatrzymanie demona transmisji.
W tym momencie prawdopodobnie dobrym pomysłem jest upewnienie się, że właścicielem całego folderu konfiguracji VPN jest użytkownik root - ponieważ te skrypty działają jako root, każdy, kto mógłby je zmienić, może uruchomić wszystko, co chce jako użytkownik root.
sudo chown root:root -R /opt/ibVPN
sudo chmod 700 -R /opt/ibVPN
sudo chmod 400 /opt/ibVPN/pass
Oznacza to teraz, że tylko użytkownik root może modyfikować lub przeglądać ustawienia połączenia VPN.
OK, już prawie gotowe! Sprawdźmy, czy nasza konfiguracja działa do tej pory:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
Połącz się ponownie z internetowym interfejsem GUI Transmission i wznów istniejący torrent lub dodaj nowy. Powinien być w stanie pobrać, może po kilku minutach oczekiwania na rówieśników. Sprytny sposób na sprawdzenie, czy działa, to sprawdzenie iftop. Zainstaluj iftop i uruchom:
sudo apt-get install iftop
sudo iftop -i tap1
Ten ekran pokaże wszystkie połączenia działające przez VPN. Jeśli Twój torrent pobiera i poprawnie korzysta z VPN, będzie tutaj wiele adresów IP i nazw hostów. Zobacz także iftop dla połączenia LAN:
sudo iftop -i eth0
Tutaj powinieneś zobaczyć dużą ilość ruchu do jednego adresu IP, będącego serwerem VPN, a następnie tylko minimalny ruch do innych urządzeń LAN - zakładając, że nie korzystasz z innych usług na BeagleBone.
Możesz potwierdzić, że VPN działa, postępując zgodnie z tymi instrukcjami .
Ta strona pozwala ci pobrać torrent, aby zobaczyć adres IP, z którego korzystają inni rówieśnicy, aby się z tobą połączyć - jeśli wszystko działa, będzie to adres IP VPN, a nie twój własny adres IP WAN.
Jeśli masz problemy, możesz wyświetlić dziennik błędów Upstart, wykonując:
sudo tail -f /var/log/upstart/transmission-daemon.log
W osobnym oknie terminalu / SSH spróbuj uruchomić komendę tail podczas uruchamiania połączenia VPN jak wyżej i poszukaj komunikatów o błędach. Mamy nadzieję, że uda Ci się rozwiązać problem, wyświetlając komunikaty o błędach, jeśli nie masz dostępu do Internetu lub opublikujesz komentarz.
Skonfiguruj wszystko, aby uruchamiało się automatycznie
Jeśli jesteś zadowolony z ręcznego wydania polecenia uruchomienia tunelu OpenVPN lub chcesz to zrobić za pomocą własnego skryptu, to koniec. Ale chciałem, żeby zaczął się przy rozruchu, więc stworzyłem kolejny skrypt Upstart, aby uruchomić OpenVPN.
sudo vim /etc/init/openvpn-transmission.conf
To ostatnia rzecz, którą musimy wkleić!
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
Wystarczy poczekać, aż system zasygnalizuje, że sieć jest gotowa, a następnie uruchomi tunel OpenVPN - co z kolei rozpocznie transmisję. Gdy system zostanie wyłączony lub z jakiegoś powodu sieć zostanie zamknięta, Upstart usunie reguły zapory i zamknie demona transmisji. Prosty! To będzie nadal działać po ponownym uruchomieniu, więc teraz wszystko jest gotowe.
Aby wchodzić w interakcje z transmisją, użyj internetowego interfejsu GUI, tak jak w fazie konfiguracji. Możliwe jest również udostępnienie interfejsu GUI przez Internet poprzez skonfigurowanie przekierowania portów. Istnieje wiele samouczków, jak to zrobić, więc nie powtórzę tego tutaj.
Jeśli chodzi o pobieranie ukończonych pobrań z BeagleBone, używam NFS. Mogę uzyskać prędkość około 8 MB / s kopiowania przez sieć LAN z BeagleBone na mój komputer stacjonarny - co jest całkiem dobre w przypadku tak słabego urządzenia. Ubuntu zawiera przydatne informacje na temat konfiguracji.