如何使用静态 ip 而不是动态 ip 重新启动 wlan0?
How do I restart wlan0 with the static ip instead of a dynamic ip?
我有一个 Raspberry Pi 运行 Raspbian 气喘。 /etc/network/interfaces
设置为在启动时为 Pi 提供静态 ip。但是,当连接断开时,Pi 不会自动重新建立连接。我有一个重新启动 wlan0 的脚本。但是,Raspberry Pi 的 ip 地址与给它的静态 ip 不同。这打破了我为从网络外部访问 Pi 所做的端口转发。
看来我的界面设置不太正确。可以从网络中的两个 ip 地址访问 Pi,一个是我定义的静态地址,另一个不是。当 wlan0 重新启动时,给 Pi 一个动态 IP 地址,而不是静态地址。
这是我的 /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
完成了我 need.So 的所有工作,新脚本是
#!/bin/bash
SERVER=192.168.1.1
ping -c2 ${SERVER} > /dev/null
if [ $?!=0 ]
then
/etc/init.d/networking restart
echo "Reconnecting!"
fi
我环顾四周,看来您可以确保在 ifconfig wlan0 up
之后在您的 wifi 脚本中设置它(我还必须在每个 raspberry 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
是答案,阅读下面的评论。
我有一个 Raspberry Pi 运行 Raspbian 气喘。 /etc/network/interfaces
设置为在启动时为 Pi 提供静态 ip。但是,当连接断开时,Pi 不会自动重新建立连接。我有一个重新启动 wlan0 的脚本。但是,Raspberry Pi 的 ip 地址与给它的静态 ip 不同。这打破了我为从网络外部访问 Pi 所做的端口转发。
看来我的界面设置不太正确。可以从网络中的两个 ip 地址访问 Pi,一个是我定义的静态地址,另一个不是。当 wlan0 重新启动时,给 Pi 一个动态 IP 地址,而不是静态地址。
这是我的 /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
完成了我 need.So 的所有工作,新脚本是
#!/bin/bash
SERVER=192.168.1.1
ping -c2 ${SERVER} > /dev/null
if [ $?!=0 ]
then
/etc/init.d/networking restart
echo "Reconnecting!"
fi
我环顾四周,看来您可以确保在 ifconfig wlan0 up
之后在您的 wifi 脚本中设置它(我还必须在每个 raspberry 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
是答案,阅读下面的评论。