作为一名长期与各类存储设备打交道的运维工程师,我最近在帮客户部署绿联NAS远程备份方案时,发现不少技术文档对SSH访问的细节描述过于简略。本文将基于实际项目经验,详细拆解如何通过SSH连接绿联NAS并实现文件同步,包含你可能从未注意过的网络配置细节和安全加固技巧。
绿联NAS默认关闭SSH访问,这是厂商出于安全考虑的设计。启用步骤看似简单,但有几个关键细节需要注意:
重要提示:首次启用后建议立即修改默认端口!我在实际部署中发现,使用22端口的NAS设备在公网环境下平均每天会遭遇300+次暴力破解尝试。可以将端口改为1024-65535之间的随机值(如58233)。
连接需要两个核心参数:
如果需要通过公网访问,还需要:
连接命令的完整格式其实包含多个实用参数:
bash复制ssh -v -C -o ServerAliveInterval=60 admin@192.168.1.100 -p 58233
参数解析:
-v:显示详细连接日志(排错必备)-C:启用压缩传输(适合大文件同步)ServerAliveInterval:防止连接超时(每60秒发送心跳包)密码认证存在被暴力破解的风险,推荐使用更安全的密钥对认证:
bash复制ssh-keygen -t ed25519 -f ~/.ssh/ugreen_nas
bash复制ssh-copy-id -i ~/.ssh/ugreen_nas.pub -p 58233 admin@192.168.1.100
bash复制ssh -i ~/.ssh/ugreen_nas admin@192.168.1.100 -p 58233
当NAS位于内网时,需要在主路由器设置端口转发:
避坑指南:部分ISP会封锁常用端口。实测中国移动宽带会过滤22端口流量,这就是为什么必须修改默认端口。
家庭宽带通常使用动态IP,推荐配置DDNS服务:
在绿联云APP中开启DDNS:
连接时使用域名替代IP:
bash复制ssh admin@yourname.ugnas.cc -p 51222
这是最可靠的同步方案,适合定期备份:
bash复制rsync -avzP -e "ssh -p 51222" /local/path/ admin@yourname.ugnas.cc:/nas/path/
参数说明:
-a:归档模式(保留权限等属性)-v:显示详细过程-z:压缩传输-P:显示进度并可断点续传适合单次文件传输:
bash复制scp -P 51222 -r /local/folder admin@yourname.ugnas.cc:/nas/path/
创建同步脚本nas_backup.sh:
bash复制#!/bin/bash
LOG_FILE="/var/log/nas_sync.log"
REMOTE="admin@yourname.ugnas.cc"
PORT="51222"
echo "$(date) 开始同步" >> $LOG_FILE
rsync -avzP --delete -e "ssh -p $PORT" \
--exclude='*.tmp' \
--exclude='cache/' \
/data/backup/ $REMOTE:/nas/backup/ >> $LOG_FILE 2>&1
if [ $? -eq 0 ]; then
echo "$(date) 同步成功" >> $LOG_FILE
else
echo "$(date) 同步失败" >> $LOG_FILE
# 发送邮件通知
echo "NAS同步失败,请检查日志" | mail -s "警报:备份异常" admin@example.com
fi
在绿联NAS上设置防火墙规则:
查看最近登录记录:
bash复制cat /var/log/auth.log | grep sshd
实时监控登录尝试:
bash复制tail -f /var/log/auth.log | grep --line-buffered "sshd"
对于企业级应用,建议:
可能原因及解决方案:
telnet yourname.ugnas.cc 51222排查步骤:
bash复制chmod 600 ~/.ssh/ugreen_nas
chmod 700 ~/.ssh
优化方案:
bash复制ssh -o TCPKeepAlive=yes -o ServerAliveInterval=15 ...
修改~/.ssh/config文件:
code复制Host nas
HostName yourname.ugnas.cc
Port 51222
User admin
IdentityFile ~/.ssh/ugreen_nas
Compression yes
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
ControlPersist 1h
之后只需执行:
bash复制ssh nas
使用parallel-ssh工具批量操作:
bash复制pssh -h hosts.txt -l admin -p 51222 -i "df -h"
避免同步任务占用全部带宽:
bash复制rsync --bwlimit=1000 ... # 限制为1MB/s
MySQL备份示例:
bash复制mysqldump -u root -p dbname | gzip | \
ssh -p 51222 admin@yourname.ugnas.cc "cat > /nas/backup/db_$(date +%F).sql.gz"
通过inotify-tools实现实时同步:
bash复制inotifywait -m -r -e move -e create /var/camera/ | while read path action file; do
rsync -avzP --remove-source-files $path/ admin@yourname.ugnas.cc:/nas/camera/
done
挂载NAS目录到本地:
bash复制sshfs -p 51222 admin@yourname.ugnas.cc:/nas/projects /mnt/nas_projects
bash复制smartctl -a /dev/sda
我在实际部署中发现,绿联NAS的SSH环境基于BusyBox,某些高级命令可能需要额外安装。比如要使用htop监控进程,需要先安装optware:
bash复制ipkg update && ipkg install htop
对于需要持久运行的任务(如监控脚本),建议使用crontab定时执行,或者通过screen/tmux创建持久会话。以下是添加定时任务的示例:
bash复制(crontab -l 2>/dev/null; echo "0 3 * * * /path/to/backup.sh") | crontab -