WhereAmI - ifPlugd - WIFI(WEP / WPA)
版本1.0
作者:Clifford W. Hansen <iam [at] nighthawk [dot] co [dot] za>
本教程介绍如何根据Debian Etch服务器上的位置配置自动网络设置。 Whereami是一个程序,可以在当前界面上运行检查,以检查您所在的网络。 ifplugd是一个守护进程,用于检查网卡上的链接。 它可以上下链接运行程序。
本文档不附带任何形式的保证! 我不会保证这将为您工作!
1初步说明
我正在使用Debian 4.0r1,因此下面的命令将是一个基于Debian的系统。 在本教程中,我使用了网络example.com(work)和flat.lan(home)。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。 我用sudo运行所有命令。 如果你不使用sudo,那么你将需要成为root。
您应该将所有的接口设置和工作,这包括无线。
2安装应用程序
打开终端并运行:
sudo apt-get install ifplugd whereami wireless-tools fping resolvconf
你会被问到几个问题:
- 要由ifplugd观看的静态接口:< - eth0
- 所有其他我离开的默认。
3配置
ifplugd
ifplugd是在安装包后设置的,没有什么需要做的。
我在哪里
Whereami有两个重要的配置文件: /etc/whereami/detect.conf
和/etc/whereami/whereami.conf
。
首先设置位置检测: /etc/whereami/detect.conf
:
# It is a good idea to default to somewhere... default undocked # Test for the presence of an ethernet connection plugged into eth0 testmii eth0 lan # Get a list of the access points that we can see testap wlan0,scan wlan if lan # If the testmii at the top was successful set INTERFACE eth0 testdhcp '*.*.*.*' dhcp elif wlan # If we found an accesspoint set INTERFACE wlan0 testap "flat ap" flat testap "example ap" example else always at undocked fi if dhcp testdhcp 192.168.1.* flat testdhcp 10.0.0.* example fi
首先,这样做是测试eth0
上的网络链接,并将位置设置为lan(如果电缆已插入)。 然后我们检查一个可用的接入点,并将位置设置为wlan(如果有接入点)。
如果我们在lan,然后测试dhcp,然后测试,看看我们的IP是否在一个公认的范围(平/示例)。
如果我们找到一个公认的接入点,然后根据发现的位置设置位置。
现在已经设置了检测,我们可以继续进行设置。 这是在/etc/whereami/whereami.conf中
。
## This only happens if we are not at a WLAN !wlan ifconfig wlan0 down !wlan resolvconf -d wlan0 ## This only happens if we are not at a LAN !lan ifconfig eth1 down !lan resolvconf -d eth1 ## Setup wlan connections !wlan if /bin/false; then =any iwconfig wlan0 mode managed =any ifconfig wlan0 up ## example =example iwconfig wlan0 essid "example ap" =example iwconfig wlan0 key <wep key> ## flat =flat iwpriv wlan0 set AuthMode=WPAPSK =flat iwpriv wlan0 set EncrypType=TKIP =flat iwconfig wlan0 essid "flat" =flat iwpriv wlan0 set WPAPSK=<wpa key> =flat iwconfig wlan0 essid "flat" ## Get IP from dhcp =any dhclient wlan0 !wlan fi
我们做的第一件事是减少未被使用的接口。
然后我们检查是否使用wlan,然后设置无线连接。
例如使用WEP,所以您需要用实际的键替换<wep key>
。
平面使用WPA,所以要获得您将运行的WPA密钥:
wpa_passphrase flat mywpakey
这将给你:
network={
ssid="flat"
#psk="mywpakey"
psk=cb41898729acc21d357d58d3bd5caf7fdda31a2d73ccd7a918ebd9407e4d207d
}
然后用psk
的值替换<wpa key>
。
假设一切都设置正确,运行:
sudo /usr/sbin/whereami
并且您的网络应该配置。
您可以通过以下方式测试:
sudo /sbin/ifconfig
你应该看到类似的东西:
eth0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:209 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
wlan0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::214:85ff:feda:716d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:225
4。结论
这不是唯一的方法,我也知道有一个新的应用程序( 网络管理器
)基本上为你做这个,但不幸的是我的无线网卡(RaLink)驱动程序与网络管理器
不兼容。
同时在写这篇文章时,我看到了使用这些工具的其他几种方法,但这是最简单的。
我希望这有助于某人在那里,因为我知道这需要我一段时间才能弄清楚,谷歌是你的朋友,但有时它会给你错误的东西(或至少不完整)