如何让Kali Linux中的Web服务可被同网络其他设备访问并显示目录文件?
兄弟,我懂你作为新手的困惑,咱们一步一步来解决你的两个核心问题——让Apache显示目录文件,以及让同网络的其他设备能访问你的Web服务(不管是Apache还是SimpleHTTPServer)。
一、让Apache2显示目录文件
默认情况下Apache不会自动展示目录里的文件列表,得改配置开这个功能:
编辑Apache的全局目录配置
打开终端输入:sudo nano /etc/apache2/apache2.conf找到类似下面的
<Directory>段落(通常是/var/www/目录的配置):<Directory /var/www/> Options FollowSymLinks AllowOverride None Require all granted </Directory>把
Options FollowSymLinks改成Options Indexes FollowSymLinks——加个Indexes就是开启目录列表功能。修改站点配置(可选,如果用自定义目录)
如果你是把文件放在自己的文件夹里(不是默认的/var/www/html),还得修改对应站点的配置文件,比如默认站点:sudo nano /etc/apache2/sites-available/000-default.conf在
<VirtualHost *:80>块里加上一行:Options +Indexes修复目录权限
确保Apache能读取你的文件目录,比如你的文件放在/home/yourname/myfiles,就执行:sudo chmod -R 755 /home/yourname/myfiles sudo chown -R www-data:www-data /home/yourname/myfiles重启Apache生效
sudo service apache2 restart现在你在本地浏览器输入自己的局域网IP,应该就能看到目录里的所有文件了。
二、让同网络其他设备能访问你的Web服务
你之前用hostname -i得到的127.0.1.1是本地回环地址,只有你自己的电脑能访问,得用真实的局域网IP,还要处理防火墙问题:
第一步:找到你的真实局域网IP
打开终端输入:
ip a
找到你的网卡(比如有线是eth0,无线是wlan0),看inet后面的地址,比如192.168.1.100或者10.0.0.5,这个才是其他设备要访问的IP。
第二步:放行Web服务的端口
Kali默认可能有防火墙拦截端口,得把对应端口打开:
- 如果用Apache(默认端口80):
# 用ufw防火墙的情况 sudo ufw allow 80/tcp sudo ufw reload # 如果之前没开ufw,也可以直接关闭防火墙(新手友好) sudo ufw disable # 如果用iptables的情况 sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables-save > /etc/iptables/rules.v4 - 如果用SimpleHTTPServer(默认端口8000):
另外,启动SimpleHTTPServer的时候最好绑定所有网卡,避免只监听本地:sudo ufw allow 8000/tcp sudo ufw reload # 或者关闭防火墙 sudo ufw disablepython3 -m http.server 8000 --bind 0.0.0.0
第三步:其他设备访问
确保其他设备和你的Kali电脑在同一个WiFi/有线局域网里,打开浏览器输入:
- Apache:
http://你的局域网IP(比如http://192.168.1.100) - SimpleHTTPServer:
http://你的局域网IP:8000(比如http://192.168.1.100:8000)
这样应该就能正常访问了,如果还是不行,检查一下两台设备是不是在同一个网段,或者有没有其他网络设备(比如路由器)拦截了端口。
备注:内容来源于stack exchange,提问作者Rideboards

