操作系统:Debian 8.2。
有两个网卡:eth0 和 wlan0。这是我的 /etc/network/interfaces 文件:
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
auto wlan0
iface wlan0 inet manual
wpa-driver nl80211
wpa-roam /etc/wpa_supplicant.conf
iface default inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
我的目标是当 eth0 和 wlan0 都可以连接时,wlan0 将处于活动状态,而 eth0 将处于非活动状态。
经测试,当eth0和wlan0都可以连接并且都可以使用时,eth0就会激活。
剧本无法实现我的目标;我应该如何重写它?我将 /etc/network/interfaces 重写如下:
auto wlan0
iface wlan0 inet manual
wpa-driver nl80211
wpa-roam /etc/wpa_supplicant.conf
iface default inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
if-up ifconfig eth0 down
ifconfig
当我重新启动电脑后输入时,信息显示在屏幕上。
eth0 Link encap:Ethernet HWaddr e0:3f:49:57:4b:d1
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::e23f:49ff:fe57:4bd1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6068 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3780468 (3.6 MiB) TX bytes:11800 (11.5 KiB)
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:65536 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:700 (700.0 B) TX bytes:700 (700.0 B)
wlan0 Link encap:Ethernet HWaddr 00:21:5d:26:c1:10
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::221:5dff:fe26:c110/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1291 errors:0 dropped:0 overruns:0 frame:0
TX packets:5146 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:81917 (79.9 KiB) TX bytes:992000 (968.7 KiB)
现在我很困惑,哪个IP是我的? 192.168.1.3 还是 192.168.1.101?
哪一个在工作? 192.168.1.3 还是 192.168.1.101?
答案1
pre-up
简短说明:可以将操作添加到接口配置中,因为操作可以在接口使用指令和之前或之后完成if-up
。
在您的配置中添加一条在成功启动eth0
后删除的指令:wlan0
auto wlan0
iface wlan0 inet manual
wpa-driver nl80211
wpa-roam /etc/wpa_supplicant.conf
iface default inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
if-up ifconfig eth0 down
if-down ifconfig eth0 up
我建议ifconfig
不要使用ifdown
as ifconfig
,如果接口未启动,则不会抛出错误,并且是一个更简单的操作(ifdown
是一个脚本)