我有一个运行Raspbian Wheezy的Raspberry Pi。 /etc/network/interfaces
设置为在启动时为Pi提供静态IP。但是,当连接断开时,Pi不会自动重新建立连接。我有一个重启wlan0的脚本。但是,Raspberry Pi具有与提供给它的静态IP不同的IP地址。这打破了我从网络外部访问Pi所做的端口转发。
看起来我的界面设置得不是很正确。可以从网络中的两个IP地址访问Pi,一个是我定义的静态地址,另一个不是。当wlan0重新启动时,动态ip地址被赋予Pi,但不是静态地址。
这是我的/etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet manual
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid "ROUTER NAME"
wpa-psk "PASSWORD"
auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
以下是我用来重置wlan0:
的脚本 #!/bin/bash
SERVER=192.168.1.1 #Ping the router
ping -c2 ${SERVER} > /dev/null
#If the exits status from the ping is not 0 (failed)
if [$? != 0]
then
#Disable wlan0 and re-enable it
sleep 2
ifconfig wlan0 down
sleep 2
ifconfig wlan0 up
fi
任何帮助表示赞赏!谢谢!
编辑:
在浏览了这个帖子中的想法之后,我发现/etc/init.d/networking restart
做了我需要的一切。所以新脚本是
#!/bin/bash
SERVER=192.168.1.1
ping -c2 ${SERVER} > /dev/null
if [ $?!=0 ]
then
/etc/init.d/networking restart
echo "Reconnecting!"
fi
答案 0 :(得分:0)
我环顾四周,似乎你可以确保在ifconfig wlan0 up
之后在你的wifi脚本中设置它(我还必须在每个覆盆子pi设置上实现这样的脚本我已经由于wifi不一致而造成的)
if [$? != 0]
then
#Disable wlan0 and re-enable it
sleep 2
ifconfig wlan0 down
sleep 2
ifconfig wlan0 up
ifconfig wlan0 192.168.1.11
fi
虽然应该注意我个人从未在pi上设置静态IP,但我使用反向隧道服务,所以我永远不必担心端口转发。我的回答引用了raspberrypi stackexchange站点的这个答案。 https://raspberrypi.stackexchange.com/questions/9678/static-ip-failing-for-wlan0
如果这有帮助,请告诉我,否则我可以深入研究它。
根据提问者的反馈,/etc/init.d/networking restart
就是答案,请阅读以下评论。