码迷,mamicode.com
首页 > 其他好文 > 详细

嵌入式专题: 双网卡wifi组建NAT上外网

时间:2014-07-13 17:22:17      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:nat linux ap usb

条件: 开发板上双网卡,其中一个是usb wifi,提供wifi路由功能。另一个网口可以上外网。

目标:普通PC/手机能够连此wifi路由,上外网。

 

1. Wifi AP

USB Wifi部分:勿用多言,此使用Realtek 8188 UC版本,这款Wifi的官方软件自带了驱动程序相应的应用软件。应该就是RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip这个程序包,里面有3个部分,一个是驱动,一个是hostapd,一个是wpa_supplicant。还有一个wireless_tools,可以忽略。

其中,hostapd是用来把一台usbwifi变成AP路由的软件。USB Wifi一般有2种模式,STA(tion)模式,和A(ccess)P(oint)模式。它自带的hostapd是根据hostapd基础上经过定制,可以支持它自家的usb wifi的软件,请放心使用。

Hostapd大致编译过程:

编辑 .config, 直接在前面添加
   CC=arm-none-linux-gnueabi-gcc
   DESTDIR=/opt/x210/hostapd
   CFLAGS += -I$(DESTDIR)/include
   LIBS += -L$(DESTDIR)/lib
其中,
CC 交叉编译器
DESTDIR 编译后make install的位置
CFLAGS, LIBS里加上libnl, openssl的位置

make
make install就差不多了 

hostapd支持的时候需要一个配置文件,请在它提供的配置rtl_hostapd_2G.conf上修改。
           hostapd  -B   rtl_hostapd_2G.conf

 

##### hostapd configuration file ##############################################

interface=wlan1
ctrl_interface=/var/run/hostapd
ssid=rtwap
channel=8

#auth_algs=1
#wep_default_key=0
#wep_key0="12345"
#wep_key1=9797979797

wpa=2
wpa_passphrase=87654321
wpa_psk_file=/opt/x210/hostapd8188/hostapd.wpa_psk

#bridge=br0

##### Wi-Fi Protected Setup (WPS) #############################################

#eap_server=1

# WPS state
# 0 = WPS disabled (default)
# 1 = WPS enabled, not configured
# 2 = WPS enabled, configured
#wps_state=2

uuid=12345678-9abc-def0-1234-56789abcdef0

# Device Name
# User-friendly description of device; up to 32 octets encoded in UTF-8
device_name=RTL8192CU

# Manufacturer
# The manufacturer of the device (up to 64 ASCII characters)
manufacturer=Realtek

# Model Name
# Model of the device (up to 32 ASCII characters)
model_name=RTW_SOFTAP

# Model Number
# Additional device description (up to 32 ASCII characters)
model_number=WLAN_CU

# Serial Number
# Serial number of the device (up to 32 characters)
serial_number=12345

# Primary Device Type
# Used format: <categ>-<OUI>-<subcateg>
# categ = Category as an integer value
# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
#       default WPS OUI
# subcateg = OUI-specific Sub Category as an integer value
# Examples:
#   1-0050F204-1 (Computer / PC)
#   1-0050F204-2 (Computer / Server)
#   5-0050F204-1 (Storage / NAS)
#   6-0050F204-1 (Network Infrastructure / AP)
device_type=6-0050F204-1

# OS Version
# 4-octet operating system version number (hex string)
os_version=01020300

# Config Methods
# List of the supported configuration methods
config_methods=label display push_button keypad


##### default configuration #######################################

driver=rtl871xdrv
beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400

 

2.  NAT上网

NAT是Linux内核支持的技术特性,所以在编译内核的时候要加上NAT支持。大概原理就是允许转发吧,把一个网口的数据直接转到另一个网口。利用iptables命令,加上NAT选项进行操作,当然,如果内核不支持NAT你空有iptables程序也是没有的。

(1) 编译内核

使用FULL NAT支持

bubuko.com,布布扣

(2) 编译iptables

你的开发板上不一定有了iptables包,也许应该自己编译一个。 

请使用V1.4.15
 ./configure --prefix=/opt/x210/iptables/  --host=arm-none-linux-gnueabi
make 
make install

(3)  设置转发

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0  -j MASQUERADE

差不多了,哥要歇了。

嵌入式专题: 双网卡wifi组建NAT上外网,布布扣,bubuko.com

嵌入式专题: 双网卡wifi组建NAT上外网

标签:nat linux ap usb

原文地址:http://blog.csdn.net/iamshaofa/article/details/37727679

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!