Docker映射端口telnet不通的解决过程
问题描述
我在自己虚拟机的docker上运行的容器绑定的端口突然跟我的电脑通不了了,在docker启动之后,我使用了netstat -ntalp | grep 3000 发现端口监听shi是正常的,然后就到本机电脑telnet过去发现不通,
一开始怀疑是不是我重启过虚拟机导致防火墙又开启了(临时关闭),但是在虚拟机里面启动了个redis,本机确实能telent6379端口的,而且检查firewalld 和selinux发现都是处于关闭状态,
说明出问题的只是docker的转发出了问题,那转发得先看转发的配置链是否正确,
需要使用iptables -t nat -nL 命令来查看,看起来是对的,于是在想会不会是其他的有问题。
上网找了网友的资料发现
可能是转发得功能没有开,毕竟Linux转发要开启内核转发功能net.ipv4.ip_forward,于是我们可以先检查内核转发是否打开:
输入
sysctl net.ipv4.ip_forward发现

发现状态为0代表内核转发没有打开,估计问题就是这个造成的,于是打开内核转发参数
是处于没有打开的状态
于是我们需要打开它:
[root@dev1 opt]# echo 1 > /proc/sys/net/ipv4/ip_forward [root@dev1 opt]# sysctl -p
然后本机再次请求发现可以telnet通了。
为什么会出现这个问题,其实是因为docker 的proxy在1.7 版本之后全部都依赖于iptables了,所以docker转发的时候实际上是在iptables上创建了一个转发规则,然后根据这个转发规则来进行转发而iptables需要转发就必须要开启网卡转发功能,也就是net.ipv4.ip_forward要一直处于开启状态。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Windows Docker 部署 SolrCloud的方法步骤
本文主要介绍了Windows Docker 部署 SolrCloud的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-10-10
Gogs+Jenkins+Docker 自动化部署.NetCore的方法步骤
这篇文章主要介绍了Gogs+Jenkins+Docker 自动化部署.NetCore,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-06-06
Docker数据卷挂载命令volume(-v)与mount的使用总结
本文主要介绍了Docker数据卷挂载命令volume(-v)与mount的使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08
使用Docker安全地部署OpenClaw(龙虾)的详细步骤
OpenClaw (龙虾) 是一个强大的个人 AI 助手,它可以连接各种消息平台并执行工具,本文介绍如何通过 Docker Compose 安全地部署 OpenClaw,并解析其中的关键配置,需要的朋友可以参考下2026-03-03


最新评论