हम dnsmasq
इस उद्देश्य के लिए पैकेज का उपयोग करेंगे क्योंकि यह डीएचसीपी और डीएनएस सर्वर संयुक्त है और कॉन्फ़िगर करना भी आसान है।
यदि आप कुछ अधिक 'हैवीवेट' चाहते हैं, तो आप क्रमशः डीएचसीपी और डीएनएस के लिए isc-dhcp-server
और bind9
पैकेज का उपयोग कर सकते
हैं, लेकिन हमारे उद्देश्यों के लिए, dnsmasq
यह ठीक काम करता है।
sudo apt-get install dnsmasq
हमें इंटरफेस को कॉन्फ़िगर करने की आवश्यकता है। हम एक स्थिर आईपी पता प्रदान
eth0
करेंगे, जिसका उपयोग गेटवे के रूप में किया जाएगा। इंटरफेस फ़ाइल खोलें
sudo nano /etc/network/interfaces
eth0
इस तरह से अनुभाग संपादित करें :
allow-hotplug eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
अगला, हम कॉन्फ़िगर करेंगे dnsmasq
। शिप की गई dnsmasq
कॉन्फ़िगर फ़ाइल में इसका उपयोग करने के तरीके के बारे में बहुत सारी जानकारी है। इसलिए, मैं इसे स्थानांतरित करने और एक नया बनाने की सलाह दूंगा।
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
निम्न को नई फ़ाइल में पेस्ट करें
interface=eth0 # Use interface eth0
listen-address=192.168.2.1 # listen on
# Bind to the interface to make sure we aren't sending things
# elsewhere
bind-interfaces
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
# Never forward addresses in the non-routed address spaces.
bogus-priv
# Assign IP addresses between 192.168.2.2 and 192.168.2.100 with a
# 12 hour lease time
dhcp-range=192.168.2.2,192.168.2.100,12h
/etc/sysctl.conf
पैकेट अग्रेषण सक्षम करने के लिए फ़ाइल को संपादित करें
sudo nano /etc/sysctl.conf
#
इस पंक्ति की शुरुआत से
निकालें net.ipv4.ip_forward=1
यह अगले रिबूट पर पैकेट अग्रेषण को सक्षम करेगा। लेकिन अगर आप इसे रिबूट के बिना अभी कोशिश करना चाहते हैं तो ऐसा करें।
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
हमें आरपीआई के इंटरनेट कनेक्शन को वाई-फाई से जुड़े उपकरणों के साथ साझा करना होगा। हम बीच में एक NAT कॉन्फ़िगर करेंगे eth0
और
wlan0
:
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
हालाँकि, हमें इन नियमों को लागू करने की आवश्यकता है, जब हम पाई को रिबूट करते हैं, इसलिए sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
नियमों को फ़ाइल में सहेजने के लिए चलाएं /etc/iptables.ipv4.nat
। अब हमें प्रत्येक रिबूट के बाद इसे चलाने की आवश्यकता है, इसलिए /etc/rc.local
फ़ाइल sudo nano /etc/rc.local
को लाइन के ऊपर और बस के साथ
खोलें exit 0
, निम्न पंक्ति जोड़ें:
iptables-restore < /etc/iptables.ipv4.nat
और बस यही! अब बस अपने आरपीआई को रिबूट करें और आप इंटरनेट का उपयोग कर पाएंगे
sudo reboot
उपरोक्त कॉन्फ़िगरेशन रास्पबियन के नए संस्करण में काम नहीं करेगा। इसलिए, मैंने इसके लिए एक स्क्रिप्ट बनाई है जो कम दर्द में इसे संभव बनाती है।
सुनिश्चित करें कि आपने फ़ाइल को पूर्ण पथ दिया है। और आपने कल लिया। अब परिवर्तनों को देखने के लिए रीबूट करें