SSH连接Ubnt路由器,进入root权限:
sudo -i
lighttpd服务默认情况下用于提供Ubnt路由器的Web服务。查看默认的lighttpd服务配置:
cat /etc/lighttpd/lighttpd.conf
可以看到默认HTTP文件目录位于/var/www/htdocs下:
server.document-root = "/var/www/htdocs"
将需要挂载的文件,以wpad.dat为例,复制或者软连接到/var/www/htdocs目录下,完成第一步。
即便复制了文件,Ubnt自带的lighttpd默认是不会提供HTTP根目录的下载功能的,还需进一步修改配置:
vi /etc/lighttpd/conf-enabled/15-fastcgi-python.conf
这个文件默认是如下的内容:
var.gui.bin = "/var/www/python/gui.py"
var.gui.flags = ""
# debugflag should be empty or " -d"
var.gui.debugflag = ""
$HTTP["url"] =~ "^/(?!lib|media|ws|tests|api/v1.0/)" {
fastcgi.debug = 0
fastcgi.server = (
"/" => (
"python-fcgi" => (
"check-local" => "disable",
"bin-path" => var.gui.bin + var.gui.flags + var.gui.debugflag,
"socket" => "/var/run/ubnt-rtr-ui/fastcgi.gui.socket",
"fix-root-scriptname" => "enable",
"max-procs" => 1
)
)
)
}
可见除了特定路径外,lighttpd会将HTTP请求移交给gui.py进行处理。要提供文件的HTTP访问功能,在第6行相应地修改正则表达式即可。
例如需要下载/var/www/htdocs/下的wpad.dat,修改第6行为:
$HTTP["url"] =~ "^/(?!lib|media|ws|tests|api/v1.0/|wpad.dat)" {
保存,然后重启服务:
systemctl restart lighttpd
完成第二步。
Ubnt默认只开启了HTTPS服务,并将HTTP请求重定向到了HTTPS。由于Ubnt默认的HTTPS的证书问题,像PAC自动代理配置可能无法支持从HTTPS直接访问文件。
如果要关闭HTTPS重定向,修改配置文件:
vi /etc/lighttpd/conf-enabled/10-ssl.conf
第24行开始为:
$HTTP["scheme"] == "http" {
# IPv4 redirect
$HTTP["host"] !~ "\[.*\]" {
$HTTP["host"] =~ "^([^\:]+)(\:.*)?$" {
url.redirect = (
"^(.*)$" => "https://%1:443$1"
)
}
}
# IPv6 redirect
$HTTP["host"] =~ "\[.*\]" {
$HTTP["host"] =~ "^([^]]+)(.)(\:.*)?$" {
url.redirect = (
"^(.*)$" => "https://%1%2:443$1"
)
}
}
}
注释掉IPv4 redirect:
$HTTP["scheme"] == "http" {
# IPv4 redirect
# $HTTP["host"] !~ "\[.*\]" {
# $HTTP["host"] =~ "^([^\:]+)(\:.*)?$" {
# url.redirect = (
# "^(.*)$" => "https://%1:443$1"
# )
# }
# }
# IPv6 redirect
$HTTP["host"] =~ "\[.*\]" {
$HTTP["host"] =~ "^([^]]+)(.)(\:.*)?$" {
url.redirect = (
"^(.*)$" => "https://%1%2:443$1"
)
}
}
}
保存,然后重启服务:
systemctl restart lighttpd
即可。