Ubuntu 16.04静态IP搭建Linux Web服务器跨设备访问故障排查
嘿,作为刚上手搭建Web服务器的新手,碰到局域网内其他设备访问不了的问题太正常了!咱们一步步来排查:
1. 检查网卡静态IP配置是否生效
你提供的interfaces文件内容里,回环接口lo的配置被注释掉了,而且看不到网卡(比如eth0/enp0sX这类物理网卡)的静态IP配置内容。正确的静态IP配置应该类似这样(以eth0为例):
# interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.100 # 你的静态IP地址 netmask 255.255.255.0 gateway 192.168.1.1 # 路由器网关地址 dns-nameservers 8.8.8.8 8.8.4.4
配置完成后执行sudo ifdown eth0 && sudo ifup eth0重启网卡,再用ip addr命令确认静态IP是否正确加载。
2. 确认Ubuntu防火墙是否开放Web服务端口
Ubuntu 16.04默认使用ufw防火墙,如果你用的是默认HTTP端口(80),需要执行以下命令开放端口:
sudo ufw allow 80/tcp sudo ufw reload
如果用的是自定义端口(比如8080),把命令里的80换成对应的端口号即可。执行sudo ufw status可以查看已开放的端口列表,确认目标端口是否在列。
3. 检查Web服务器是否监听所有网卡
很多新手配置Web服务时,默认只监听localhost(127.0.0.1),这样只有本机能访问。以Nginx为例,你需要修改站点配置文件(比如/etc/nginx/sites-available/default),把listen指令改成:
listen 80;
而不是listen 127.0.0.1:80;。修改后重启服务sudo systemctl restart nginx。如果是Apache,同理修改配置中的监听地址,再执行sudo systemctl restart apache2重启服务。
4. 验证局域网连通性
从其他设备上先ping你的服务器静态IP,如果ping不通,说明是网络层面的问题:
- 确认两台设备处于同一WiFi/局域网下
- 检查iMac的网络共享设置是否限制了外部访问
- 查看路由器是否开启了AP隔离功能(该功能会阻止局域网内设备互相访问)
5. 测试Web服务本身
在服务器本机执行curl http://你的静态IP,如果能正常返回网页内容,说明服务本身没问题,问题大概率出在网络或防火墙配置上。
内容的提问来源于stack exchange,提问作者Terence Antonio

