Как раздать интернет через вторую сетевую карту (wlan0)
Как расширить домашнюю сеть устройств и обеспечить их всех интернетом, не затрачивая на это средств? Это легко сделать в том случае, если у вас есть один компьютер (лэптоп) с двумя сетевыми картами подключенный к интернету. В случае с лэптопом, то их там точно две, одна – это сетевая, для проводного соединения и вторая это для беспроводного соединения. В ПК же можно доставить вторую сетевую карту. Я буду рассматривать первый случай. Т.е. перенаправив входящий интернет на беспроводную карточку и начав передавать его, вы сможете подключить любое устройство, будь то телефон, КПК, смартфон, нетбук, лэптоп. Как это сделать, ниже.
В качестве эксперимента я решил оформить статью не в виде пошагового руководства, а запостить прямиком все мои действия с консоли со всей сопровождающей информацией. Сопроводив это все скришотами и комментариями.
Плюс ко всему, небольшая прогулка по google.co.il дала понять, что часто люди спрашивают, а как отменить все изменения, как вернуть все к исходному состоянию, по этому в этой статье я так же покажу как откатить все изменения.
Поехали…
- Есть сетевая карта(eth0) в ноутбуке(главный далее) которая подключена с помощью провода к ADSL-модему и получает интернет.
- Есть вторая беспроводная сетевая карта(wlan0) которая ничем не занята и просто-так простаивает.
Задача.
Раздать интернет получаемый картой eth0 на вторую карту wlan0 и дать возможность другим устройствам(смартфоны, КПК, ноутбуки) подключаться к вещаемой сети и выходить в Интернет.
Решение.
Нам необходимо пробросить с помощью NAT интернет на устройство wlan0. Присвоить ему IP-адресное пространство и подключить другое устройство.
NAT (от англ. Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов. Также имеет названия IP Masquerading, Network Masquerading и Native Address Translation.
NAT выполняет две важных функции.
1.Позволяет сэкономить IP-адреса, транслируя несколько внутренних IP-адресов в один внешний публичный IP-адрес (или в несколько, но меньшим количеством, чем внутренних).
2.Позволяет предотвратить или ограничить обращение снаружи ко внутренним хостам, оставляя возможность обращения изнутри наружу. При инициации соединения изнутри сети создаётся трансляция. Ответные пакеты, поступающие снаружи, соответствуют созданной трансляции и поэтому пропускаются. Если для пакетов, поступающих снаружи, соответствующей трансляции не существует (а она может быть созданной при инициации соединения или статической), они не пропускаются.
Все действия проделываем от root
1 2 | booch@alexlinux:~$ su - Пароль: |
1 2 | root@alexlinux:~# /etc/init.d/NetworkManager stop * Stopping network connection manager NetworkManager [ OK ] |
Диагностика интерфейсов (работают — не работают) что-бы узнать их состояние после отключения Network Manager
1 2 | root@alexlinux:~# ping mail.ru ping: unknown host mail.ru |
1 2 | root@alexlinux:~# iwlist wlan0 scan wlan0 Interface doesn't support scanning : Network is down |
Оба интерфейса в дауне.
Получаем IP-адрес для проводного устройства (eth0)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | root@alexlinux:~# dhclient eth0 Internet Systems Consortium DHCP Client V3.1.1 Copyright 2004-2008 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/ wmaster0: unknown hardware address type 801 wmaster0: unknown hardware address type 801 Listening on LPF/eth0/00:1c:23:92:8e:35 Sending on LPF/eth0/00:1c:23:92:8e:35 Sending on Socket/fallback DHCPREQUEST of 87.69.6.22 on eth0 to 255.255.255.255 port 67 DHCPREQUEST of 87.69.6.22 on eth0 to 255.255.255.255 port 67 DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 DHCPOFFER of 87.69.6.22 from 10.163.160.1 DHCPREQUEST of 87.69.6.22 on eth0 to 255.255.255.255 port 67 DHCPACK of 87.69.6.22 from 10.163.160.1 bound to 87.69.6.22 -- renewal in 36024 seconds. |
1 2 3 4 5 6 7 8 9 | root@alexlinux:~# ping google.co.il PING google.co.il (74.125.77.104) 56(84) bytes of data. 64 bytes from ew-in-f104.google.com (74.125.77.104): icmp_seq=1 ttl=240 time=132 ms 64 bytes from ew-in-f104.google.com (74.125.77.104): icmp_seq=2 ttl=240 time=137 ms 64 bytes from ew-in-f104.google.com (74.125.77.104): icmp_seq=3 ttl=240 time=138 ms ^C --- google.co.il ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 132.410/136.181/138.603/2.735 ms |
Интерфйес поднялся, пинг на google прошел
Поднимаем беспроводной интерфейс.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | root@alexlinux:~# ifconfig wlan0 up
root@alexlinux:~# ifup wlan0
Ignoring unknown interface wlan0=wlan0.
root@alexlinux:~# iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 00:1B:9E:A3:4A:BA
ESSID:"oren"
Mode:Master
Channel:1
Frequency:2.412 GHz (Channel 1)
Quality=45/100 Signal level:-80 dBm Noise level=-70 dBm
Encryption key:on
IE: Unknown: 00046F72656E
IE: Unknown: 010882848B962430486C
IE: Unknown: 030101
IE: Unknown: 050400010000
IE: Unknown: 2A0100
IE: Unknown: 2F0100
IE: Unknown: 32040C121860
IE: Unknown: DD0E0050F204104A0001101044000102
IE: Unknown: DD090010180200F0000000
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK
IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
24 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 9 Mb/s
12 Mb/s; 48 Mb/s
Extra:tsf=0000005f41acbc4d
Extra: Last beacon: 660ms ago |
Интерфейс поднялся. (не обращаем внимание на сеть, главное что поднялся интерфейс)
Создаем беспроводную сеть
1 | iwconfig wlan0 mode Ad-Hoc channel 1 essid virens |
В /etc/network/interfaces пишем что-то вроде:
1 2 3 4 5 6 7 8 | auto wlan0
iface wlan0 inet static
address 10.106.146.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 1
wireless-rate auto
wireless-essid virens |
Пробрасываем форвардинг так
1 | echo 1 > /proc/sys/net/ipv4/ip_forward |
или так
1 | gedit /etc/sysctl.conf |
1 | net.ipv4.ip_forward = 1 |
Теперь делаем NAT так:
1 | iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE |
При этом eth0 это интерфейс, который подключён к Интернету.
Сохраняем настройки NAT:
1 | iptables-save > /etc/iptables.up.rules |
добавляем в /etc/networks/interfaces:
1 | pre-up iptables-restore < /etc/iptables.up.rules |
Применяем настройки
1 | root@alexlinux:~# /etc/init.d/networking restart |
Берем ваше устройство, в моем случае это
1) iPhone
2) netbook EeePC 900
iPhone
Заходим «Настройки» – «WI-FI» и вводим следующие
Адрес: IP 10.106.146.2 (непосредственно адрес устройства)
Маска подсети: 255.255.255.0 (Маска)
Маршрутизатор: 10.106.146.1 (это наш NAT, а именно адрес беспроводной карточки wlan0 на галвном комьютере)
DNS 80.179.52.100: (Адрес DNS должен быть от того интерфейса, который обеспечивает выход в сеть – иначе говоря, содержимое /etc/resolv.conf)
как показано на рисунке


Пингуем
1 2 3 4 5 6 7 8 9 10 | root@alexlinux:~# ping 10.106.146.2 PING 10.106.146.2 (10.106.146.2) 56(84) bytes of data. 64 bytes from 10.106.146.2: icmp_seq=1 ttl=64 time=2.88 ms 64 bytes from 10.106.146.2: icmp_seq=2 ttl=64 time=2.90 ms 64 bytes from 10.106.146.2: icmp_seq=3 ttl=64 time=3.64 ms 64 bytes from 10.106.146.2: icmp_seq=4 ttl=64 time=3.02 ms ^C --- 10.106.146.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 2.883/3.116/3.645/0.315 ms |
Пробуем выйти с телефона в инет, все должно работать.

Laptop EeePC 900
Подключаемся к сети
1 2 3 4 5 6 | root@annalinux:/home/colibris# ifconfig wlan0 down root@annalinux:/home/colibris# iwconfig wlan0 mode ad-hoc root@annalinux:/home/colibris# iwconfig wlan0 channel 1 root@annalinux:/home/colibris# iwconfig wlan0 essid virens root@annalinux:/home/colibris# ifconfig wlan0 10.106.146.3/24 root@annalinux:/home/colibris# ifconfig wlan0 up |
Пингуем раздающий компьютер
1 2 3 4 5 6 7 8 9 | root@annalinux:/home/colibris# ping 10.106.146.1 PING 10.106.146.1 (10.106.146.1) 56(84) bytes of data. 64 bytes from 10.106.146.1: icmp_seq=1 ttl=64 time=19.5 ms 64 bytes from 10.106.146.1: icmp_seq=2 ttl=64 time=2.76 ms 64 bytes from 10.106.146.1: icmp_seq=3 ttl=64 time=3.17 ms ^C --- 10.106.146.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 2.765/8.489/19.527/7.806 ms |
Пингуем iPhone
1 2 3 4 5 6 7 8 9 | root@annalinux:/home/colibris# ping 10.106.146.2 PING 10.106.146.2 (10.106.146.2) 56(84) bytes of data. 64 bytes from 10.106.146.2: icmp_seq=1 ttl=64 time=9.73 ms 64 bytes from 10.106.146.2: icmp_seq=2 ttl=64 time=3.69 ms 64 bytes from 10.106.146.2: icmp_seq=3 ttl=64 time=2.79 ms ^C --- 10.106.146.2 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 2.795/5.408/9.734/3.080 ms |
Оба отвечают и это значит мы уже имеем сеть из 3-х устройств. Два из которых имеют доступ в интернет, это раздающий и iPhone.
Предоставим выход в интернет третьему устройству netbook EeePC 900
DNS – берем адрес из файла /etc/resolve.conf – раздающего компьютера
1 2 3 | booch@alexlinux:~$ sudo nano /etc/resolv.conf nameserver 80.179.52.100 nameserver 80.179.55.100 |
1 | booch@alexlinux:~$sudo /etc/init.d/networking restart |
1 2 3 4 5 6 7 8 | booch@alexlinux:~$ ping mail.ru PING mail.ru (194.67.57.20) 56(84) bytes of data. 64 bytes from mail.ru (194.67.57.20): icmp_seq=1 ttl=109 time=163 ms 64 bytes from mail.ru (194.67.57.20): icmp_seq=2 ttl=109 time=175 ms ^C --- mail.ru ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 163.605/169.306/175.008/5.716 ms |
Теперь доступ в инет в наличии.
Получаю доступ по SSH к первой машине
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | root@annalinux:/home/colibris# ssh booch@10.106.146.1 The authenticity of host '10.106.146.1 (10.106.146.1)' can't be established. RSA key fingerprint is 3b:34:04:ab:18:2f:78:c3:dd:4c:31:47:d8:dc:5b:ba. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.106.146.1' (RSA) to the list of known hosts. booch@10.106.146.1's password: Linux alexlinux 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ 53 packages can be updated. 27 updates are security updates. Last login: Sun May 17 19:54:13 2009 from annalinux.local booch@alexlinux:~$ |
Доступ получен
Отключаемся.
Передаю с EeePC 900 файлик с настройками что-бы запостить на сайте.
1 2 3 | root@annalinux:/home/colibris/Рабочий стол# scp adhoc.txt booch@10.106.146.1:~/ booch@10.106.146.1's password: adhoc 100% 2614 2.6KB/s 00:00 |
Это все.
Получили сеть из 3-ех разных устройств. Но все три устройства имеют прямое сообщение друг с другом и выход в интернет.
Откат настроек
Отключаем форвардинг
1 | echo 0 > /proc/sys/net/ipv4/ip_forward |
Отключаем NAT
1 | iptables -t nat -F |
Отключаем все правила в iptable
1 | iptables -F |
Запускаем Network Manager
1 | /etc/init.d/Network Manager start |
За сим все. Все предыдущие настройки отменены.
Viewed 1301 times by 535 viewers
Комментарии (5)
Other Links to this Post
RSS-лента комментариев к этой записи. TrackBack URI


By Дмитрий, 21 Июль 2009 @ 6:32
А что здесь нуно изменить, чтобы wifi-сеть раздачи получилась с паролем?
By admin, 21 Июль 2009 @ 12:19
Вот пример настройки
1 комп
—————————————
sudo /etc/init.d/NetworkManager stop
—————————————
sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode ad-hoc
sudo iwconfig wlan0 channel 6
sudo iwconfig wlan0 key 1234567890
sudo iwconfig wlan0 essid test
sudo ifconfig wlan0 169.254.34.1
sudo ifconfig wlan0 up
2 комп
—————————————
sudo /etc/init.d/NetworkManager stop
—————————————
sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode ad-hoc
sudo iwconfig wlan0 channel 6
sudo iwconfig wlan0 key 1234567890
sudo iwconfig wlan0 essid test
sudo ifconfig wlan0 169.254.34.2
sudo ifconfig wlan0 up
Проверка работы
ping 169.254.34.1
ping 169.254.34.2
By sf2k10, 24 Декабрь 2009 @ 22:35
привет. спасибо за пост. но!
а как быть если на этапе «iwconfig wlan0 mode Ad-Hoc channel 1 essid sf2k10
выдаёт ошибку: Error for wireless request «Set Mode» (8B06) :
SET failed on device wlan0 ; Device or resource busy.
By admin, 25 Декабрь 2009 @ 16:14
; Device or resource busy. – устройство занято.
сделай:
#ifconfig wlan0 down
#ifdown wlan0
посмотри какой процесс висит на данном устройстве
By maxim, 10 Январь 2010 @ 16:23
спасибо. А как можно сделать публичнцю сеть? ну я у себя в городе захожу в торговый центр, а там компьютер сам автоматически к wi-fi подключается.