लोहे के कुछ सस्ते टुकड़े पर एक शेपर की व्यवस्था करना आवश्यक था। लोहे को एक प्रसिद्ध चीनी निर्माता से
डीआईआर -320 होने की योजना थी। लेकिन अच्छे और सरल
DIR-320 के बजाय, भयानक और समझ से बाहर
DIR-320NRU आ गया और समस्याएं शुरू हुईं।
प्रारंभ में, यह विचार सरल था: हम चाहते हैं कि
OpenWRT और ड्राइव डालें। लेकिन एनआरयू पर OpenWRT को स्थापित करना अभी तक संभव नहीं है (यदि कोई इसे ठीक करता है तो मुझे खुशी होगी), बूटलोडर प्रारूप स्पष्ट नहीं है, मुझे फर्मवेयर में स्क्वैशफ़ॉफ़ पर एक त्वरित नज़र नहीं मिली। और देखने का कोई समय नहीं था देशी फर्मवेयर में खुदाई करने के बाद, यह स्पष्ट हो गया कि कार्य को पूरा करने के लिए सभी आवश्यक उपकरण (पढ़ें: टीसी) इसमें हैं। सामान्य तौर पर, देशी डॉफ़िग फ़र्मवेयर में कुछ होता है, यहां तक कि मैन पेज भी मौजूद होते हैं।
वैज्ञानिक पोकिंग और कुछ प्रकार की माँ की विधि से, यह पाया गया कि सभी परिवर्तनशील सेटिंग्स
/ etc / डिफ़ॉल्ट फ़ोल्डर (जो कि / tmp / etc / default /, लेकिन सार के लिए एक सहानुभूति है) में संग्रहीत हैं। इस फ़ोल्डर की सभी फाइलें बड़े करीने से लिखी गई हैं और कमांड
/ usr / sbin / saveconfig के साथ nvram पर लिखी
गई हैं , और डाउनलोड (सिस्टम स्टार्टअप पर सहित), क्रमशः,
/ usr / sbin / loadconfig , बिल्ली मौजूद है, chmod, भी, समस्याओं के साथ कोई स्क्रिप्ट नहीं। लेकिन बूट समय पर स्क्रिप्ट चलाने में समस्याएं हैं।
थोड़ी और खुदाई करने के बाद, फ़ाइल
/etc/default/config.json और डेमन
/ बिन / निवासी पाए गए , जो इस विन्यास को पार्स करता है और जो कुछ भी करता है, वह सभी विन्यास में निर्धारित होता है। यह स्पष्ट रूप से लापरवाही से लिखा गया था और चीनी द्वारा भी नहीं, लेकिन भारतीयों द्वारा, या, अधिक संभावना है, इंडो-रूसियों द्वारा, फ़ाइल से लाइनें तुरंत निष्पादन के लिए भेज दी जाती हैं। यह तब था जब कुछ स्ट्रिंग को स्क्रिप्ट के साथ बदलने के लिए इंजीनियरिंग का विचार आया। पहला विकल्प जो सामने आया वह था
DMZ होस्ट - हम फॉर्म की config.json की सामग्री को बदलते हैं:
"dmz": {
"enable": true,
"ip": "192.168.0.2"
},
पर
"dmz": {
"enable": true,
"ip": "`/etc/default/shaper.sh`"
},
निवासी इसे निगल लेता है और इसके बजाय
-DNAT - 192.168.0.1 तक , हमारी स्क्रिप्ट चलाता है। और अगर स्क्रिप्ट सही आईपी-पता लौटाती है, तो डीएमजेड होस्ट भी सही तरीके से पंजीकृत है। देखा!
खैर, कुछ अंतिम कोड:
/etc/default/shaper.shtc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: htb default 2
tc class add dev br0 parent 1: classid 1:1 htb rate 10mbps
tc class add dev br0 parent 1:1 classid 1:2 htb rate 50kbps
for ip in `cat /etc/default/ips`;do
tc class add dev br0 parent 1:1 classid 1:${ip} htb rate 50kbps
tc filter add dev br0 parent 1: protocol ip prio 1 u32 match ip dst 192.168.0.${ip}/32 flowid 1:${ip}
done
echo cat /etc/default/DMZ.txt
led wps progress
स्वयं शेपर, DMZ होस्ट DMZ.txt फ़ाइल,
/ etc / default / ips से लिया गया है - अंतिम पता बाइट्स (2 3 4 5..254)
अंतिम पंक्ति हम ब्लिंक करने के लिए आंतरिक नीयन को चालू करते हैं, ताकि यह annoys और हमें परेशान करता है, और यह भी सूचित करता है कि उपरोक्त सभी ने लोड किया है और काम करता है।
स्क्रिप्ट को बदलने के लिए
echo Set DMZ Host to 9.9.9.9 via WebIF and run me again!
echo Use /etc/default/DMZ.txt to set DMZ Host IP
sed -is/9.9.9.9/"\`\/etc\/default\/shaper.sh\`"/g /etc/default/config.json
saveconfig
हमारे लिए सीड भी छोड़ दी जाती है, जो आनन्दित नहीं कर सकती।
और ज्यादा कुछ नहीं चाहिए। यह इस तरह से काम करता है: हम सब कुछ कॉन्फ़िगर करते हैं जैसा कि वेब-इंटरफ़ेस में होना चाहिए, 9.9.9.9 (ibid) में DMZ- होस्ट को पंजीकृत करें, टेलनेट कनेक्ट करें और
/etc/default/modify.sh चलाएं।हम केबल को खींचकर या रिबूट कमांड का उपयोग करके राउटर को रिबूट करते हैं।