RPI-Wireless-Hotspot

http://elinux.org/RPI-Wireless-Hotspot

What does it do?

This project configures your Raspberry Pi to connect to the Internet through ethernet, and share that connection over WiFi.

What do you need?

  • A Raspberry Pi, model B.
  • A boot SD card for the Raspberry Pi.
  • A USB WiFi device that supports "Access Point" mode.
  • An Ethernet cable to connect to the local network.

Please make sure you Wifi dongle supports Access Point or Master Mode

  • Edimax does NOT support Access Point (UPDATE 7/9/13: Edimax DOES support Access point, tutorial here: Raspberry Hotspot with Edimax USB WiFi Adapter)
  • AirLink 101 / AWL5088 does NOT support Access Point
  • Panda Ultra, Mid-Range and 300Mbps Wireless N adapters support Access Point
  • Ralink RT5370 and RT5372 DO support Access Point

What skill level is required?

This project does not require any coding or compilation. Very basic Linux and networking knowledge would be useful, but not essential.

To edit a configuration file (for example /etc/udhcpd.conf) use the following command

sudo nano /etc/udhcpd.conf

You will find yourself in a simple editor. Move around using the arrow keys. To save the file press Ctrl-o. To exit press Ctrl-x.

How does it work?

The Raspberry Pi is configured as a WiFi Hotspot, just like you would see in an internet cafe. It allows you to connect to the internet over WiFi using the Raspberry Pi as the bridge to the internet. The basic steps are

  • Enable a WiFi Access Point and broadcast on the channel of your choice
  • Assign dynamic IP addresses to any device that connects to WiFi network
  • Join the WiFi and Ethernet networks together by using Network Address Translation

Instructions

The following steps were performed on Raspbian but should be much the same on any Debian-based distro.

1. Install the necessary software.

sudo apt-get install hostapd udhcpd

2. Configure DHCP. Edit the file /etc/udhcpd.conf and configure it like this:

start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices.
end 192.168.42.20
interface wlan0 # The device uDHCP listens on.
remaining yes
opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use.
opt subnet 255.255.255.0
opt router 192.168.42.1 # The Pi‘s IP address on wlan0 which we will set up shortly.
opt lease 864000 # 10 day DHCP lease time in seconds

Edit the file /etc/default/udhcpd and change the line:

DHCPD_ENABLED="no"

to

#DHCPD_ENABLED="no"

You will need to give the Pi a static IP address with the following command:

sudo ifconfig wlan0 192.168.42.1

To set this up automatically on boot, edit the file /etc/network/interfaces and replace the line "iface wlan0 inet dhcp" to:

iface wlan0 inet static
  address 192.168.42.1
  netmask 255.255.255.0

If the line "iface wlan0 inet dhcp" is not present, add the above lines to the bottom of the file.

Change the lines (they probably won‘t all be next to each other):

allow-hotplug wlan0
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet manual

to:

#allow-hotplug wlan0
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp

3. Configure HostAPD. You can create an open network, or a WPA-secured network. A secure network is recommended to prevent unauthorized use and tampering, but you can also create an open network. To create a WPA-secured network, edit the file /etc/hostapd/hostapd.conf (create it if it doesn‘t exist) and add the following lines:

interface=wlan0
driver=nl80211
ssid=My_AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=My_Passphrase
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Change ssid=, channel=, and wpa_passphrase= to values of your choice. SSID is the hotspot‘s name which is broadcast to other devices, channel is what frequency the hotspot will run on, wpa_passphrase is the password for the wireless network. For many, many more options see the file /usr/share/doc/hostapd/examples/hostapd.conf.gz

If you would like to create an open network, put the following text into /etc/hostapd/hostapd.conf:

interface=wlan0
ssid=My_AP
hw_mode=g
channel=6
auth_algs=1
wmm_enabled=0

Change ssid= and channel= to values of your choice. Note that anyone will be able to connect to your network, which is generally not a good idea. Also, some regions will hold an access point‘s owner responsible for any traffic that passes though an open wireless network, regardless of who actually caused that traffic.

Edit the file /etc/default/hostapd and change the line:

#DAEMON_CONF=""

to:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

4. Configure NAT (Network Address Translation). NAT is a technique that allows several devices to use a single connection to the internet. Linux supports NAT using Netfilter (also known as iptables) and is fairly easy to set up. First, enable IP forwarding in the kernel:

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

To set this up automatically on boot, edit the file /etc/sysctl.conf and add the following line to the bottom of the file:

net.ipv4.ip_forward=1

Second, to enable NAT in the kernel, run the following commands:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

These instructions don‘t give a good solution for rerouting https and for URLs referring to a page inside a domain, like www.nu.nl/38274.htm. The user will see a 404 error. Your Pi is now NAT-ing. To make this permanent so you don‘t have to run the commands after each reboot, run the following command:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

Now edit the file /etc/network/interfaces and add the following line to the bottom of the file:

up iptables-restore < /etc/iptables.ipv4.nat

5. Fire it up! Run the following commands to start the access point:

sudo service hostapd start
sudo service udhcpd start

Your Pi should now be hosting a wireless hotspot. To get the hotspot to start on boot, run these additional commands:

sudo update-rc.d hostapd enable
sudo update-rc.d udhcpd enable

At the completion of these instructions, your Pi should be providing a wireless network and allowing other devices to connect to the Internet. From my experience, the Pi makes a decent access point, although with cheaper WiFi dongles range will be fairly limited. I haven‘t stress tested this setup, but it seems to work fairly well and is handy when a "real" access point isn‘t available. I wrote most of the instructions from memory, if you find any errors/typos I‘ll correct them.

This tutorial originally was a post on the Raspberry Pi forum here, you can reply to that topic if you have issues. Thanks go to all the people who tested my tutorial on the forum, and to poing who contributed the WPA HostAPD config.

Please make sure you Wifi dongle supports Access Point or Master Mode

    • Edimax doesn‘t support Access Point (UPDATE 7/9/13: Edimax DOES support Access point, tutorial here: Raspberry Hotspot with Edimax USB WiFi Adapter)
    • AirLink 101 / AWL5088 doesn‘t support Access Point
    • Panda Ultra, Mid-Range and 300Mbps Wireless N Adapters support Access Point
    • Ralink RT5370 supports Access Point
时间: 2024-10-06 06:11:18

RPI-Wireless-Hotspot的相关文章

Compile wireless driver on Lenovo W520 with Debian

First step: I have to make the wireless ethernet card start to work for my Lenovo W520 with Debian installed. Initially, I installed the package firmware-iwlwifi, which contains the firmware for Intel Wireless 1000 inside Lenovo W520. However, only w

中国寒龙 黑阔教你怎么全自动无线入侵热点,黑客全自动WIFI钓鱼,大规模批量无线热点钓鱼 - 欢迎订阅

本文介绍一种工作的所有功能于一身的自动无线电攻击,没有任何互联网连接或其它外部连接或影响执行上的客户端类型的MITM攻击. 在外行人而言; 这种便携式电池供电设备能够自动吸引的无线设备连接到它,是因为iPhone手机/ ipad公司,机器人和其他手机或笔记本电脑和个人电脑.大多数设备将自动连接到它无需用户甚至没有意识到.该设备将提供一个假的网络中运行的假电子邮件和Web服务器,并使用一些网络挂羊头卖狗肉,将捕获任何试图连接的主机名,用户名和密码,并记录它,随着GPS坐标,其中的细节被抓获的.该设

Ubuntu14.04 设置wifi热点

查了一下资料主要有两种方法: 第一种:network manager设置 这种方法配置比较复杂.并且不能给Android手机和iPhone共享.果断放弃(其实我是尝试过的,真的没有用). 第二种:使用ap-hotspot,亲测可用 这种方法配置简单,用起来也方便. 第一步:安装ap-hotspot $ sudo add-apt-repository ppa:nilarimogard/webupd8 $ sudo apt-get update $ sudo apt-get install ap-h

[转载]OpenWRT使用wifidog实现强制认证的WIFI热点 | 半个橙子

首先安装wifidog到OpenWRT的路由器: opkg update opkg install wifidog wifidog依赖下面这些模块: iptables-mod-extra iptables-mod-ipopt kmod-ipt-nat iptables-mod-nat-extra libpthread 由于trunk的固件更新会比较频繁,会导致直接opkg install wifidog安装不了,如果你凑巧又没有备份与固件对应的Packages的话,就需要到http://down

openwrt安装nodogsplash

安装nodogsplash它是基于openwrt上的一个插件,用于实现用户登录验证的,具体见: https://github.com/nodogsplash/nodogsplash 这个名称很生动,很有趣,称为nodog.其实他是针对openwrt上的另一款类似插件:wifi dog的,那个配置起来比较复杂,需要自己部署验证服务器,不适合我使用. 这个没有看门狗(no dog)的很适合我! 安装插件很简单,telnet连上去后,执行命令: opkg updateopkg install nodo

OpenWRT使用wifidog实现强制认证的WIFI热点

首先安装wifidog到OpenWRT的路由器: opkg update opkg install wifidog wifidog依赖下面这些模块: iptables-mod-extra iptables-mod-ipopt kmod-ipt-nat iptables-mod-nat-extra libpthread 由于trunk的固件更新会比较频繁,会导致直接opkg install wifidog安装不了,如果你凑巧又没有备份与固件对应的Packages的话,就需要到http://down

Linux共享wifi给Android手机

亲测可行,测试系统:Deepin2014,Ubuntu也一样.步骤非常简单. 1.卸载hostapd,sudo apt-get remove hostapd(如果原来装过的话卸载,因为某些版本不支持) 2.安装指定版本的hostapd,下载地址http://pan.baidu.com/s/1kT0xWmN,下载后安装 3.安装信息通知sudo apt-get install libnotify-bin 4.安装ap-hotspot $sudo add-apt-repository ppa:nil

wifidog认证实现OpenWRT强制认证的WIFI热点

首先安装wifidog到OpenWRT的路由器: opkg update opkg install wifidog wifidog依赖下面这些模块: iptables-mod-extra iptables-mod-ipopt kmod-ipt-nat iptables-mod-nat-extra libpthread 由于trunk的固件更新会比较频繁,会导致直接opkg install wifidog安装不了,如果你凑巧又没有备份与固件对应的Packages的话,就需要到http://down

nodogsplash安装笔记

安装可以参考 https://wiki.openwrt.org/doc/howto/wireless.hotspot.nodogsplash 安装注意事项: 1. 如果使用Chaos 15.05系统时,最好能安装nodogsplash 0.9_beta9.9.8-2,最新版本没有研究好,据说redirectURL时会出现问题 2. 可以保留firewall,不需要另外使用iptables 3. 主要配置文件nodogsplash.conf里面GatewayInterface 应该为开放给客户使用