You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04下HTTP网站无法访问但HTTPS正常的问题求助

嗨,我来帮你解决Ubuntu 16.04里只能访问HTTPS、无法打开HTTP网站的问题!这种情况大概率是系统层面的网络规则、服务配置或者底层连接出了问题,咱们一步步排查:

1. 先检查防火墙是否拦截了HTTP端口

HTTP默认用80端口,有可能iptables规则把这个端口拦住了。先看看当前的防火墙规则:

sudo iptables -L -n

如果看到有DROP或REJECT针对80端口的条目,先临时清空规则测试:

sudo iptables -F

清空后再试试访问HTTP网站,要是能打开了,就说明是防火墙的问题,之后可以用ufw来重新配置规则,避免误拦截。

2. 排查残留的代理/过滤服务

虽然你已经禁用了浏览器代理,但系统里可能还有后台运行的代理服务(比如privoxy、squid)没彻底关掉,偷偷拦截HTTP请求。先看看正在运行的服务:

sudo systemctl list-units --type=service | grep -E '(proxy|filter)'

如果发现类似privoxy.service这类可疑服务,先停止并禁用:

sudo systemctl stop privoxy
sudo systemctl disable privoxy

操作完再测试HTTP访问是否恢复。

3. 验证DNS解析是否正常

HTTPS能访问不代表HTTP解析没问题,试试直接用IP访问HTTP站点:

curl -v http://93.184.216.34  # 这是example.com的官方IP

如果用IP能打开,说明是DNS解析的锅。可以切换到公共DNS服务器试试,比如Google的8.8.8.8:
编辑/etc/resolv.conf(如果是systemd-resolved管理的,改/etc/systemd/resolved.conf更稳妥):

sudo nano /etc/resolv.conf

修改成:

nameserver 8.8.8.8
nameserver 8.8.4.4

保存后测试解析是否正常:

nslookup wiki.ros.org
4. 确认网络管理器的全局代理彻底关闭

有时候网络管理器的代理设置可能没完全生效,哪怕你选了“无”。打开网络管理器,找到当前连接的网络,进入设置里的“代理”标签,确保选项是“无”,然后重启网络管理器:

sudo systemctl restart NetworkManager
5. 检查iptables的NAT规则是否有异常

透明代理的NAT规则如果没清理干净,会把HTTP请求转发到不存在的代理地址。查看NAT表:

sudo iptables -t nat -L -n

如果看到PREROUTING或OUTPUT链里有针对80端口的REDIRECT规则,清空NAT表:

sudo iptables -t nat -F
6. 测试TCP连接是否能建立到80端口

用nc工具测试和目标站点80端口的连接:

nc -zv wiki.ros.org 80

如果显示“connection refused”或者超时,说明网络层面连不上80端口,可能是ISP、路由器拦截了HTTP流量。可以试试切换手机热点上网,排除本地网络设备的问题。

7. 检查hosts文件是否被篡改

恶意软件或错误配置可能修改hosts文件,把HTTP网站指向错误IP。查看hosts内容:

cat /etc/hosts

如果发现wiki.ros.org或其他HTTP站点的异常条目,直接删除后保存。

要是以上步骤都试过还是不行,把curl -v http://wiki.ros.org/lunar/Installation/Ubuntu的完整输出贴出来,我就能更精准地定位问题啦!

内容的提问来源于stack exchange,提问作者Mohammad_Hosseini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:19:50