![uhttpd 在第一次请求 luci 索引时崩溃](https://linux22.com/image/1364437/uhttpd%20%E5%9C%A8%E7%AC%AC%E4%B8%80%E6%AC%A1%E8%AF%B7%E6%B1%82%20luci%20%E7%B4%A2%E5%BC%95%E6%97%B6%E5%B4%A9%E6%BA%83.png)
ATTITUDE ADJUSTMENT (Bleeding Edge, r33556)
我在我的 TP-Link Wifi 路由器 ( ) 上安装了 OpenWRT ( ) TL-WR1043ND
,在运行了 sshd 和一些基本程序后,它在我的桌子上放了几个星期,现在我继续安装它。
我安装了露西使用uhttpd
起来非常简单opkg
,我尝试用浏览器访问它。但是,每次我启动服务器并尝试打开时index.html
,服务器似乎都会默默崩溃,我不知道为什么。
语境
为了安装,我的笔记本电脑(暂时192.168.0.1
)本身充当路由器(运行良好)。我为路由器(pinky
)分配了 LAN IP192.168.0.2
并禁用了 WAN 接口。因此,我的网络配置如下:
# cat /etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option ifname 'eth0.1'
option proto 'static'
option ipaddr '192.168.0.2'
option netmask '255.255.255.0'
option gateway '192.168.0.1'
option dns '134.130.4.1 134.130.5.1'
config interface 'wan'
option ifname 'eth0.2'
option proto 'none'
config switch
option name 'rtl8366rb'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'rtl8366rb'
option vlan '1'
option ports '1 2 3 4 5t'
config switch_vlan
option device 'rtl8366rb'
option vlan '2'
option ports '0 5t'
指定的 DNS 指的是我的本地网络(准确地说是我的 VPN 隧道所指向的网络)中的服务器。无论如何,这个配置显然是临时的,直到我有信心将路由器正确连接到互联网。
我尝试了 uhttpd 的几种配置,但都导致相同的行为。首先,我运行了没有 SSL 支持的服务器,然后安装,luci-ssl
希望它能解决这个问题。现在我将配置恢复到绝对最小值:
# cat /etc/config/uhttpd
config 'uhttpd' 'main'
option 'listen_http' '0.0.0.0:80'
option 'home' '/www'
问题
当我启动服务器时,它似乎启动正常:
2183 root 1132 S /usr/sbin/uhttpd -f -h /www -r pinky -n 3 -p 0.0.0.0 80
但是,一旦我打开(从我的笔记本电脑上http://192.168.0.2
打开http://192.168.0.2/index.html
),该进程就会消失(即崩溃)。如果我手动启动服务器,它会告诉我:
# /usr/sbin/uhttpd -f -h /www -r pinky -n 3 -p 0.0.0.0 80
getaddrinfo(): Servname not supported for ai_socktype
Error: No sockets bound, unable to continue
我不知道这是什么意思。
我怎样才能缩小问题范围并修复它?
版本
luci
为 版本svn-r9819-1
并且uhttpd
为 版本2013-05-16-7a6811b705d6cca54b1367459fa19bb6d1234c45
。
答案1
我现在切换 http 服务器服务luci
从uhttpd
到lighttpd
仅安装软件包:
opkg install lighttpd lighttpd-mod-cgi luci-mod-admin-full luci-theme-openwrt libiwinfo
而且效果很好。尽管lighttpd
是的四倍大小uhttpd
,我可以节省空间并收集前者,使其更加健壮和经过测试(并且更具可配置性)。