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

Linux双网卡默认路由的metric设置不正确,导致SSH连接失败问题定位

测试环境

VMware虚拟机 RockyLinux 9 x86_64

双网卡:eth0(访问外网): 10.206.216.92/24; eth1(访问内网) 192.168.1.4/24

问题描述

虚拟机重启后,SSH连接失败,提示"Connection time out",重启之前SSH连接还是正常的。
在这里插入图片描述

定位过程

登录Vmware串口,先确认sshd进程是否启动,通过ps查看sshd进程运行进程正常, netstat查看22号端口LISTEN,这一步没问题。

ps axf | grep sshd996 ?        Ss     0:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
ss -antp | grep 22 | grep LISTEN
LISTEN    0      128                   0.0.0.0:22                    0.0.0.0:*     users:(("sshd",pid=996,fd=3))

再通过tcpdump -i eth0 port 22 抓包,确认是否收到SSH请求报文,排除防火墙设置的原因。
在这里插入图片描述

从抓包结果看,只有收的包,没有发出去的包。再用route命令查看路由表,发现问题:eth0默认路由Metric值为101,大于eth1的Metric(100),这说明eth1默认路由优先级更高,结果应答报文从eth1发出去了,导致客户端收不到应答,显示"Connection time out"
在这里插入图片描述

通过dmesg查看虚拟机启动日志,发现eth1居然先于eth0 UP,所以系统自动分配给eth1的metric更小(优先级更高)。而之前SSH连接正常的时候,都是eth0先UP。
在这里插入图片描述

解决方法

手动设置下两个网卡的metric值,保证eth0的ipv4.route-metric小于eth1就行。写个脚本每次启动跑一下:

nmcli connection modify eth0 ipv4.route-metric 100
nmcli connection modify eth1 ipv4.route-metric 101
nmcli c up eth0
nmcli c up eth1
nmcli c reload

查看网卡配置文件确认修改生效:
在这里插入图片描述

http://www.lryc.cn/news/385592.html

相关文章:

  • Batch入门学习:从零开始掌握批处理脚本
  • diffusion model(十八):diffusion model中negative prompt的工作机制
  • Python | Leetcode Python题解之第200题岛屿数量
  • 利用圆上两点和圆半径求解圆心坐标
  • 从ChatGPT代码执行逃逸到LLMs应用安全思考
  • Python入门-基础知识-变量
  • 设计模式原则——接口隔离原则
  • MySQL数据库——在Centos7环境安装
  • 怎样规避液氮容器内部结霜的问题
  • 冶金工业5G智能工厂工业物联数字孪生平台,推进制造业数字化转型
  • 一文入门机器学习参数调整实操
  • 基于51单片机的银行排队呼叫系统设计
  • JXCategoryView的使用总结
  • Centos9 安装VBox增强功能问题
  • 【JVM】Java虚拟机运行时数据分区介绍
  • 大数据面试题之Kafka(2)
  • 前端面试题(基础篇十一)
  • 【论文阅读】Answering Label-Constrained Reachability Queries via Reduction Techniques
  • Git Flow 工作流学习要点
  • blender 快捷键 常见问题
  • HTTP详解:TCP三次握手和四次挥手
  • 详解HTTP:有了HTTP,为何需要WebSocket?
  • Spring Boot 启动流程是怎么样的
  • 【学习笔记】数据结构(三)
  • 学习python笔记:10,requests,enumerate,numpy.array
  • 经典神经网络(13)GPT-1、GPT-2原理及nanoGPT源码分析(GPT-2)
  • MySQL库与表的操作
  • TTS 语音合成技术学习
  • 小公司做自动化的困境
  • 基于pytorch框架的手写数字识别(保姆级教学)