S3C2440 RT3070 基于wpa_suppicant+udhcpc实现STA,hostapd+udhcpd+iptables实现softAP

___________________________________

主机操作系统:Centos 6.5

交叉编译器环境:arm-linux-gcc-4.5.4

开发板平台: FL2440

Linux内核版本: 3.0

作者:songyong<handy_skyoutlook.com>

___________________________________

无线网卡:RT3070.

RT3070的工作模式分为 STA(station)模式SoftAP(Access Point)模式两种。

STA模式:笔记本上无线网卡模式,用来连接到无线路由器上上网。通俗点说,就是客户端模式(笔记本)

AP模式:即作为无线路由器,提供其他用户接入 (路由器)

RT3070的驱动移植:由上可知我们的驱动自然也有两种,分别支持无来线网卡工作在STA模式和AP模式。因为linux3.0以上的内核中已经含有了RT3070的通用mac80211驱动框架,所以我首先直接基于此并借助wpa_suppicant来实现WIFI的STA模式。

一、配置Linux内核支持wireless无线上网

[*] Networking support  --->

-*-   Wireless  --->

<*>   cfg80211 - wireless configuration API

[ ]     nl80211 testmode command

[ ]     enable developer warnings

[ ]     cfg80211 regulatory debugging

[*]     enable powersave by default

[ ]     cfg80211 DebugFS entries

[*]     cfg80211 wireless extensions compatibility

[*]   Wireless extensions sysfs files

{*}   Common routines for IEEE802.11 drivers

[ ]   lib80211 debugging messages

<*>   Generic IEEE 802.11 Networking Stack (mac80211)

Default rate control algorithm (Minstrel)  --->

[ ]   Enable mac80211 mesh networking (pre-802.11s) support

[ ]   Export mac80211 internals in DebugFS

[ ]   Select mac80211 debugging features  --->

Device Drivers  --->

Generic Driver Options  --->

(/sbin/hotplug) path to uevent helper

[ ] Maintain a devtmpfs filesystem to mount at /dev

[ ] Select only drivers that don‘t need compile-time external firmware

[ ] Prevent firmware from being built

-*- Userspace firmware loading support

[*]   Include in-kernel firmware blobs in kernel binary

()    External firmware blobs to build into the kernel binary

[ ] Driver Core verbose debug messages

[ ] Managed device resources verbose debug messages

[*] Network device support  --->

[*]   Wireless LAN  --->

<*>   Ralink driver support  --->

< >   Ralink rt2500 (USB) support

< >   Ralink rt2501/rt73 (USB) support

<*>   Ralink rt27xx/rt28xx/rt30xx (USB) support

[ ]     rt2800usb - Include support for rt33xx devices

[ ]     rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)

[ ]     rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)

[ ]     rt2800usb - Include support for unknown (USB) devices

[*]   Ralink debug output

二、无线网络配置工具Wireless tools和Wpa_supplicant以及Openssl移植

==================================================================================================================

目前可以使用wireless-toolswpa_supplicant工具来配置无线网络。但要注意对无线网络的配置是全局性的,而非针对具体的接口。wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络。而wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP

===================================================================================================================

Wireless tools for Linux是一个Linux命令行工具包,用来设置支持Linux
Wireless Extension的无线设备。

1.1、资源下载

wireless_tools.29.tar.gz

1.2、解压

#tar zxvf wireless_tools.29.tar.gz

#cd  wireless_tools.29

1.3、修改Makefile

11 ## Compiler to use (modify this for cross compile).

12 CC = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc

13 ## Other tools you need to modify for cross compile (static lib only).

14 AR = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar

15 RANLIB = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ranlib

1.4编译

#make

1.5、拷贝

将生成的命令工具:iwlistiwconfigiwprivlibiw.so.29
等拷贝到目标板上,路径为:分别把他们放到开发板的/bin/lib目录下,并赋予权限chmod
777 iw* libiw.so.29

2.Openssl工具和wpa_supplicant工具驱动移植

======================================================================================================

现在的wifi网络肯定都是加密的。而大多都是WPA加密,所以wpa_supplicant对我们来说除了配置无线网络的需求之外,它更主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的。而要加密就要使用到相关的加密算法,常用的密钥等,所以我们要先移植Openssl工具再移植wpa-supplicant。因为后面编译wpa_supplicant要依赖openssl中的lib和include

===================================================================================================================

2.1、下载openssl驱动源码

openssl-0.9.8i.tar.gz

2.1.1、解压后

[[email protected] openssl-0.9.8i]$
mkdir install

2.1.2、修改Makefile

29 INSTALLTOP=/home/pikaqiu/tools/openssl-0.9.8i/install//指定ssl的安装目录

32 OPENSSLDIR=/home/pikaqiu/tools/openssl-0.9.8i/install

62 CC= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc

69 AR= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar $(ARFLAGS) r

70 RANLIB= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ranlib

2.1.3、编译

# sudo make & make install 并拷贝libcrypto.a  libssl.a到开发板的/lib

2.2、下载wpa_supplicant源码

wpa-supplicant-0.7.3.tar.gz

2.2.1、解压后修改.config配置文件

[[email protected] wpa_supplicant-0.7.3]$ls

COPYING ;patches ;README ;src ;wpa_supplicant

[[email protected] wpa_supplicant-0.7.3]$ cd wpa_supplicant/

[[email protected] wpa_supplicant]$ cp defconfig .config

[[email protected] wpa_supplicant]$ vim .config

修改如下:

27 #CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc

28 CC= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc -L/home/pikaqiu/tools/openssl-0.9.8i/install/lib

29 #CFLAGS += -Os

30 CFLAGS += -I/home/pikaqiu/tools/openssl-0.9.8i/install/include

31 #CPPFLAGS += -I../src/include -I../../src/router/openssl/include

32 #LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl

33 LIBS += -L/home/pikaqiu/tools/openssl-0.9.8i/install/lib

2.2.2、编译

[[email protected] wpa_supplicant]$ make


然后将wpa_cliwpa_supplicantwpa_passphrase拷贝到开发板的/bin目录下

三、启动RT3070无线模块连接路由器

3.1配置无线网络

===========================================================================================

上面我们说过,我们既可以通过wireless tools工具提供的命令iwconfig等来配置无线网络,也可以通过wpa_supplicant来配置.我这里采用wpa_supplicant来配置。

===========================================================================================

3.1.1 使用wpa_passphrase创建wpa_supplicant的配置文件

以下命令均在开发板上进行操作:

/apps/wireless/Sta #
wpa_passphrase CMCC 2b2072b207 >> wpa_supplicant.conf

/apps/wireless/Sta # cat wpa_supplicant.conf

修改wpa_supplicant.conf:

ctrl_interface=/var/run/wpa_supplicant

network={

ssid="Router_LingYun"  //已知要连接的路由器的名字

key_mgmt=WPA-PSK       //采用WPA-PSK加密模式

proto=WPA2

pairwise=TKIP CCMP

group=TKIP CCMP

psk="lingyun-emb"
//路由器密码

#psk=20a17fe2e0482c0db4e4dcf6c4494cebbd88ae4f166015115ca83ce9022b8cd2

}

pairwise
=
TKIP CCMP和group =TKIP CCMP表示自动匹配加密算法CCMP或TKIP;

3.1.2 使能RT3070无线网卡模块

>: ifconfig wlan0 up

这时候我遇到了一个错误:

下载:rt2870.bin

解决办法:我当时是到内核网站git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git把各种固件都下了。其实将下载好的固件
RT2870.bin
并放入/lib文件下新创建的firmware目录中就可以解决。

再次使能

3.1.3 启动RT3070并配置RT3070无线网卡参数

我们依旧利用wpa_supplicant工具来配置

在开发板执行:#wpa_supplicant -B -d -Dwext -iwlan0 -c/apps/wireless/Sta/wpa_supplicant.conf 

其中:

-d :增加调试信息

-B:后台守护进程

-c:指定配置文件

-Dwext:wext为驱动名称

-iwlan0 :wlan0为网络接口名称

配置无线网卡IP和子网掩码

>:ifconfig wlan0 192.168.1.33 broadcast 192.168.1.1 netmask 255.255.255.0 up

成功连上如上目标无线网络

3.1.4 测试

先关闭eth0

如上就是利用wpa_supplicant配置无线网卡,并实现ping通无线路由器。但可能是因为没有设置网关和DNS地址解析,还ping不通外网。

===================================================================================================

而我想要的是板子自己去动态随机获取IP联网,这样可以不用给wlan0指定IP。接下我们来完成这个功能。

===================================================================================================

接下来我们在busybox里面make menuconfig配置好udhcp server(udhcpd)udhcp
client(udhcpc)
再编译。

然后从busybox的examples/udhcp/copysimple.script文件到开发板/usr/share/udhcpc/下(busybox里面默认的目录文件是/usr/share/udhcpc/default.script),并重命名为default.script.

在上面启动无线网卡后我们便可以直接在开发板上面执行命令动态获取IP。

如上,利用wpa_supplicant和udhcpc实现动态获取wifi上网的功能就完成了。这里有完整的一个流程,自写的简单shell自启脚本我就不放上来了。有需要的可以视各自情况自行编写。

————————————————————————————————————

项目二:基于hostapd+udhcpd+iptables nat实现softAP即路由器上网功能

————————————————————————————————————

一、配置内核支持无线网卡softAP模式:

[*] Networking support  --->

Networking option  --->

<*> Packet socket

<*> Unix domain sockets

< > PF_KEY sockets

[*] TCP/IP networking

[ ]   IP: advanced router

[*]   IP: kernel level autoconfiguration

[*]     IP: DHCP support

[*]     IP: BOOTP support

[*]     IP: RARP support

< >   IP: tunneling

< >   IP: GRE demultiplexer

[*]   IP: multicast routing

[*] Network packet filtering framework (Netfilter) --->
//主要就是Netfileter里面的配置

- -- Network packet filtering framework (Netfilter)

[ ]   Network packet filtering debugging

[*]   Advanced netfilter configuration

Core Netfilter Configuration  --->
//添加支持,除了以下选项外全选。

< > Transparent proxying support (EXPERIMENTAL)

< >   set target and match support

< >   CHECKSUM target support

< >   "CT" target support

< >   "DSCP" and "TOS" target support

< >   "NOTRACK" target support

< >   "TRACE" target support

<*>   IP set support  --->

--- IP set support

(256) Maximum number of IP sets

<*>   bitmap:ip set support

<*>   bitmap:ip,mac set support

<*>   bitmap:port set support

<*>   list:set set support

<*>   IP virtual server support  --->//除了以下选项外全选。

--- IP virtual server support

[ ]   IP virtual server debugging

[ ]   SCTP load balancing support

< >   FTP protocol helper

< >   SIP persistence engine 、

IP: Netfilter Configuration  --->//全选

如果没有build in RF选项,在使用hostapd命令时会出错

二、配置无线网络的工具移植

1.1.移植Openssl-0.9.8e

Hostapd依赖于openssl与libnl这两个库。所以首先要移植openssl与libnl,openssl我们已经移植过了,但我担心版本兼容性的问题,本着学习的心态便又移植了网上普遍使用的openssl-0.9.8e。

下载:openssl-0.9.8e

解压之后直接修改Makefile:

mkdir install

sudo make && make install

1.2.移植libnl

下载:libnl-1.1.tar.gz

解压后:

# mkdir install

./configure --prefix=/home/pikaqiu/tools/WIFI/libnl-1.1/install(指定安装路径) --host=arm-linux 

#  make CC= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc

#sudo make install 

install下的lib文件夹中的libnl.so.1拷贝到开发板/lib目录下。

1.3.移植Hostapd

下载:hostapd-1.0.tar.gz

# cp defconfig .config

#vim .config

#vim Makefile

分别添加openssllibnl的头文件和库路径

# make CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc

# sudo make install

将生成可执行命令hostapd和配置文件hostapd.conf。

hostapd主要就在于配置文件,以下是我的基本配置:

interface=wlan0    //网络接口名称

driver=nl80211 //默认使用nl80211无线驱动

ssid=My_wifi //热点名称

channel=3 //设定无线频道

hw_mode=g//使用80211g协议标准

ignore_broadcast_ssid=0//

auth_algs=1//指定OSA认证算法

wpa=3//指定WPA/WPA2类型

wpa_passphrase=11111111//指定认证密钥

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP//启用了WPA或WPA2则需要指定wpa_pairwise或rsn_pairwise。

rsn_pairwise=CCMP

==============================================================================================================

无线局域网标准 IEEE 802.11协议

*IEEE 802.11, 1997年,原始标准(2Mbit/s,工作在2.4GHz)。

*IEEE 802.11a,1999年,物理层补充(54Mbit/s,工作在5GHz)。

*IEEE 802.11b,1999年,物理层补充(11Mbit/s工作在2.4GHz)。

*IEEE 802.11g,2003年,物理层补充(54Mbit/s,工作在2.4GHz)。

使用最多的应该是802.11n标准,工作在2.4GHz频段,可达600Mbps(理论值)

==============================================================================================================

在板子上直接执行hostapd -B hostapd.conf 即可;如果编译过程出现错误,请自行检查你的libnl库和openssl库是否是使用GCC交叉编译后可以到ARM板上跑的库。

若出现读取random随机数错误,可采用符号链接的方法解决:

# mv /dev/random /dev/random.org

# ln -s /dev/urandom /dev/random                  

==================================================================================================

Linux中的随机数可以从两个特殊的文件中产生,一个是/dev/urandom.另外一个是/dev/random。上述两种方式都可以产生随机数,dev/urandom  和dev/random都是产生用不为空的随机字符流,但区别是:

/dev/random设备会封锁,直到系统产生的随机字符流已经充分够用,所以耗用时间较长。

/dev/urandom设备不会封锁,数据的随机程度不高,但是一般情况已经够用。更详细的文章链接:random和urandom

==================================================================================================

1.4.配置udhcpd

修改/opt/busybox-1.20.2/examples/udhcp/udhcpd.conf然后拷贝到开发板/etc目录下

因为是实现最基础的功能,所以我们只要简单的修改地址池、默认网关以及dns即可,以下是我的配置:

因为udhcpdudhcpc一样都是busybox里面自带的命令。所以我直接把配置文件放到开发板上再执行命令

#udhcpd  /etc/udhcpd.conf 就可以启动dhcp服务器了。Udhcpd在执行的时候可能会提示没有一个叫做udhcpd.release的租赁文件,这个只要在相应的文件夹下创建即可。执行下面两条命令:

#mkdir -p /var/lib/misc/

#touch /var/lib/misc/udhcpd.leases

PS:在做的时候我参考过网上udhcpd.conf的那些配置,试了两次行不通,便直接使用原始配置文件了。我觉得主要是因为我们使用的udhcpd.conf是busybox内的,而网上的是给pc上虚拟机linux系统使用的。不尽相同,但是感兴趣有时间的人还是可以多试试。

1.5.iptables移植

=========================================================================================

                                                                           iptables简介

iptables是基于内核的防火墙,功能非常强大,iptables内置了filternatmangle三张表。

filter负责过滤数据包,包括的规则链有,input,outputforward;

nat则涉及到网络地址转换,包括的规则链有,preroutingpostroutingoutput

mangle表则主要应用在修改数据包内容上,用来做流量整形的,默认的规则链有:INPUT,OUTPUT,NAT,POSTROUTING,PREROUTING;

input匹配目的IP是本机的数据包,forward匹配流经本机的数据包,prerouting用来修改目的地址用来做DNAT,postrouting用来修改源地址用来做SNAT。

=========================================================================================

下载:iptables-1.4.12.tar.gz

解压之后进入目录

[[email protected] iptables-1.4.12]$mkdir install

[[email protected] iptables-1.4.12]$
./configure --host=arm-linux --enable-static --disable-shared --prefix=/home/pikaqiu/tools/iptables-1.4.12/install --disable-ipv6 --disable-largefile

[[email protected] iptables-1.4.12]$make CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc CFALGS=--static LDFLAGS=-static 

[[email protected] iptables-1.4.12]$sudo make install

===========================================================================================

再理解一次CFLAGS和LDFLAGS:一般我们通过CFLAGS的 -I 选项告诉编译器所依赖的第三方的库的头文件在哪里,通过LDFLAGS的-L选项告诉链接器这些库的库文件在哪里;还有LIBS是告诉链接器要链接哪些库文件。简单地说,LDFLAGS是告诉链接器从哪里寻找库文件,而LIBS是告诉链接器要链接哪些库文件。有时候LIBS指定了却找不到库时可以试试LDFLAGS。

===========================================================================================

#cd /install/sbin

#file *

#sudo /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-strip xtables-multi strip减轻点重量

此时将/install/lib文件夹和xtables-multi打包放到开发板/lib/bin目录下,赋予权限后将xtables-multi改名为iptables

有了iptables命令工具之后我们便要来配置nat转发表,如下:

# /apps/wireless/softAP/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE// 将局域网内地址通过eth0接口伪装后转发出去

# /apps/wireless/softAP/iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISH -j ACCEPT //对于要转发的数据包,

# /apps/wireless/softAP/iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT  // 配置数据包转发时候的接口

#echo “1” >/proc/sys/net/ipv4/ip_forward  // 置1开启路由转发

=====================================================================================================

关于iptables的nat参考:如何用Iptables实现Linux下强大的NAT功能

MASQUERADE是SNAT网络地址转换的一种,SNAT的使用方法,即可以NAT成一个地址,也可以NAT成多个地址,但是,对于SNAT,不管是几个地址,必须明确的指定destination的ip.如果eth0是动态拨号获取IP,那就需要MASQUERADE来实现SNAT。而我的eth0是接到路由器VAN上的,虽然路由器是拨号上网,但是我的eth0是自己指定的IP,每次都不会变,所以应该也可以使用SNAT的方式来配置iptables。不过我觉得MASQUERADE更方便,这就当为3G动态拨号直连做预热吧。具体的可以去 iptables的SNAT和MASQUERADE 这个链接里面详细了解。

=====================================================================================================

由开头可知我GCC编译器先是静态编译生成静态库文件最后静态链接生成的可执行程序。起初我是放任它编译动态链接生成可执行文件,然后直接把install下的/lib和/extensive里的.so全部拷贝到开发板上,再全放进文件系统的/lib和/bin目录下。这样提示我出错:

>: ./apps/wireless/ap/softAP/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

iptables v1.4.12: Couldn‘t load target `MASQUERADE‘:No such file or directory

而报错的MASQUERADE库我的lib下是存在的,在反复检查内核配置MASQUERADE相关选项后我怀疑是有些相互依赖的库没有被拷贝到开发板上。因为我一时找不到到底是哪些库,于是直接在make时指定环境变量静态链接。问题解决。

所有的准备就绪后,我们一定要记得先实现eth0能上网。我就是在这里磨了2天,还以为是ipables的nat转发命令的问题。连上路由器如果eth0都上不了网,那还谈个P的转发。eth0如何配置上网?再给网关和DNS就可以了。

#route add default gw 192.168.1.1  //设置默认网关为192.168.1.1 ;只有eth0联网,这个缺省就行。

至于DNS,linux系统并没有直接配置DNS的命令行。网上都说在/etc/resolv.conf中修改,我们回顾STA模式DHCPC自动分配IP的时候打印信息也有个recreating /etc/resolv.conf因为我在做根文件系统的时候并没有在/etc目录下创建resolv.conf,于是我又到文件系统目录树里面创建了一个。在新建的resolv.conf里面添加nameserver:114.114.114.114//DNS 

然后连上的wifi热点就可以上网了。至此使用hostapd+udhcpd+iptables等工具基于内核mac80211驱动框架就实现了RT3070无线网卡的softAP!!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-10 23:28:02

S3C2440 RT3070 基于wpa_suppicant+udhcpc实现STA,hostapd+udhcpd+iptables实现softAP的相关文章

让无线网卡同时工作在 AP 和 STA 模式

这个帖子里的方法有点过时了,不推荐继续使用. 有的时候会碰到这么一种情况,带着电脑和手机出去蹭网,无奈只有一个账号,手机上了电脑就没得用了,电脑用了手机就上不了网.如果能用电脑连接 Wifi 然后再开热点给手机用该多好.一般情况下,每台笔记本里面只有一张无线网卡,按照常规的思路要一边作为 STA 连接在别的热点上,一边又要做 AP 给手机用的话似乎就非得再买一张 USB 的无线网卡了.不过现在有一种方法可以让一张无线网卡同时处于 STA 和 AP 的状态,一边作为客户端连在别的 AP 上,一边又

Linux下用hostapd架无线AP

Published by 荒野无灯 on 2011-10-08 00:56:02 under 服务器/MySQL Tags: 路由,无线AP,hostapd 34452 views 本文将介绍在linux下面用笔记本无线网卡架设无线AP. 在win7下面用“承载网络”让爪机上wifi真是爽YY啊. 其实linux下面也是可以的,不过得看运气了.正如windows7下面要求你的无线网卡驱动必须支持“承载网“一样. 首先,查看网卡芯片信息: 对于pci网卡: 1 lspci 我的是: 1 03:00

树莓派学习笔记——Wifi AP热点模式 使用RT5370

0.前言 本文详细说明为树莓派增加Wifi AP热点功能的具体步骤.配置完成之后,树莓派将增加一个Wifi热点功能,使用笔记本或手机便可连接树莓派,树莓派具有了AP热点功能,可更一步扩展树莓派相关的WEB功能,通过连接树莓派提供的热点,登录树莓派提供的WEB服务,便可获得树莓派所监控的相关信息. 配置的步骤较多,请保持耐心. [配置说明] 1.树莓派热点名称(SSID)为Raspberry_AP,热点密码为12345678,加密方式为WPA2. 2.树莓派无线网口的IP地址为192.168.0.

Iptables用法

[[email protected] ~]# iptables -F #清除默认表filter中所有链的规则 [[email protected] ~]# iptables -X #清除自定义链的规则 [[email protected] ~]# iptables -L -nv --line-numbers #编号显示链规则 [[email protected] ~]# iptables -N #新建一条自定义的链 [[email protected] ~]# iptables -A INPUT

Varnish基础配置实现动静分离web站点

由于一个web站点的程序的访问具有局部性特征:时间上的局部性:一个数据被访问过之后,可能很快会被再次访问到:空间局部性:一个数据被访问时,其周边的数据也有可能被访问到;varnish可将这部分数据缓存下来.缓存的数据存在被访问较频繁的数据可以称其为热区:缓存同样存在局部性:时效性:如果缓存空间耗尽:则采用LRU,最近最少使用算法:将过期的缓存清理掉 varnish的基本工作原理: Varnish通过类似于HTPP反向代理的方式将可以用来缓存的数据缓存下来直接响应给客户端的缓存数据,如果缓存中没有

20条IPTables防火墙规则用法!

导读 管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受攻击.很多用户把 Linux 中的 IPTables 当成一个防火墙,从严格意见上来说 IPTables 只是能够帮助管理员定义各种规则并与 Linux Kernel 进行沟通的一个命令行工具.它只是帮助管理员配置网络流量的传入.传出规则列表,具体的实现其实是在 Linux 内核当中. IPTables 包括一组内置和由用户定义规则的「链」,管理员可以在「链」上附加

wpa_supplicant 与iwpriv工具配置WIFI的命令

=====================================================hostapd 配置命令=====================================================/system/bin/hostapd -e/data/misc/wifi/entropy.bin /data/misc/wifi/hostapd.conf & Android:ndc softap set wlan0 henryking broadcast 6

[Kubernetes]Kubernetes的网络模型

Kubernetes的网络模型从内至外由四个部分组成: Pod内部容器所在的网络 Pod所在的网络 Pod和Service之间通信的网络 外界与Service之间通信的网络 建议在阅读本文之前先了解Docker的网络模型.可以参看作者的前两篇文章[Kubernetes]Docker的网络模型和[Kubernetes]Docker的overlay网络模型. 1. Pod内部容器所在的网络和Pod所在的网络 Kubernetes使用了一种"IP-per-pod"网络模型:为每一个Pod分配

iptables 防火墙实现

防火墙是什么?: 我们要讲防火墙,首先要了解什么是防火墙,其实防火墙就是设定一些规则来管制过滤进入到我们网 络内的主机IP数据包的一种机制!它可以限制你的文件传输服务 (FTP)可以限制主机可以通过的服务:还可以限制主机对外联等等...防火墙分为硬件防火墙和软件防火墙.我们下边说的为软件防火墙. 我们要知道,防火墙的规则是建立在内核上的,内核有提供Netfilter包过滤机制,netfilter的机制内核自建的,那我们又该如何操纵它呢?Linux6.x上为我们提供了iptables这个工具来实现