Ubuntu LAMP如何处理网络连接问题
导读:Ubuntu LAMP 网络连接问题处理指南 一 快速判定与分层定位 分层定位思路:先看服务器是否能上网,再看本机端口是否监听,最后看云平台或外部网络是否放行。 关键命令清单: 查看网卡与地址:ip a 查看默认路由:ip route...
Ubuntu LAMP 网络连接问题处理指南
一 快速判定与分层定位
- 分层定位思路:先看服务器是否能上网,再看本机端口是否监听,最后看云平台或外部网络是否放行。
- 关键命令清单:
- 查看网卡与地址:ip a
- 查看默认路由:ip route
- 测试连通性:ping -c 4 网关IP、ping -c 4 8.8.8.8、ping -c 4 域名
- 监听端口:ss -tulpen | grep -E ‘(:80|:443|:3306)’
- 本机访问测试:curl -I http://127.0.0.1/
- 外部连通性:telnet 外网IP 80 或 nc -vz 外网IP 80
- 解析测试:nslookup example.com 或 dig example.com
- 日志:journalctl -xe、tail -f /var/log/apache2/error.log、tail -f /var/log/mysql/error.log
- 防火墙:sudo ufw status;必要时临时放行:sudo ufw allow 80,443/tcp
- 判定要点:
- 无法 ping 通网关:多为本地链路/网卡/VLAN/交换问题。
- 能 ping 通网关但外网 IP 不通:检查默认路由与上游网络。
- 能 ping 通外网 IP 但域名不通:DNS 配置问题。
- 本机 curl 正常但外网访问失败:检查云安全组/本机防火墙/监听地址绑定。
二 常见场景与处理步骤
- 场景A 云服务器外网访问不了 Web
- 在云控制台安全组放行入站 TCP 80/443(必要时放通 22 便于维护),来源按需设为 0.0.0.0/0 或企业网段。
- 本机确认监听:ss -tulpen | egrep ‘(:80|:443)’;若未监听,检查 Apache 是否运行:sudo systemctl status apache2。
- 本机到本机端口:curl -I http://127.0.0.1/;本机到内网 IP:telnet 内网IP 80;再到外网 IP:telnet 外网IP 80,逐跳定位阻断点。
- 若仅外网不通而本机/内网正常,优先复查云安全组与运营商/边界防火墙策略。
- 场景B 服务器本身无法上网
- 接口与地址:ip a 确认已获取 IP;如无,启用接口:sudo ip link set up,必要时 sudo dhclient 获取地址。
- 默认路由:ip route 应存在 default via 网关IP;缺失则添加:sudo ip route add default via < 网关IP> 。
- DNS:cat /etc/resolv.conf 应包含可用 DNS,如 nameserver 8.8.8.8;再测试域名解析。
- 网络管理:检查 NetworkManager 状态:systemctl status NetworkManager;异常则 sudo systemctl restart NetworkManager。
- 防火墙:sudo ufw status;临时放行或排查规则是否阻断。
- 场景C 端口未监听或被占用
- 查看监听与进程:ss -tulpen | grep :80;若未监听,启动服务:sudo systemctl start apache2。
- 端口冲突:用 ss/netstat 找到占用进程并停止或调整端口;必要时修正 Apache 虚拟主机监听与端口。
- 权限与目录:确保 /var/www/html 及日志目录权限正确,避免因权限导致服务异常。
- 场景D 虚拟机网络不通
- VMware/VirtualBox 将网络适配器设为 NAT 或 桥接;NAT 通常随主机上网,桥接可与局域网同网段获取 IP。
- 在虚拟机内执行“场景B”的连通性检查;若桥接无 IP,检查宿主机 DHCP 与 VLAN 设置。
三 配置与加固建议
- 静态 IP 与 DNS(使用 Netplan 的 Ubuntu)
- 编辑:sudo nano /etc/netplan/01-netcfg.yaml,示例:
- network:
- version: 2
- renderer: networkd
- ethernets:
- enp3s0:
- dhcp4: no
- addresses: [192.168.1.100/24]
- gateway4: 192.168.1.1
- nameservers: { addresses: [8.8.8.8, 8.8.4.4] }
- enp3s0:
- network:
- 应用:sudo netplan apply;验证:ip addr show enp3s0。
- 编辑:sudo nano /etc/netplan/01-netcfg.yaml,示例:
- 防火墙与端口
- 仅放通必要端口:sudo ufw allow 80,443/tcp;数据库默认仅内网访问:sudo ufw allow from 192.168.1.0/24 to any port 3306。
- 云上同时确认安全组规则与系统防火墙一致,避免“放行冲突/遗漏”。
- 服务与日志
- 确认服务运行:sudo systemctl status apache2 mysql(按需含 php-fpm)。
- 实时排错:journalctl -xe、tail -f /var/log/apache2/error.log、tail -f /var/log/mysql/error.log。
四 一键排查命令清单
- 复制执行并按输出定位:
- ip a & & ip route
- ping -c 4 网关IP & & ping -c 4 8.8.8.8 & & ping -c 4 example.com
- ss -tulpen | egrep ‘(:80|:443|:3306)’
- curl -I http://127.0.0.1/ & & curl -I http://内网IP/
- sudo ufw status
- sudo systemctl status apache2 mysql
- tail -n50 /var/log/apache2/error.log /var/log/mysql/error.log
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu LAMP如何处理网络连接问题
本文地址: https://pptw.com/jishu/750676.html
