当前位置: 首页 > news >正文

docker swarm多主机之间的端口无法访问,但能ping通 问题排查及解决

已排查:1.ufw status 防火墙已关闭  2.selinux已关闭   3.netstat -ntpl  :::8088 未限制ip

问题:docker swarm多主机之间的端口无法访问,但能ping通,同一主机下的端口也可以访问。

原因:docker overlay网络内部使用vxlan技术实现网络内部互通,通过 udp 4789 端口进行流量转发,此端口可以在swarm初始化时修改。

解决:tcpdump每台机器物理网卡的4789端口的流量:tcpdump -i ens160 udp port 4789 -vv -X;

在worker节点上访问manager节点的tcp 9999服务,可以看到如下报文:

tcpdump: listening on ens160, link-type EN10MB (Ethernet), capture size 262144 bytes

13:40:49.011232 IP (tos 0x0, ttl 64, id 25866, offset 0, flags [none], proto UDP (17), length 110)

    master-01.41787 > 10.168.1.181.4789: [bad udp cksum 0x174d -> 0x4773!] UDP, length 82

0x0000:  4500 006e 650a 0000 4011 fcc6 0aa8 01aa  E..ne...@.......

显示udp报文异常:bad udp cksum 0x174d -> 0x4773,原因是linux默认开启了内核计算cksum和网卡计算cksum,此处一般为网卡计算cksum错误,需要关闭网卡计算的功能;

命令 ethtool -k ens160 查看开启的情况。

其中tx-checksumming为网卡计算cksum的配置项,需要将其关闭:

ethtool --offload ens160 tx off

同时需要将manager节点的此配置也关闭,步骤同上;

最后检查是否可以连通即可

开机自动关闭:修改 /root/.bashrc 文件,添加如下行:

# disable ts-checksumming on boot

/sbin/ethtool --offload ens160 tx off

注意:修改/root/.bashrc 文件只会在以 root 用户身份登录时生效。对所有用户生效可以修改/etc/bashrc

相关文章:

  • SQL常用基础语句(一)-- FGHIJ开头
  • 【C++初阶】--- C++入门(上)
  • 开源大模型与闭源大模型:技术哲学的较量
  • 微服务远程调用 RestTemplate
  • 【MySQL精通之路】SQL优化(1)-查询优化(8)-嵌套联接优化
  • 在docker中安装官方rocketmq
  • 【C语言回顾】联合和枚举
  • CTFshow之文件上传web入门151关-161关解密。包教包会!!!!
  • 基于树的存储数据结构demo
  • Ubuntu系统版本查看办法
  • (Qt) 默认QtWidget应用包含什么?
  • 汽车工厂安灯系统能够快速知晓生产现场的状况
  • github下载代码
  • Docker 部署 Nginx 实现一个极简的 负载均衡
  • docker 笔记汇总
  • Django 博客开发教程 8 - 博客文章详情页
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JS题目及答案整理
  • Linux下的乱码问题
  • nfs客户端进程变D,延伸linux的lock
  • Vue 动态创建 component
  • 安装python包到指定虚拟环境
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 创建一种深思熟虑的文化
  • 开发基于以太坊智能合约的DApp
  • 聊聊hikari连接池的leakDetectionThreshold
  • 那些年我们用过的显示性能指标
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 驱动程序原理
  • 微信开源mars源码分析1—上层samples分析
  • 一、python与pycharm的安装
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • const的用法,特别是用在函数前面与后面的区别
  • ionic异常记录
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • "无招胜有招"nbsp;史上最全的互…
  • $.ajax,axios,fetch三种ajax请求的区别
  • (13)Hive调优——动态分区导致的小文件问题
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (强烈推荐)移动端音视频从零到上手(上)
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (一)Dubbo快速入门、介绍、使用
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)一些感悟
  • ./configure,make,make install的作用
  • .net FrameWork简介,数组,枚举
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法