🔍 Linux SSH 连接问题排查指南
故障现象:本机可执行 ssh localhost
,但其他电脑无法通过 SSH 连接
️ 核心原因排查(按优先级排序)
- 防火墙拦截
- 本地防火墙:
sudo ufw status # 检查UFW状态(Ubuntu)
sudo firewall-cmd --list-all # 检查firewalld(CentOS)
修复命令:
sudo ufw allow 22 # 开放22端口
sudo firewall-cmd --add-service=ssh --permanent && sudo firewall-cmd --reload
- 云平台安全组:
-
阿里云/ AWS/ 腾讯云需在控制台确认 入方向规则 放行 22 端口(尤其是 IPv4 规则)
-
SSH 服务监听配置错误
- 检查
/etc/ssh/sshd_config
:
grep "ListenAddress" /etc/ssh/sshd_config
- 若结果为
ListenAddress 127.0.0.1
,则仅监听本地
修复:注释该行或改为ListenAddress 0.0.0.0
- 重启服务:
sudo systemctl restart sshd
- 网络层问题
- IP 可达性测试:
ping 本机局域网IP # 从其他电脑执行
- 若不通 → 检查网卡配置、路由器 ACL、VLAN 隔离
- 端口监听验证:
ss -tlnp | grep 22 # 本机执行,应显示 0.0.0.0:22
- SELinux/TCP Wrappers 限制
- SELinux 日志检查:
sudo ausearch -m avc -ts recent | grep sshd
临时解决方案:
sudo setenforce 0 # 测试后需永久配置策略
- TCP Wrappers:
检查/etc/hosts.deny
是否包含sshd: ALL
(若有则删除)
📌 终极诊断流程
按顺序执行以下命令快速定位问题:
#1. 验证SSH服务状态
sudo systemctl status sshd
#2. 检查监听范围(关键!)
sudo netstat -tuln | grep ':22'
#3. 测试本地外部访问(本机执行)
ssh $(hostname -I | awk '{print $1}') # 使用实际IP连接自己
#4. 外部设备诊断组合
nc -zv 本机IP 22 # 端口连通性
traceroute 本机IP # 网络路径
telnet 本机IP 22 # 协议握手
🌐 网络架构影响分析
场景 | 典型表现 | 解决方案 |
---|---|---|
企业内网 | VLAN 隔离导致不通 | 联系网络管理员放行子网 |
云服务器 | 安全组未配置公网入口 | 控制台添加 0.0.0.0/0 规则 |
双网卡主机 | SSH 绑定错误网卡 | 修改 ListenAddress |
动态 IP 环境 | IP 变更导致连接失效 | 使用 DDNS 绑定域名 |
💡 特别提醒:
若主机位于 NAT 后(如家庭路由器),需配置 端口转发(外部端口 → 本机 22 端口)
使用curl ifconfig.me
获取公网 IP 供外部连接测试,并通过路由器管理界面设置转发规则。
建议优先完成 防火墙配置检查(80%问题根源) → SSH 监听范围验证 → 云平台安全组审查 三步排查,10分钟内可解决多数连接问题。
💽 磁盘挂载状态判断与挂载流程指南
🔍 一、磁盘挂载状态判断(4种核心方法
lsblk
可视化树形检测
lsblk -f # 查看所有磁盘设备及挂载点
- ✅ 已挂载:
MOUNTPOINT
列显示具体路径(如/mnt/data
) -
❌ 未挂载:
MOUNTPOINT
列为空 -
findmnt
精准定位
findmnt /dev/sdX1 # 替换X为磁盘标识(如sdb1)
- 有输出 → 已挂载(显示挂载路径、文件系统)
-
无输出 → 未挂载
-
mount
系统级验证
mount | grep "/dev/sd" # 过滤所有磁盘挂载信息
/proc/mounts
内核级确认
cat /proc/mounts | grep "ext4\|xfs" # 按文件系统类型检索
📊 状态对照表
命令 已挂载特征 未挂载特征 lsblk
MOUNTPOINT非空 MOUNTPOINT空白 df -h
显示磁盘容量和使用率 无目标磁盘信息 blkid
包含UUID但无挂载路径 仅显示基础信息
🛠️ 二、磁盘挂载全流程(5步操作指南)
场景示例:将新磁盘 /dev/sdb1
挂载至 /data
步骤1:基础准备
sudo fdisk -l | grep "Disk /dev/sd" # 确认磁盘存在
sudo mkdir -p /data # 创建挂载目录
步骤2:文件系统创建
sudo mkfs.ext4 /dev/sdb1 # 格式化为ext4(可选xfs/btrfs)
若已格式化则跳过
步骤3:临时挂载(重启失效)
sudo mount /dev/sdb1 /data # 执行挂载
mount | grep sdb1 # 验证结果
步骤4:永久挂载配置 ```编辑/etc/fstab文件,添加:
UUID=xxxx-xxxx /data ext4 defaults 0 2 # 通过blkid获取UUID
sudo mount -a # 测试配置是否生效
步骤5:高级管理
- 卸载磁盘:sudo umount /data
- 扩容挂载:
sudo resize2fs /dev/sdb1 # ext4扩展
sudo xfs_growfs /data # xfs扩展
- 故障处理:
dmesg | grep sdb1 # 查看内核日志
fsck /dev/sdb1 # 修复文件系统
⚠️ 三、关键注意事项
1. 权限控制
- 使用 chown user:group /data
设置目录归属
- 通过 mount -o uid=500,gid=500
指定挂载权限
- 安全卸载
sync && umount /data # 强制同步数据后卸载
-
❗ 未卸载直接拔盘可能导致数据损坏
-
特殊场景
场景 | 解决方案 |
---|---|
NTFS磁盘 | mount -t ntfs-3g /dev/sdX /mnt |
LVM卷组 | vgchange -ay 激活后挂载逻辑卷 |
NFS网络存储 | mount -t nfs 192.168.1.100:/share /mnt |
- 自动化监控
# 添加cron任务检测挂载状态
*/30 * * * * if ! grep -qs '/data' /proc/mounts; then mount /data; fi
🌟 操作口诀:
一查存在 → 二建目录 → 三挂设备 → 四写配置 → 五验持久
建议在操作前通过lsblk
双重确认磁盘标识,避免误操作覆盖关键数据。
评论
评论列表
暂无评论