नोट: (२०१६-०२-२२) मैंने महसूस किया है कि यह वाई-फाई वीपीएन के माध्यम से भेजने के बजाय, सामान्य डब्ल्यूएएन के माध्यम से टोरेंट ट्रैकर्स को डीएनएस प्रश्न लीक करता है। मैं जांच कर रहा हूं कि इसे कैसे ठीक किया जाए। मैं अपने कॉन्फिग को चालू रखने वाला हूं, क्योंकि कनेक्शन खुद ही वीपीएन का सही इस्तेमाल करता है।
अपडेट: मैंने देखा है कि जब मैंने बीगलबोन पर रात भर डाउनलोड करने के लिए ट्रांसमिशन सेट किया, तो थोड़ी देर बाद सीपीयू का उपयोग 100% हो जाता है। उसी समय के बाद ऐसा प्रतीत नहीं होता है, कभी-कभी यह पूरी रात ठीक रहता है, अन्य समय में यह 10 मिनट के बाद संघर्ष करता है। यह सभी टॉरेंट को रोककर और फिर से शुरू होने पर सीपीयू लोड के सामान्य होने तक इंतजार करने से भी उबर सकता है। मैं अब भी जांच कर रहा हूं। एक वर्कअराउंड समय-समय पर टॉरेंट को रोकना और फिर से शुरू करना हो सकता है, हालांकि यह बहुत अच्छा वर्कअराउंड नहीं है।
ध्यान दें कि यह समस्या केवल बीगलबोन और शायद अन्य एआरएम उपकरणों पर लागू होती है। मैं एक x86 CPU पर इस मुद्दे को कभी नहीं किया है।
परिचय
मैंने उबंटू 14.04 के लिए इस समाधान का विकास और परीक्षण किया है, बीगलबोन ब्लैक पर चल रहा है। मैं जिस वीपीएन प्रदाता का उपयोग कर रहा हूं उसे ibVPN कहा जाता है । यह किसी भी समर्थित हार्डवेयर के साथ काम करना चाहिए (हालांकि एक "सामान्य" x86 कंप्यूटर पर), किसी भी OpenVPN संगत वीपीएन प्रदाता के साथ - और शायद 14.10 या बाद के लिए काम करना चाहिए। कुछ बिंदु पर मेरा मानना है कि उबंटू बूट के लिए सिस्टमडीडी का उपयोग करेगा, जिसका मतलब होगा कि यहां उपयोग की गई अपस्टार्ट स्क्रिप्ट को माइग्रेट करना होगा। अद्यतन: जोनास Kalderstam SystemD का उपयोग करने के लिए नीचे एक जवाब है । मैं यह भी मान रहा हूं कि ufw का उपयोग फ़ायरवॉल के रूप में किया जा रहा है, यदि आप कुछ अलग उपयोग कर रहे हैं तो यहाँ ufw कमांड को बदलना होगा।
मुझे लगता है कि सभी कार्य सिस्टम के लिए SSH कनेक्शन पर किया जाता है, हालांकि यह एक भौतिक टर्मिनल में टाइप किए जाने पर ही काम करेगा।
यह काफी लंबा ट्यूटोरियल है, कृपया इसे पहले पढ़ें और सुनिश्चित करें कि आप जो कर रहे हैं उसके साथ सहज हों।
मैंने यह भी देखा है कि ट्रांसमिशन ठीक से UPnP / NAT-PMP डेटा भेजने के लिए एक IP पते से नहीं जुड़ा है - यानी टोरेंट डेटा सही तरीके से वीपीएन के माध्यम से जाता है, लेकिन अगर UPnP पोर्ट अग्रेषण सक्षम है, तो ट्रांसमिशन स्थानीय राउटर से पोर्ट को आगे भेजने का अनुरोध करेगा। वीपीएन सर्वर से वीपीएन के माध्यम से नहीं। इसलिए मैंने Upstart स्क्रिप्ट को पोर्ट फ़ॉरवर्डिंग को अक्षम कर दिया है, क्योंकि यह ऐसा प्रतीत हो सकता है जैसे कि यह काम कर चुका है, लेकिन ऐसा नहीं है। वीपीएन के माध्यम से डेबियन-ट्रांसमिशन उपयोगकर्ता से सभी ट्रैफ़िक को बाध्य करने के लिए iptables और iproute का उपयोग करना संभव होना चाहिए, लेकिन मैं अभी भी इस पर गौर कर रहा हूं। अगर वीपीएन के माध्यम से सभी इंटरनेट डेटा भेजने के लिए डिफ़ॉल्ट मार्ग को बदल दिया गया था, तो यह भी काम करना चाहिए, लेकिन मैं ऐसा नहीं करना चाहता था क्योंकि मैं इस सर्वर का उपयोग अन्य चीजों के लिए भी करता हूं, और इससे सभी सिस्टम अपडेट भी हो जाएंगे। वीपीएन।इस सवाल में आगे की जानकारी है कि क्या आप वास्तव में वीपीएनपी को वीपीएन पर काम करना चाहते हैं ।
अद्यतन: VPN पर UPnP को प्रोत्साहित करने में मदद करने के लिए falk0069 के नीचे एक शानदार टिप है ।
OpenVPN को स्थापित और कॉन्फ़िगर करना
मेरा सुझाव है कि आप अपने वीपीएन कनेक्शन को उबंटू का उपयोग करने के लिए काम करने की कोशिश करें, इससे पहले कि वह यहां काम करने की कोशिश करे - यानी डेस्कटॉप से। यह पुष्टि करेगा कि आपके पास सही कॉन्फ़िगरेशन है और डिबगिंग में लगने वाले समय को कम करें।
सबसे पहले, आवश्यक पैकेज स्थापित करें
sudo apt-get install openvpn
इसके बाद, कॉन्फ़िगरेशन फ़ाइलों को संग्रहीत करने के लिए एक निर्देशिका बनाएं। मैं / ऑप्ट / ibVPN का उपयोग कर रहा हूं, क्योंकि वह प्रदाता है जिसका मैं उपयोग कर रहा हूं। आपको जो पसंद है उसे बदल दें।
sudo mkdir /opt/ibVPN
इस नई निर्देशिका में पहली बात यह है कि वीपीएन क्लाइंट को चलाने के लिए कॉन्फिगर फाइल बनाई जाए। ibVPN लिनक्स उपयोगकर्ताओं के लिए एक बेसिक कॉन्फिग फाइल प्रदान करता है, जिसे मैंने ज्यादातर कॉपी और पेस्ट किया है।
cd /opt/ibVPN
sudo vim config.ovpn
अपने वीपीएन प्रदाता के लिए सेटिंग्स का उपयोग करके, अपने संपादित संस्करण को विम में कॉपी और पेस्ट करें। (FYI करें, उबंटू टर्मिनल में पेस्ट है Ctrl+Shift+V
) आपको अपने वीपीएन प्रदाता से इसे प्राप्त करने में सक्षम होना चाहिए।
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
बचाने के लिए और बाहर निकलने के लिए। बेशक, आपको विम का उपयोग करने की आवश्यकता नहीं है - कोई भी पाठ संपादक काम करेगा।
मैं जल्दी से इस विन्यास फाइल की व्याख्या करूँगा: पहली 18 लाइनें सर्वर के साथ उपयोग करने के लिए विशिष्ट सेटिंग्स को निर्दिष्ट करती हैं, ये ibVPN से आई हैं - यदि आपके पास एक अलग प्रदाता है तो शायद आपका थोड़ा अलग होगा। अगली पंक्तियाँ मेरे द्वारा निर्दिष्ट विकल्प हैं।
यदि आपकी सेटिंग फ़ाइल में कोई रेखाएँ हैं auth-user*
, तो इन पर टिप्पणी करें। स्वचालित रूप से काम करने के लिए इस सेटअप के लिए, हमें उपयोगकर्ता नाम और पासवर्ड के साथ एक फ़ाइल की आवश्यकता है - इसलिए सुनिश्चित करें कि आपके द्वारा VPN प्रदाता के लिए चुना गया पासवर्ड मजबूत, यादृच्छिक और अद्वितीय है।
auth-user-pass pass
कहा जाता है एक फ़ाइल के लिए देखो करने के लिए OpenVPN बताता pass
उपयोगकर्ता और पासवर्ड से पढ़ने के लिए।
auth-nocache
पासवर्ड को स्मृति से निकालता है, जो सुरक्षा को थोड़ा बढ़ा सकता है यदि आप इसके बारे में चिंतित हैं।
persist-tun
सर्वर से वही आईपी पता रखने की कोशिश करेगा यदि आपका कनेक्शन बाहर चला जाता है, जिसे उम्मीद है कि ट्रांसमिशन-डेमॉन की शुरुआत और ठहराव कम होना चाहिए।
route-noexec
OpenVPN क्लाइंट को सर्वर द्वारा प्रदान किए गए मार्गों का स्वचालित रूप से उपयोग नहीं करने के लिए कहता है - जो वीपीएन पर सभी नेटवर्क ट्रैफ़िक को खींच लेंगे। हम केवल टोरेंट ट्रैफ़िक भेजना चाहते हैं, इसलिए हमें अलग-अलग रूटिंग सेटिंग्स का उपयोग करना होगा।
lport 1195
OpenVPN क्लाइंट को 1194 के बजाय पोर्ट 1195 का उपयोग करने के लिए कहता है - मेरे मामले में मैं भी उसी डिवाइस पर एक OpenVPN सर्वर चलाना चाहता हूं, और सर्वर को पोर्ट 1194 का उपयोग करना होगा। भले ही आप OpenVPN सर्वर नहीं चला रहे हों, यह यह परिवर्तन करने के लिए चोट नहीं करता है।
मैंने एक अलग OpenVPN सर्वर चलाने के कारण OpenVPN द्वारा फिर से असाइन किए जाने के बजाय वर्चुअल डिवाइस को टैप 1 होने के लिए मजबूर dev tap
करने के लिए लाइन को बदल दिया dev tap1
। यहां तक कि अगर आप वीपीएन सर्वर नहीं चला रहे हैं, तो भी यह बदलाव मायने नहीं रखता। फ़ायरवॉल स्क्रिप्ट का उपयोग करने के लिए लिखा गया है tap1
, इसलिए यदि आप किसी अन्य डिवाइस का उपयोग करना चाहते हैं , तो उन स्क्रिप्ट को बदलने के लिए याद रखें जहां उपयुक्त है।
lladdr 00:FF:11:AA:BB:CC
OpenVPN को यह मैक एड्रेस रखने के लिए टैप इंटरफ़ेस असाइन करने के लिए कहता है, जो iptables फ़ायरवॉल नियमों के लिए उपयोगी हो सकता है।
route-up
और down
ट्रांसमिशन-डेमॉन को आवश्यक रूप से शुरू करने और रोकने के लिए स्क्रिप्ट चलाएं - इनकी यहां आवश्यकता है क्योंकि वे कनेक्शन के बारे में जानकारी वाले पर्यावरण चर के साथ चलते हैं, जिसे सही आईपी पते और पोर्ट पर ट्रांसमिशन को सही ढंग से बांधने की आवश्यकता होती है।
मेरे मामले में, मेरे पास वीपीएन प्रदाता से एक सर्वर प्रमाणपत्र था - जो कि एक ही डायरेक्टरी में भी होना चाहिए जैसे कि विन्यास फाइल।
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
इस बिंदु पर, यह परीक्षण करने के लिए शायद एक अच्छा विचार है कि क्या वीपीएन कनेक्शन वास्तव में काम करता है। इसके साथ कनेक्शन शुरू करें:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
आप चेतावनियाँ देखेंगे कि ऊपर और नीचे बाहरी कमांड नहीं चलाए जा सकते, लेकिन इस बारे में चिंता न करें। यदि यह काम करता है, तो आप Initialization Sequence Completed
टर्मिनल पर देखेंगे । Control+C
कनेक्शन समाप्त करने के लिए दबाएं । यदि यह काम नहीं करता है, तो आपको जांच करनी होगी कि क्यों नहीं और इसे जारी रखने से पहले ठीक कर लें। मैंने पाया कि कभी-कभी इसे काम शुरू करने में कुछ समय लगता है। सुनिश्चित करें कि आपकी पासवर्ड फ़ाइल सही है। OpenVPN के बारे में इंटरनेट पर बहुत सारे महान संसाधन हैं, इसलिए चारों ओर एक नज़र डालें।
इस बिंदु पर, ट्रांसमिशन को चलाने और चलाने के लिए आगे बढ़ना आसान है। एक बार जब आप सुनिश्चित हो जाते हैं कि वीपीएन और ट्रांसमिशन दोनों अलग-अलग चल सकते हैं, तो उन्हें जोड़ा जा सकता है।
ट्रांसमिशन को स्थापित करना और कॉन्फ़िगर करना
आवश्यक पैकेज स्थापित करें:
sudo apt-get install transmission-daemon
डिफ़ॉल्ट रूप से, ट्रांसमिशन बूट पर स्वचालित रूप से चलेगा। चूंकि हम अंततः ट्रांसमिशन शुरू करने के लिए OpenVPN का उपयोग कर रहे हैं, इसलिए हम इसे अक्षम करना चाहते हैं। ऐसा करने के लिए, ट्रांसमिशन फाइल को ट्रांसमिशन-डेमॉन के लिए एडिट करें
sudo vim /etc/default/transmission-daemon
और पढ़ने के लिए निम्नलिखित लाइन बदलें:
ENABLE_DAEMON=0
अब ट्रांसमिशन बूट पर शुरू नहीं होगा।
चलिए अब ट्रांसमिशन सेटिंग्स के लिए और डाउनलोड किए गए टॉरेंट में जाने के लिए एक निर्देशिका बनाते हैं। यह मानता है कि आप पहले से ही किसी प्रकार की एक डिस्क सेट कर चुके हैं, और यह / मीडिया / आर्म-डिस्क / पर आरोहित है। सुरक्षा उद्देश्यों के लिए, डेमन को अपने उपयोगकर्ता द्वारा रूट या "ubuntu" के रूप में चलाया जाएगा। एक नया उपयोगकर्ता इंस्टॉलर द्वारा ट्रांसमिशन-डेमन, "डेबियन-ट्रांसमिशन" के लिए बनाया गया है। इस उपयोगकर्ता को हमारे द्वारा बनाए जाने वाले फ़ोल्डर का मालिक होना चाहिए, और डाउनलोड किए जा रहे टॉरेंट्स के लिए भंडारण स्थान तक पहुंच को पढ़ना और लिखना है।
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
यह कमांड डेबियन-ट्रांसमिशन उपयोगकर्ता के रूप में ट्रांसमिशन-डेमॉन को शुरू करता है, इसे सेटिंग्स फाइलों के लिए / ऑप्ट / ट्रांसमिशन डायरेक्टरी का उपयोग करने के लिए कहता है, और इसे अग्रभूमि में चालू रखने के लिए कहता है। एक बार जब यह कुछ सेकंड के लिए चलता है, तो 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.*",
सहेजें और बाहर निकलें (एस्केप, प्रकार: wq और Enter दबाएं)
बीच के दो संपादन "अपूर्ण" निर्देशिका के उपयोग को सक्षम करेंगे, जो आपके तैयार किए गए टॉरेंट को अधूरे वाले से अलग करेगा। यह पूरी तरह से आवश्यक नहीं है, लेकिन मैं व्यक्तिगत रूप से इसे बेहद उपयोगी मानता हूं। अंतिम संपादन LAN पर किसी भी कंप्यूटर द्वारा वेब GUI तक पहुंचने में सक्षम बनाता है (यह मानते हुए कि आपका LAN सबनेट 192.168.1.0 है, इसे संशोधित करें यदि यह अलग है)।
अब ट्रांसमिशन को फिर से चलाना एक अच्छा विचार है, यह देखने के लिए कि क्या यह काम करता है और वास्तव में एक धार डाउनलोड कर सकता है। हम GUI तक पहुँचने और एक धार जोड़ने के लिए एक वेब ब्राउज़र विंडो का उपयोग करेंगे। पहले, चलो LAN से फ़ायरवॉल के माध्यम से वेब 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 को फ़ायरफ़ॉक्स में (या जो भी ब्राउज़र आपको पसंद हो) पर जाएँ: http://XXX.XXX.XXX.XXX:9091 , जहाँ XXX को LAN पर आपके सर्वर के पते से बदल दिया जाता है (अर्थात 192.168.1.10)। डाउनलोड करने के लिए एक धार खोजें, उदाहरण के लिए 1080p60hz में बिग बक बनी। यह एक मुफ्त लघु फिल्म है, जो कानूनी रूप से मुफ्त डाउनलोड के लिए उपलब्ध है। ट्रांसमिशन जीयूआई में, "ओपन टोरेंट" बटन पर क्लिक करें, और इस लिंक (या किसी भी अन्य टोरेंट को) को पहले बॉक्स में पेस्ट करें । फिर "अपलोड करें" दबाएं। यदि ट्रांसमिशन सही तरीके से काम कर रहा है, तो टोरेंट डाउनलोड करना शुरू कर देगा। यदि ऐसा नहीं होता है, तो आपको निरंतर काम करने की आवश्यकता होगी। ट्रांसमिशन-डेमॉन का उपयोग करने के लिए इंटरनेट पर बहुत सारे संसाधन उपलब्ध हैं। यह वह धार भी हो सकती है जिसे आपने चुना है वह काम नहीं कर रही है, पहले कुछ अन्य लोगों की कोशिश करें।
एक बार डाउनलोड समाप्त होने के बाद, Control+C
ट्रांसमिशन विंडो में ट्रांसमिशन-डेमॉन को रोकने के लिए दबाएं ।
VPN इंटरफ़ेस में बाइंडिंग ट्रांसमिशन कॉन्फ़िगर करें
अब एक उपस्टार्ट स्क्रिप्ट बनाते हैं, जिसका उपयोग वीपीएन तैयार होने पर ट्रांसमिशन शुरू करने के लिए किया जाएगा।
sudo mv /etc/init/transmission-daemon.conf /etc/init/transmission-daemon.conf.bak
अगर यह शिकायत करता है, तो चिंता न करें, यह सिर्फ उपस्टार्ट फ़ाइल का बैकअप बनाने के लिए है, यदि कोई मौजूद है - यह नहीं हो सकता है। आइए नए को संपादित करने के लिए 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
सहेजें और बंद करें। ( Escape
, फिर टाइप करें :wq
)। फिर से, खुला विम:
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
फिर से, सहेजें और बंद करें। ( 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
ये स्क्रिप्ट अपस्टार्ट को "ट्रांसमिशन-वीपीएन-अप" सिग्नल सुनने के लिए कहती हैं। "ट्रांसमिशन-अप.कॉनफ" स्क्रिप्ट तब वीपीएन इंटरफ़ेस के माध्यम से स्थानीय वीपीएन पते से ट्रैफ़िक भेजने के लिए आवश्यक रूटिंग नियम सेट करती है, और वीपीएन से ट्रांसमिशन के लिए सुनने वाले पोर्ट पर ट्रैफ़िक को अनुमति देने के लिए फ़ायरवॉल सेट करती है। सामान्य LAN इंटरफ़ेस से ट्रांसमिशन के श्रवण पोर्ट के लिए निर्देशित यातायात अवरुद्ध है। "ट्रांसमिशन-डेमन.कॉनफ" स्क्रिप्ट तब वीपीएन आईपी पते पर इसे बांधने के लिए आवश्यक सेटिंग्स के साथ ट्रांसमिशन-डेमन शुरू करती है। ध्यान दें कि यह आदेश यह भी सुनिश्चित करेगा कि UPnP / NAT-PMP अक्षम है - पोर्ट अग्रेषण के बारे में शीर्ष पर मेरा नोट देखें। "अच्छा -15" ट्रांसमिशन को कम प्राथमिकता देने के लिए सेट करता है, जिसे मैंने निचले चश्मे बीगलबोन का उपयोग करते समय उपयोगी पाया - कभी-कभी ट्रांसमिशन संसाधनों को हॉग कर सकता है, जो सिस्टम को धीमा कर देता है। कम से कम प्राथमिकता के साथ, अधिक महत्वपूर्ण सिस्टम कार्य अभी भी चल सकते हैं। वीपीएन बंद होने पर "ट्रांसमिशन-डाउन.कॉन्फ" स्क्रिप्ट फ़ायरवॉल नियमों को हटा देगी। तीन अलग-अलग लिपियों का उपयोग किया जाता है ताकि ट्रांसमिशन-डेमॉन एक अनप्रोविलेड यूजर के रूप में चलाया जा सके, लेकिन फ़ायरवॉल नियमों को रूट के रूप में चलाया जा सकता है।
अब हम OpenVPN सेटिंग्स पर वापस जाते हैं, और हमारी ट्रांसमिशन स्क्रिप्ट को शुरू करने और रोकने के लिए "रूट-अप" और "डाउन" स्क्रिप्ट को संपादित करते हैं।
sudo vim /opt/ibVPN/route-up.sh
इसे विम में पेस्ट करें:
#! /bin/bash
/sbin/initctl emit transmission-vpn-up VPN_GATEWAY=$route_vpn_gateway LOCAL_IP=$ifconfig_local
यह सब स्क्रिप्ट अपस्टार्ट को कहती है कि ट्रांसमिशन-डेमॉन को शुरू करना चाहिए, और यह वीपीएन कनेक्शन को संलग्न करने के लिए आवश्यक जानकारी देता है।
sudo vim /opt/ibVPN/down.sh
फिर से, अधिक चिपकाने:
#! /bin/bash
/sbin/initctl emit transmission-vpn-down
यह लिपि और भी सरल है - यह प्रसारण-डेमॉन को रोकने के लिए संकेत देती है।
इस बिंदु पर, यह निश्चित रूप से एक अच्छा विचार है कि यह सुनिश्चित करें कि पूरे वीपीएन कॉन्फिग फ़ोल्डर का मालिक रूट उपयोगकर्ता है - चूंकि ये स्क्रिप्ट रूट के रूप में चलती हैं, जो कोई भी उन्हें बदल सकता है वह कुछ भी चला सकता है जिसे वे रूट उपयोगकर्ता के रूप में चाहते थे।
sudo chown root:root -R /opt/ibVPN
sudo chmod 700 -R /opt/ibVPN
sudo chmod 400 /opt/ibVPN/pass
अब इसका मतलब है कि केवल रूट उपयोगकर्ता वीपीएन कनेक्शन सेटिंग्स को संशोधित या देख सकता है।
ठीक है, हम लगभग हो चुके हैं! यदि हमारा सेटअप अब तक काम कर रहा है तो आइए देखें:
sudo openvpn --cd /opt/ibVPN --config config.ovpn
ट्रांसमिशन वेब जीयूआई से फिर से कनेक्ट करें, और मौजूदा धार को फिर से शुरू करें या एक नया जोड़ें। यह डाउनलोड करने में सक्षम होना चाहिए, हो सकता है कि साथियों के इंतजार के कुछ मिनट बाद। एक निफ्टी तरीका मुझे परीक्षण में मिला है या नहीं यह काम कर रहा है, अगर यह देखने के लिए है कि क्या है। Iftop स्थापित करें, और चलाएँ:
sudo apt-get install iftop
sudo iftop -i tap1
यह स्क्रीन वीपीएन के माध्यम से चलने वाले सभी कनेक्शन दिखा रही होगी। यदि आपका टोरेंट डाउनलोड हो रहा है और सही तरीके से वीपीएन का उपयोग कर रहा है, तो यहां बहुत सारे आईपी पते और होस्ट नाम होंगे। LAN कनेक्शन के लिए iftop को भी देखें:
sudo iftop -i eth0
यहां आपको वीपीएन सर्वर होने के नाते एक एकल आईपी पते पर बड़ी मात्रा में ट्रैफ़िक देखना चाहिए, और फिर अन्य लैन उपकरणों पर केवल न्यूनतम ट्रैफ़िक - यह मानते हुए कि आप अपने बीगलबोन पर अन्य सेवाएं नहीं चला रहे हैं।
आप पुष्टि कर सकते हैं कि वीपीएन इन निर्देशों का पालन करके काम कर रहा है ।
यह साइट आपको आईपी पते को देखने के लिए एक धार डाउनलोड करने की सुविधा देती है, जिससे अन्य सहकर्मी आपसे जुड़ने के लिए उपयोग करते हैं - यदि सब कुछ काम कर रहा है तो यह वीपीएन आईपी पता होगा और आपका स्वयं का आईपी पता नहीं।
यदि आप समस्याओं का सामना कर रहे हैं, तो आप अपस्टार्ट त्रुटि लॉग को देख कर कर सकते हैं:
sudo tail -f /var/log/upstart/transmission-daemon.log
एक अलग टर्मिनल / एसएसएच विंडो में, वीपीएन कनेक्शन को ऊपर के रूप में शुरू करते हुए टेल कमांड चलाने की कोशिश करें और किसी भी त्रुटि संदेशों की तलाश करें। उम्मीद है कि आप त्रुटि संदेशों को देखने से समस्या को हल कर सकते हैं, अगर इंटरनेट पर चारों ओर खुदाई नहीं है, या एक टिप्पणी पोस्ट करें।
इसे स्वचालित रूप से प्रारंभ करने के लिए कॉन्फ़िगर करें
यदि आप 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
यह सब सिस्टम के सिग्नल के इंतजार में है कि नेटवर्क तैयार है, और फिर यह ओपनवीपीएन सुरंग शुरू करेगा - जो बदले में ट्रांसमिशन शुरू करेगा। जब सिस्टम बंद कर दिया जाता है, या यदि किसी कारण से नेटवर्किंग बंद हो जाती है, तो उपस्टार्ट फ़ायरवॉल नियमों को बंद कर देगा और ट्रांसमिशन-डेमॉन को बंद कर देगा। सरल! यह रिबूट के बाद भी काम करना जारी रखेगा, इसलिए अब आप सभी तैयार हैं।
ट्रांसमिशन के साथ बातचीत करने के लिए, वेब GUI का उपयोग करें जैसा कि हमने सेटअप चरण के दौरान किया था। पोर्ट अग्रेषण की स्थापना करके इंटरनेट पर GUI को सुलभ बनाना भी संभव है। ऐसा करने के लिए बहुत सारे ट्यूटोरियल हैं, इसलिए मैं इसे यहां नहीं दोहराऊंगा।
बीगलबन से पूर्ण डाउनलोड प्राप्त करने के लिए, मैं NFS का उपयोग कर रहा हूं। मैं अपने डेस्कटॉप कंप्यूटर के लिए बीगलबोन से लैन पर लगभग 8 एमबी / एस की प्रतिलिपि बनाने की गति प्राप्त कर सकता हूं - जो इस तरह के कम-संचालित डिवाइस के लिए बहुत अच्छा है। उबंटू इसे स्थापित करने के लिए कुछ उपयोगी जानकारी प्रदान करता है ।