OpenVPN पर ट्रांसमिशन डेमॉन


20

मैंने हाल ही में एक बीगलबोन ब्लैक का अधिग्रहण किया है, जिस पर मैंने इस विधि का उपयोग करके उबंटू स्थापित किया है । यह सब अब तक काम कर रहा है। मैं अपने बीगलबोन को एक धार बॉक्स के रूप में उपयोग करना चाहता हूं, लेकिन मैं इसे सीधे अपने इंटरनेट कनेक्शन पर नहीं करना चाहता (मुझे नहीं लगता कि मेरा आईएसपी इसे पसंद करेगा) - इसलिए मैंने एक यूरोपीय सर्वर से वीपीएन सदस्यता खरीदी है । मैंने अपने लैपटॉप को इस वीपीएन और रन ट्रांसमिशन से पहले मैन्युअल रूप से कनेक्ट किया है। मुझे पता है कि वीपीएन कनेक्शन उबंटू में काम करता है, और होस्ट ओपनवीपीएन के लिए सेटअप जानकारी प्रदान करता है। सौंपे गए आईपी पते की गतिशील प्रकृति का अर्थ है कि यह अक्सर बदल जाएगा, इसलिए जब मैंने वीपीएन के साथ अपने लैपटॉप का उपयोग किया तो मैं मैन्युअल रूप से आवश्यक मूल्य में ट्रांसमिशन में सुनने का पता सेट करूंगा।

आदर्श रूप से मुझे निम्नलिखित सेटअप पसंद आएगा:

  • ट्रांसमिशन केवल वीपीएन पर चलता है, और सामान्य वैन कनेक्शन पर टॉरेंट चलाने से प्रतिबंधित है
  • केवल ट्रांसमिशन के लिए निर्देशित यातायात वीपीएन के माध्यम से स्वीकार या भेजा जाएगा, अन्य सभी अवांछित ट्रैफ़िक को हटा दिया जाएगा
  • प्रेषित IP पते के आधार पर ट्रांसमिशन सुनने के लिए उपयुक्त पोर्ट का उपयोग करता है
  • OpenVPN बूट पर स्वचालित रूप से शुरू होता है, जो बाद में ट्रांसमिशन शुरू करता है
  • ट्रांसमिशन के वेब जीयूआई को लैन पर एक्सेस किया जा सकता है, और संभवतः मेरे WAN कनेक्शन से इंटरनेट पर (यानी वीपीएन के माध्यम से वापस नहीं)

3
स्व उत्तर खराब नहीं हैं। उनके लिए माफी न मांगें। आपको यह भी समझाने की ज़रूरत नहीं है कि आप हालांकि क्या कर रहे हैं ... यह एक प्रोत्साहित व्यवहार है
रोबॉटहैंस

@Hbdgaf से सहमत हैं। माफी मांगने की कोई जरूरत नहीं है। सभी मोर्चों पर शानदार काम।
जेकगोल्ड

जवाबों:


23

नोट: (२०१६-०२-२२) मैंने महसूस किया है कि यह वाई-फाई वीपीएन के माध्यम से भेजने के बजाय, सामान्य डब्ल्यूएएन के माध्यम से टोरेंट ट्रैकर्स को डीएनएस प्रश्न लीक करता है। मैं जांच कर रहा हूं कि इसे कैसे ठीक किया जाए। मैं अपने कॉन्फिग को चालू रखने वाला हूं, क्योंकि कनेक्शन खुद ही वीपीएन का सही इस्तेमाल करता है।


अपडेट: मैंने देखा है कि जब मैंने बीगलबोन पर रात भर डाउनलोड करने के लिए ट्रांसमिशन सेट किया, तो थोड़ी देर बाद सीपीयू का उपयोग 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-noexecOpenVPN क्लाइंट को सर्वर द्वारा प्रदान किए गए मार्गों का स्वचालित रूप से उपयोग नहीं करने के लिए कहता है - जो वीपीएन पर सभी नेटवर्क ट्रैफ़िक को खींच लेंगे। हम केवल टोरेंट ट्रैफ़िक भेजना चाहते हैं, इसलिए हमें अलग-अलग रूटिंग सेटिंग्स का उपयोग करना होगा।

  • 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 एमबी / एस की प्रतिलिपि बनाने की गति प्राप्त कर सकता हूं - जो इस तरह के कम-संचालित डिवाइस के लिए बहुत अच्छा है। उबंटू इसे स्थापित करने के लिए कुछ उपयोगी जानकारी प्रदान करता है


वाह! आपने यह सब सामान ढूंढने में कितना समय लगाया?
इस्माईल मिगेल

हाहा, थोड़ी देर। मैंने डीडी-डब्ल्यूआरटी राउटर पर एक बार पहले किया था, फिर जब मैं बीगलबोन के लिए फिर से कर रहा था तो मुझे लगा कि मैं इसे लिखूंगा इसलिए मैं यह नहीं भूलता कि यह कैसे करना है। : डी
सीनालो

1
आपको इसे भी पढ़ना चाहिए: unix.stackexchange.com/questions/88693/… (यह एक शानदार जवाब है।) इससे आपको मदद मिलेगी, मुझे यकीन है।
इस्माइल मिगुएल

3
मुझे अभी पता चला है, OpenDNS का उपयोग करने के लिए और आँकड़ों के माध्यम से अपने DNS सर्वर को सेट करने के बाद, यह कॉन्फ़िगरेशन सामान्य WAN कनेक्शन के माध्यम से DNS को लीक करता है । मैं आगे जांच करूंगा कि क्या मैं इसे ठीक कर सकता हूं। मैं वैसे भी चालू रखने जा रहा हूं, क्योंकि कनेक्शन खुद वीपीएन के माध्यम से है - लेकिन यह आदर्श नहीं है।
seanlano

1
@seanlano हमारे ध्यान में लाने के लिए धन्यवाद। हमें पता है कि क्या / जब आप एक ठीक पाते हैं।
विंटरफ्लैग्स

7

बस मुझे SystemD का उपयोग करके यह काम मिल गया तो मैंने सोचा कि मैं साझा करूँगा। मैंने अपनी सभी स्क्रिप्ट्स, कॉन्फिगर्स और सर्टिफिकेट्स को उसी डायरेक्टरी में रखा है, जिसे मैं इस प्रकार बताऊंगा/etc/openvpn/myprovider

OpenVPN कॉन्फ़िगरेशन

यह आपके विशिष्ट VPN पर निर्भर करता है, लेकिन @ seanlano के कॉन्फिग से एक अंतर यह है कि मैं केवल एक route-upस्क्रिप्ट का उपयोग करता हूं । तो आपके काम करने के लिए आवश्यक चीजें जो आपको प्रदान की गई हैं, ये पंक्तियां हैं:

route-noexec
route-up "/etc/openvpn/myprovider/transmission-route-up.sh"

आप जहां चाहें वहां transmission-route-up.shस्क्रिप्ट रखें। एक downस्क्रिप्ट की अनुपस्थिति पर ध्यान दें । (मेरा वीपीएन पहले से ही एक कस्टम डाउन स्क्रिप्ट का उपयोग कर रहा था ताकि यह किसी भी तरह से विवादित हो)।

/etc/openvpn/myprovider/transmission-route-up.sh:

#!/bin/sh

# Print environment variables for transmission's benefit
printenv > /etc/openvpn/myprovider/vpn.env


# Set up VPN routes
ip route add default via $route_vpn_gateway dev $dev table 10

ip rule add from $ifconfig_local/32 table 10
ip rule add to $route_vpn_gateway/32 table 10

ip route flush cache


# Add firewall rules
iptables -A INPUT -i $dev -p udp --dport 24328 -j ACCEPT
iptables -A INPUT -i $dev -p tcp --dport 24328 -j ACCEPT

iptables -A OUTPUT -o $dev -p udp --sport 24328 -j ACCEPT
iptables -A OUTPUT -o $dev -p tcp --sport 24328 -j ACCEPT

पहली पंक्ति printenv,,, महत्वपूर्ण है। इसे आप जहां चाहें पसंद करें, इसका उपयोग बाद में SystemD सेवा में किया जाता है। मैं इसे अपने vpn config के समान निर्देशिका में रखता हूँ।

24328 को बदलें को अपने ट्रांसमिशन-डेमॉन को जिस भी पोर्ट पर रखना चाहिए, उसकी जगह लें। मैं iptables (डेबियन का उपयोग करके) का उपयोग करता हूं, इसलिए आप शायद उन पंक्तियों को @ seanlano के कॉन्फिगर से ufw लाइनों के साथ बदल सकते हैं।

SystemD VPN सेवा

यह वह सेवा है जो ऑटो हमारे लिए वीपीएन शुरू करता है। सत्यापित करें कि आपके मशीन पर Openvpn का पथ सही है, और यह कि विन्यास फाइल का मार्ग सही है। आपको पूर्ण निर्दिष्ट करना चाहिए SystemD सेवाओं में पथ ।

/etc/systemd/system/my-vpn.service:

[Unit]
Description=VPN connection
After=network.target

[Service]
Type=forking
PIDFile=/var/run/openvpn/vpn.pid
ExecStart=/usr/sbin/openvpn --cd /etc/openvpn/myprovider --config /etc/openvpn/myprovider/myconfig.ovpn --daemon --writepid /var/run/openvpn/vpn.pid

[Install]
WantedBy=multi-user.target

इसके साथ VPN सेवा सक्षम करें:

systemctl enable my-vpn.service

और इसके साथ परीक्षण करें:

systemctl start my-vpn.service
systemctl status my-vpn.service

यदि यह शुरू / चल रहा है, तो आप अच्छे हैं।

SystemD ट्रांसमिशन-डेमन.स्वाइस

इस लिपि को vpn- सेवा की आवश्यकता है, इसलिए यदि vpn नीचे जाता है, तो ट्रांसमिशन-डेमॉन भी नीचे चला जाता है। यह आसान है अगर वीपीएन को फिर से शुरू किया गया है, और आपको एक नया आईपी-पता मिलता है, क्योंकि ट्रांसमिशन को फिर से पुनरारंभ करना होगा और फिर से बाँधना होगा, जिसे स्वचालित रूप से नियंत्रित किया जाना चाहिए। ध्यान दें कि हम उन पर्यावरण वेरिएबल्स का उपयोग करते हैं जिन्हें हमने प्रिंट किया थाroute-up पहले स्क्रिप्ट ।

/etc/systemd/system/transmission-daemon.service:

[Unit]
Description=Transmission BitTorrent Daemon Under VPN
After=network.target my-vpn.service
Requires=my-vpn.service

[Service]
User=debian-transmission
Type=notify
EnvironmentFile=/etc/openvpn/vpn.env
ExecStart=/usr/bin/transmission-daemon -f --log-error --bind-address-ipv4 $ifconfig_local --rpc-bind-address 0.0.0.0 --no-portmap
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target

इसे चालू करो

systemctl enable transmission-daemon.service

और इसे शुरू करें

systemctl start transmission-daemon.service

जब आप रिबूट करते हैं, तो यह सभी स्वचालित रूप से (क्रम में!) शुरू होना चाहिए। ध्यान दें कि Type=simplevpn सेवा का उपयोग करने से स्क्रिप्ट ऑर्डर करने के समय के लिए कुछ समस्याएं होती हैं, इसलिए मैं उपयोग करने की सलाह देता हूंforking करने इसके बजाय करने की ।

rpc-bind-addressयदि आप अधिक प्रतिबंधक होना चाहते हैं (तो यह वेब GUI सुनने का पता है, जो आपका वीपीएन-आईपी नहीं होना चाहिए) के लिए आप एक वास्तविक आईपी-पता निर्दिष्ट कर सकते हैं । और अगर आप ट्रांसमिशन को अच्छे से चलाना चाहते हैं, तो बस ExecStartलाइन बदलें और जोड़ें/usr/bin/nice -n15 शुरुआत में ।

पता बदलने का काम

एक बात जो मैंने समय के साथ नोट की है वह यह है कि अगर किसी कारण से वीपीएन-कनेक्शन को एक नया आईपी-पता मिल जाता है, तो ट्रांसमिशन अभी भी पुराने पते से जुड़ा होगा और काम करना बंद कर देगा। और बस कर रहा हैsystemctl restart transmission-daemon.service यह कटौती नहीं करता है। इसे पूरी तरह से रोकने की जरूरत है, और फिर नए सिरे से शुरू करें।

पता नहीं क्यों, लेकिन इस कारण से मैंने अपने रूट क्रॉस्टैब ( sudo crontab -e) में निम्नलिखित पंक्तियों को जोड़ा है :

# m h  dom mon dow   command
0 6 * * * /bin/systemctl stop my-vpn.service; /bin/systemctl start my-vpn.service
1 6 * * * /bin/systemctl stop transmission-daemon.service; /bin/systemctl start transmission-daemon.service

बस ब्याज से बाहर, यह भी एक बीगलबोन पर चल रहा है? यदि हां, तो क्या आप ट्रांसमिशन के साथ प्रदर्शन के मुद्दों को देखते हैं? साथ ही शानदार लेखन। :)
शीलानो

आह ना। यह मेरे सामान्य डेस्कटॉप मशीन पर चल रहा है और मैंने वहां कोई समस्या नहीं देखी है।
जोनास कालडर्स्टम

काफी उचित। इंटेल मशीन पर मेरे लिए ठीक काम करता है, मैं उम्मीद कर रहा था कि मैं एक एआरएम प्रोसेसर के साथ एक सस्ता टोरेंट बॉक्स बना सकता हूं - लेकिन जाहिर है कि यह नहीं होना चाहिए।
शीलानो

बाहर की जाँच करें। यह बहुत अच्छा प्रदर्शन है
जोनास कालडर्स्टम

धन्यवाद, मैं करूँगा। अन्य चीजें एआरएम बॉक्स पर ठीक चलती हैं, इसलिए शायद रटोरेंट ठीक से काम करेगा।
शीलानो

3

मैंने देखा है कि आपने उल्लेख किया है कि ट्रांसमिशन UPnP / NAT-PMP के लिए वीपीएन के माध्यम से नहीं जाता है। मैंने इस पर भी ध्यान दिया और ट्रांसमिशन के लिए एक पैच बनाया ताकि यह UPnP के लिए बाइंड-एड्रेस-आईपीवी 4 सेटिंग का सम्मान करे। NAT-PMP को लागू करना थोड़ा कठिन है क्योंकि आपको डिफ़ॉल्ट गेटवे निर्धारित करने की आवश्यकता है। यूपीएनपी मुख्य है जो इन दिनों उपयोग किया जा रहा है, हालांकि, इसलिए यह संभवतः पर्याप्त है। मैंने इसे trac.transmissionbt साइट पर एक बग के रूप में लॉग किया और पैच प्रदान किया। उम्मीद है कि इसे भविष्य के रिलीज में शामिल किया जाएगा। https://trac.transmissionbt.com/ticket/5990

अभी के लिए एक और विकल्प यदि आप नहीं चाहते हैं कि recompile मैन्युअल रूप से miniupnpc पैकेज से upnpc चलाने के लिए है। उदाहरण के लिए

sudo apt-get install miniupnpc
upnpc -m 10.10.10.51 -a 10.10.10.51 51515 51515 TCP
upnpc -m 10.10.10.51 -a 10.10.10.51 51515 51515 UDP

जहां 10.10.10.51 आपका वीपीएन आईपी है और 51515 आपका अनुरोधित टीसीपी / यूडीपी पोर्ट है।

मुझे यकीन नहीं है कि फॉरवर्डिंग कब तक अच्छा है। इसके अलावा, आप डिस्कनेक्ट करते समय अपने पोर्ट को हटाने के लिए '-d' विकल्प का उपयोग करना चाह सकते हैं। मैंने पाया कि अगर मैं नहीं हूँ, तो मैं फिर से वही पोर्ट नहीं पा सकता हूँ, अगर मैं वीपीएन में पुनः आता हूँ।

चियर्स


मैंने इस तरह एक समाधान खोजने की कोशिश में उम्र बिताई, काश मैं मिल जाता miniupnpc! और उम्मीद है कि पैच विलय हो जाएगा और यह मुद्दा हमेशा के लिए ठीक हो जाएगा। इस बीच मैं निश्चित रूप से आपके काम की टिप का उपयोग करने की कोशिश करूंगा।
1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.