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

安装docker-ce后telnet远程连接出现No route to host问题的解决求助

解决Docker CE安装后Telnet无法连接的问题

这大概率是Docker默认配置修改了系统的iptables规则或者网络路由,导致你的主机无法正常访问目标IP的1521端口。我碰到过好几个类似的案例,下面按优先级给你几个可行的解决方案:

方案1:禁用Docker的iptables自动管理

Docker默认会启用iptables=true配置,这会让它自动修改系统的iptables规则,有时候会误阻断主机到外部的连接。调整方法很简单:

  • 先创建或编辑Docker的配置文件:sudo nano /etc/docker/daemon.json
  • 在文件里添加以下内容(如果文件已有其他配置,记得用逗号分隔):
{
  "iptables": false
}
  • 保存后重启Docker服务:sudo systemctl restart docker
  • 现在再测试telnet:telnet 172.10.11.124 1521

注意:这个操作会让Docker不再自动管理iptables规则,后续如果需要容器对外暴露端口,可能需要手动配置iptables转发,但能直接解决主机的telnet问题。

方案2:手动添加iptables放行规则

如果你不想关闭Docker的iptables自动管理,可以针对性地添加允许访问目标端口的规则:

  • 先查看当前iptables规则,确认是否有相关阻断:sudo iptables -L -n
  • 添加放行规则到DOCKER-USER链(这个链是专门给用户自定义规则用的,不会被Docker覆盖):
    sudo iptables -I DOCKER-USER -d 172.10.11.124 -p tcp --dport 1521 -j ACCEPT
  • 保存iptables规则(Ubuntu系统可以用sudo netfilter-persistent save,其他系统可能用iptables-save > /etc/iptables/rules.v4)
  • 再次测试telnet连接

方案3:调整Docker网桥避免IP段冲突

有时候Docker默认的docker0网桥使用的IP段(通常是172.17.0.0/16)和你要访问的目标IP段(172.10.11.x)存在路由冲突,导致流量被错误转发到Docker网桥。可以修改Docker的网桥IP段:

  • 编辑/etc/docker/daemon.json,添加bip配置:
{
  "bip": "192.168.100.1/24"
}
  • 重启Docker服务:sudo systemctl restart docker
  • 检查路由表确认异常路由消失:route -n
  • 测试telnet连接

额外排查步骤

如果上面的方案都没解决,可以做以下排查:

  • 用ping 172.10.11.124测试连通性:如果ping不通,说明是路由或防火墙的整体阻断;如果ping通但telnet失败,就是端口级别的阻断。
  • 检查系统防火墙(比如ufw):如果开启了ufw,可能需要调整默认转发规则,或者添加允许访问1521端口的规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:43:18