先描述客观情况:
家里有两台电脑需要上网(笔记本,带无线支持),一条有线宽带接入线,小区用的是应用层计费网关(上网前需要使用浏览器登录那种),如果>各自独立接入,则需要购买两个网关帐号,为了节省开支考虑共享上网.由于是应用层网关,普通路由器对其支持并不好,而笔记本各自有两个网卡(一个有线一个无线),于是想用一台笔记本做路由带另外一台上网,不仅能节省网关费用,而且减少了无线路由器的支出:)
两台电脑分别为:
ASUS Z99,迅驰技术,Intel 3945 a/b/g无线网卡,Linux(Fedora Core 7)操作系统.
TOSHIBA R200,Atheros 802.11b/g无线网卡,WindowsXP操作系统.
Linux机器常开机,且机器性能更好,所以考虑使用其作为路由,有线口接外网,无线口作为内网口与Windows机器直连.因为Windows下工作较>少且很好配置,下面主要介绍Linux下的工作.
首先是安装无线网卡驱动:
Fedora Core 7默认带了iwl3945支持3945无线网卡,但在我的机器上似乎不能正常工作,所以用ipw3945驱动,关于这两个驱动的信息,可以参考: http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.802.11ag.html
1,在http://ipw3945.sourceforge.net处下载ipw945源码包.我用的是稳定版本1.2.0.解压后make/make install.
2,安装网卡固件,该包在http://bughost.org/ipw3945/ucode/ipw3945-ucode-1.14.2.tgz,解压后将ipw3945.ucode文件拷贝到/lib/firmware目录下.
3,安装主控程序,该包在http://bughost.org/ipw3945/daemon/ipw3945d-1.7.22.tgz,解压后将ipw3945d-1.7.22/x86/ipw3945d拷贝到/sbin下(64位系统拷贝x86_64目录下的ipw3945d).
4,配置网卡,编辑/etc/sysconfig/network-scripts/ifcfg-wlan0如下:
# Intel Corporation PRO/Wireless 3945ABG Network Connection
DEVICE=wlan0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:1b:77:3a:3d:78
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=no
MODE=Ad-hoc
ESSID=z99
CHANNEL=3
这其中最重要的属MODE=Ad-hoc,即选择网卡工作在ad-hoc直连模式,修改完后保存文件并重启系统.
5,重新开机后,手动启用无线网卡,在开始编译的ipw3945-1.2.0目录下执行
# ./load debug=0
即可.这时使用ifconfig察看网络接口,发现多了一个wlan0,如:
wlan0 Link encap:Ethernet HWaddr 00:1B:77:3A:3D:78
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21b:77ff:fe3a:3d78/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:97 overruns:0 frame:0
TX packets:130 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:5817 (5.6 KiB)
Interrupt:16 Base address:0xe000 Memory:fe0ff000-fe0fffff
使用iwconfig查看wlan0状态,如下:
$ iwconfig wlan0
wlan0 IEEE 802.11g ESSID:"z99" Nickname:"z99"
Mode:Ad-Hoc Frequency:2.422 GHz Cell: 02:1B:77:90:66:01
Bit Rate:54 Mb/s Tx-Power:13 dBm
Retry limit:15 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:99 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:3 Missed beacon:0
至此,无线网卡安装完成,后面只需对iptables做简单配置,即可实现路由功能.
1,打开IP FORWARD功能:
# sysctl -w net.ipv4.ip_forward=1
2,配置iptables做NAT:
# iptables -A FORWARD -i wlan0 -j ACCEPT
# iptables -A FORWARD -o wlan0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这时,Linux配置工作完成,可在Windows下查找ESSID为z99的无线网络,找到后手动配置windows无线网卡IP/GATEWAY/DNS地址,如IP地址设为192.168.0.2,网关为192.168.0.1,DNS根据实际情况设置(与Linux主机相同即可).完成后试从windows ping Linux(192.168.0.1)能正常ping通>即可.更多细节以及如何提高易用性可参考ipw3945-1.2.0目录下的INSTALL与README.ipw3945等文件.
最后需要说明的是最好为ad-hoc接入设置key,这能提高安全性,设置命令如下(口令为1234567890):
# iwconfig wlan0 key restricted 1234567890

