लिनक्स में सिंगल इंटरफेस पर वाईफाई एक्सेस प्वाइंट बनाना


14

मैं अपने लिनक्स लैपटॉप पर वाईफाई हॉटस्पॉट या एक्सेस प्वाइंट बनाने की कोशिश कर रहा हूं। मैं Opensuse Kde 12.3 का उपयोग कर रहा हूं।

मुझे एक सॉफ्टवेयर मिला है, hostapdजो आपको हॉटस्पॉट बनाने की सुविधा देता है, लेकिन इसके लिए दो इंटरफेस की आवश्यकता होती है। एक इंटरनेट से जुड़ा है और दूसरा जिस पर आप एक्सेस प्वाइंट ( ट्यूटोरियल यहाँ ) बनाना चाहते हैं । मेरे पास समस्या यह है कि मेरे पास ईथरनेट कनेक्शन नहीं है। wlanइंटरफ़ेस इंटरनेट से कनेक्ट करने के लिए इस्तेमाल किया जा रहा है।

क्या एक ही इंटरफ़ेस पर हॉटस्पॉट बनाने का कोई तरीका है जो इंटरनेट से जुड़ा है (जैसे सॉफ्टवेयर कनेक्टिफाई विंडोज पर करता है)? मैं एक वर्चुअल इंटरफ़ेस बनाने की सोच रहा था (जैसे एक airmon-ngवाईफाई की निगरानी करने के लिए बनाता है) और दूसरे इंटरफ़ेस के रूप में इसका उपयोग करना। क्या यह संभव है?

अपडेट करें

यहाँ मैं अब तक क्या करने में सक्षम है:

1) 2 इंटरफेस बनाएं (एक स्टेशन के रूप में और दूसरा एक्सेस प्वाइंट के रूप में)

  iw phy phy0 interface add mySta type station
  iw phy phy0 interface add myAcc type __ap

2) उन्हें मैक आईडी अलग करें

ifconfig myAcc hw ether A4:17:FE:6E:00:53
ifconfig myAcc 192.168.27.1 up

3) myAcc इंटरफ़ेस पर होस्टपैड शुरू करें

4) कनेक्ट करने वाले उपकरणों को आईपी पता प्रदान करने के लिए dnsmasq शुरू करें

यह सब काम करता है। डिवाइस इस नेटवर्क से कनेक्ट करने और आईपी एड्रेस प्राप्त करने में सक्षम हैं। अगला कदम आईपी मास्किंग प्रदान करना है

iptables --table nat --append POSTROUTING --out-interface mySta -j MASQUERADE
iptables --append FORWARD --in-interface myAcc -j ACCEPT

लेकिन mySta इंटरफ़ेस अब इंटरनेट से कनेक्ट करने में विफल है। यह Essid प्राप्त करने में सक्षम है, लेकिन यह IP पता प्राप्त नहीं कर सकता है।

आदेश dhclient mySta कोई संदेश नहीं दिखाता है और कुछ समय बाद त्रुटि देता है:

ls: cannot access /var/run/netconfig//mySta/: No such file or directory

क्या कोई पता लगा सकता है कि आईपी एड्रेस कैसे प्राप्त करें?


क्या आपने मॉड्यूल के रूप में "डमी नेट ड्राइवर सपोर्ट" (कर्नेल ड्राइवर) के साथ प्रयास किया है। मैं आपको इससे ज्यादा मदद नहीं कर सकता क्योंकि मैं खुले तौर पर नहीं जानता। लेकिन मैं देख सकता हूं कि संस्करण 11 से उच्चतर त्रुटियां हैं और जब इसे यास्ट के साथ बनाया जाता है। तो सावधान रहें।
डिब्लो डीके

मैं निश्चित रूप से आपकी मदद कर सकता हूं, अगर यह उसी तरह से किया जा सकता है (गिनेल, डेबियन या उबंटू में जैसा कि कर्नेल कॉन्फ़िगरेशन, नेटवर्क सेटअप)।
डिब्लो डीके

किसी भी तरह की सहायता को आभार समझेंगे। मैं यस्ट टूल्स का उपयोग नहीं कर रहा हूं। विन्यास उबंटू के एक ट्यूटोरियल से थे। फ़ाइल सिस्टम और कॉन्फ़िगरेशन लगभग समान हैं।
adityap174

आपका कर्नेल संस्करण क्या है?
डिब्लो डीके

कर्नेल: x86_64 लिनक्स 3.7.10-1.16-डेस्कटॉप
adityap174

जवाबों:


9

किसी और को इस समस्या का सामना करने के लिए, समस्या मैक पते के साथ थी। मैंने एक्सेस पॉइंट इंटरफ़ेस शुरू किया, इसे मैक एड्रेस दिया। फिर hostapd चलाने के बाद, स्टेशन इंटरफ़ेस जोड़ा, इसे एक अलग मैक एड्रेस दिया और इसे नेटवर्क से कनेक्ट किया और स्टेशन के आईपी एड्रेस को dnsmasq के माध्यम से क्लाइंट के डिफ़ॉल्ट गेटवे के रूप में दिया।

अब सब कुछ ठीक से काम कर रहा है।

जैसा कि डिब्लो डीके ने बताया, आप वर्चुअल और डमी इंटरफेस का उपयोग कर सकते हैं, लेकिन होस्टपैड उनके साथ काम नहीं कर रहा था। मुझे पता नहीं क्यों।

यहाँ कदम हैं:

  1. नेटवर्क प्रबंधक सेवा को बंद करें क्योंकि यह वर्चुअल इंटरफेस के साथ हस्तक्षेप करता है
  2. ifconfig wlan0 डाउन का उपयोग करके wlan0 को बंद करें
  3. iw कमांड (टाइप __ap) का उपयोग करके एक्सेस प्वाइंट इंटरफेस बनाएं, इसे एक अलग मैक और आईपी एड्रेस असाइन करें
  4. इस एक्सेस इंटरफ़ेस पर होस्टपैड चालू करें
  5. इस इंटरफ़ेस पर कनेक्टिंग क्लाइंट्स को असाइन करने के लिए dnsmasq का उपयोग करें, आईपी पते और स्टेशन के इंटरफ़ेस के आईपी के रूप में डिफ़ॉल्ट गेटवे बनाएं
  6. एक्सेस इंटरफ़ेस पर dnsmasq चालू करें। अब क्लाइंट एक्सेस प्वाइंट से कनेक्ट हो सकेगा और आईपी एड्रेस प्राप्त कर सकेगा।
  7. नया इंटरफ़ेस बनाएं (टाइप स्टेशन) इसे अलग मैक एड्रेस असाइन करें और इसे आईपी एड्रेस प्राप्त करने के लिए सार और असाइनमेंट का उपयोग करके नेटवर्क से कनेक्ट करें।
  8. यदि आवश्यक हो तो iptables कमांड के माध्यम से आईपी मास्किंग करें

इसे स्पष्ट रूप से कहने के लिए, WTF hostapd :)
Diblo Dk

क्या आप अपने उत्तर को आपके द्वारा किए गए सटीक चरणों से अपडेट कर सकते हैं। यह निश्चित रूप से एक उत्तर है जिसे मैं बचाना चाहता हूं।
डिब्लो डीके lo

अद्यतन :) और अधिक विवरण चाहते हैं?
आदित्यप

समस्या के आसपास पहुंचने का अच्छा तरीका :)
डिब्लो डीके

आप किस डोंगल / चिपसेट का उपयोग कर रहे थे?
एल्विन

2

डमी नेटवर्क सेट करें

1 कंसोल खोलें

su -

2 देखें कि क्या आपके पास डमी ड्राइवर है

modprobe -l | grep /net/dummy.ko

(!) यदि आपके पास डमी ड्राइवर नहीं है, तो " कर्नेल मॉड्यूल बनाएं " पर जाएं।

3 लोड डमी चालक

modprobe dummy

(!) असफल होने पर इसे स्टार्टअप से न जोड़ें।

4 टेस्ट डमी 0 को लगाकर

ifconfig dummy0 10.246.75.1 netmask 255.255.255.0 broadcast 10.246.75.255 up

ifconfig

यह आपको एक समान आउटपुट देगा।

dummy0  Link encap:Ethernet  HWaddr 00:2D:32:3E:39:3B
        inet addr:10.246.75.1  Bcast:10.246.75.255  Mask:255.255.255.0
        ...

5 स्टार्टअप में डमी ड्राइवर जोड़ें

कर्नेल sys फ़ाइल संपादित करें।

nano /etc/sysconfig/kernel

और MODULES_LOADED_ON_BOOT में " डमी " जोड़ें ।

MODULES_LOADED_ON_BOOT = "..."

पूर्व। MODULES_LOADED_ON_BOOT = "vmcp डमी"।

6 डमी 0 के लिए नेटवर्क सेटिंग्स कॉन्फ़िगर करें

Ifcfg-dummy0 फ़ाइल बनाएं।

nano /etc/sysconfig/network/ifcfg-dummy0

Ifcfg-dummy0 फ़ाइल में जोड़ें:

# Configuration for dummy0
BOOTPROTO=static

# This line ensures that the interface will be brought up during boot.
STARTMODE=onboot

# dummy0 - This is the main IP address that will be used for most outbound connections.
# The address, netmask and gateway are all necessary. The metric is not necessary but
# ensures you always talk to the same gateway if you have multiple public IPs from
# different subnets.
IPADDR=10.246.75.1
NETMASK=255.255.255.0
BROADCAST=10.246.75.255
GATEWAY=10.246.75.1



कर्नेल मॉड्यूल बनाएं

1 पहले आवश्यक चीजों को स्थापित करना

YaST खोलें।

Software-> पर नेविगेट करें Software Management

टिक:

Development 

[X] Base Development
[X] Linux Kernel Development
[X] C/C++ Development

2 कंसोल पर वापस जाएं और कर्नेल स्रोत पर नेविगेट करें

cd /usr/src/linux

3 वर्तमान कर्नेल कॉन्फ़िगरेशन आयात करें

zcat /proc/config.gz > .config

4 ओपन कर्नेल मेनुकोनफिग

make menuconfig

5 डमी नेट ड्राइवर समर्थन जोड़ें

Device Drivers-> पर नेविगेट करेंNetwork device support

* Network core driver support
    M Dummy net driver support

(!) यदि आपके पास "नेटवर्क कोर ड्राइवर समर्थन" के बगल में एक तारांकन चिह्न है, तो आप चरण 7 और 9 को छोड़ सकते हैं।

6 कर्नेल संकलित करें

make -j(n+1)

जहां (n + 1) = सीपीयू कोर की संख्या प्लस एक को संकलित करने के लिए उपयोग किया जाता है। चार कोर के लिए मेक -j5 का उपयोग करें।

7 नया कर्नेल स्थापित करें

make install

8 मॉड्यूल स्थापित करें

make modules_install

9 नया कर्नेल लोड करें

reboot



VIPA को परिभाषित करना (लोडिंग मॉड्यूल और ifcfg-dummy0 के बारे में भाग): http://wiki.linuxvm.org/wiki/Defining_a_VIPA
स्टेटिक IP कॉन्फ़िगर करें : https://www.linode.com/biki/index.php/Configure_Static_IPs
खुले हैं। 12.3 और कर्नेल से नए लिनक्स कर्नेल संस्करण स्थापित करना: http://forums.opensuse.org/blogs/jdmcdaniel3/opensuse-installing-new-linux-kernel-versions-134
- OpenSUSE 11.2 - Newbies के लिए कर्नेल कैसे संकलित करें : http://linuxtweaking.blogspot.dk/2010/04/opensuse-112-how-to-compile-kernel-for.html


इस तरह के एक विस्तृत विवरण के लिए धन्यवाद। मैंने यह तरीका आजमाया। मैं बूट पर dummy0 इंटरफ़ेस बनाने और शुरू करने में सक्षम था। लेकिन आप इसे वायरलेस इंटरफ़ेस कैसे बनाते हैं? iwconfig देता है: dummy0 कोई वायरलेस एक्सटेंशन नहीं। hostapd इसके साथ काम नहीं करता है। यह त्रुटि देता है: nl80211 ड्राइवर आरंभीकरण विफल
adityap174

हां, समस्या यह है कि आपके पास एक आईपी संघर्ष है। लेकिन यह छद्म मॉड्यूल (कई आईपी पते निर्दिष्ट करें) के साथ किया जा सकता है। अपने सिस्टम को देखने के लिए मुझे कुछ समय दें।
डिब्लो डीके

आप यहाँ भी देख सकते हैं linode.com/wiki/index.php/Configure_Static_IPs#OpenSUSE यह हो सकता है कि आप देख सकते हैं कि wlan के साथ कैसे करें :)
Diblo Dk

समस्या यह है कि आप एक आईपी संघर्ष *
Diblo Dk

1

वर्चुअल इंटरफ़ेस बनाएँ

Ifcfg-wlan0: 0 फ़ाइल बनाएँ

nano /etc/sysconfig/network/ifcfg-wlan0:0

Ifcfg-wlan0 में जोड़ें: 0 फ़ाइल:

DEVICE=wlan0:0

# Configuration for wlan0:0
ONBOOT=yes

# This line ensures that the interface will be brought up during boot.
BOOTPROTO=static

# wlan0:0 - This is the main IP address that will be used for most outbound connections.
# The address, netmask and gateway are all necessary. The metric is not necessary but
# ensures you always talk to the same gateway if you have multiple public IPs from
# different subnets.
IPADDR=10.246.75.1
NETMASK=255.255.255.0
BROADCAST=10.246.75.255
GATEWAY=10.246.75.1

इंटरफ़ेस को सक्रिय करने के लिए आदेश

ifup wlan0:0

नोट: मुख्य इंटरफ़ेस बंद करने से इसके सभी उपनाम भी बंद हो जाते हैं। उपनामों को अन्य इंटरफेस से स्वतंत्र रूप से बंद किया जा सकता है।

जाँच करें कि क्या इंटरफ़ेस काम करता है

ifconfig

यह आपको एक समान आउटपुट देगा।

wlan0:0  Link encap:Ethernet  HWaddr 00:2D:32:3E:39:3B
         inet addr:10.246.75.1  Bcast:10.246.75.255  Mask:255.255.255.0
         ...

http://forums.opensuse.org/english/get-technical-help-here/network-internet/461132-os-11-4-network-manager-default-connection-can-handle-virtual-interfaces.html# post2350426


यहां तक ​​कि यह hostapd के साथ काम नहीं कर रहा था। इसने एक ही त्रुटि दी: फ़ाइल / sys / class / net / dummy0 / phy80211 / name नहीं खोल सका: dummy0 के साथ ऐसी कोई फ़ाइल या निर्देशिका नहीं है और फ़ाइल / sys / class / net / wlan0 नहीं खोल सका: 0 / phy80211 / name: वर्चुअल इंटरफ़ेस के साथ ऐसी कोई फ़ाइल या निर्देशिका नहीं। आपकी सभी मदद का धन्यवाद। :) समस्या मैक पते के साथ थी। मैंने आपके उत्तरों को बढ़ा दिया है और मैं दूसरों के लिए समाधान पोस्ट कर रहा हूं।
आदित्यप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.