退出模拟SSH服务器会话后Ubuntu宿主VM的ping、traceroute及Docker功能异常排查求助
问题概述
我在学校分配的Ubuntu宿主VM上,从Docker容器运行的模拟VM退出SSH会话后,突然同时出现三个问题:ping、traceroute功能失效,且启动模拟VM/SSH服务器的脚本无法正常运行。重置整个桌面环境也没能解决,目前仅SSH连接和浏览器可正常工作,traceroute能执行但输出全是30个标记为***的跳数。这些问题都是退出模拟VM的SSH会话后立刻出现的,目前还没来得及排查ARP表和Socket接口,明天会更新进展,希望能先得到一些排查方向的提示。
背景操作细节
当时我正在宿主VM内的Docker容器模拟的VM上完成作业,做了以下几项配置:
- 创建了一个无家目录、拥有root权限、UID/GID均低于1000的用户
- 修改
sudoers文件,允许该用户无需密码获取root权限 - 修改
sshd_config文件,尝试将SSH端口改为2222,但操作时是在已注释的#Port 22下方新增了一行#Port 2222——当时原Port22处于注释状态,但我仍能通过22端口正常访问模拟VM,所以没在意这个操作。不过我至今搞不懂为什么注释的端口还能生效,而且感觉这个操作和宿主VM当前的问题关联不大?
另外,宿主VM的端口都是开放且正常的,问题是在我做完这些修改并退出模拟VM后立刻出现的,之前完全没有异常。会不会是我退出SSH会话的方式不当导致的?
具体故障现象
Docker/模拟VM启动异常
启动模拟VM的脚本依赖Docker,现在Docker显示处于运行状态,但脚本始终无法启动,报错信息如下:
Apps aren't launching. Something is wrong.
Try restarting the VM, then restart Docker.
Then run the script again.
我尝试过重启Docker、重启宿主VM甚至重置整个系统,但问题依然存在。我自己检查了脚本内容,没发现明显问题,但现在连模拟VM都无法进入,没法排查那边的配置是否影响了宿主VM。
Ping功能异常
- 大部分外部IP都无法ping通,执行命令后会卡住,必须手动终止才会停止,且没有失败提示
- 用
ping -c 3 -w 12 1.1.1.1限制请求次数和超时时间测试,结果为100%丢包:
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. --- 1.1.1.1 ping statistics --- 12 packets transmitted, 0 received, 100% packet loss, time 11249ms
- 可正常ping通
localhost、127.0.0.1和0.0.0.0 - 内部防火墙已禁用,ICMP协议也已开启
- 尝试指定接口执行ping命令(例如
ping -I interface google.com),报错:ping: SO_BINDTODEVICE interface: No such device——感觉这里可能和Socket配置有关?
Traceroute功能异常
执行traceroute命令后,输出结果全是30个跳数,每个跳数都显示为***,完全看不到任何路由信息。
已尝试的解决方法
- 确认宿主VM的配置文件未被修改(我没有把宿主VM和模拟VM搞混,所有配置修改操作都是在模拟VM内完成的)
- 验证本地环回地址ping正常,防火墙和ICMP相关设置无问题
- 对宿主VM执行了全系统重置,但问题依然存在——这点特别困惑,难道有什么系统设置或网络故障是全系统重置也无法清除的?
待排查的方向(尚未尝试)
- Socket配置检查
- ARP表配置检查
- 深入排查模拟VM启动脚本的执行流程,定位具体失败节点
- 探究为什么全系统重置后问题依然存在
我不需要完整的解决方案,只要一些排查方向的提示就好!明天会继续更新进展。
备注:内容来源于stack exchange,提问作者pieris_rapae1999

