公网环境下通过Linux命令行访问Samba共享文件的方法咨询
公网环境下通过Linux命令行访问Samba共享文件的方法咨询
嗨,我来帮你搞定Linux命令行下公网访问Samba共享的问题!结合你提供的场景(OMV5装在树莓派3上,DDNS是website.ddns.net,共享名multimedia,本地账号Alessio),给你分享两种常用的命令行访问方法,都是实际场景里用得比较顺手的:
一、用smbclient快速交互访问(类似FTP模式)
smbclient是Samba官方的轻量客户端工具,适合临时查看、传输文件,不用挂载到本地目录:
- 先确认工具是否安装,Debian/Ubuntu系系统若未安装,执行:
sudo apt update && sudo apt install smbclient
- 直接连接公网Samba共享,执行命令:
smbclient //website.ddns.net/multimedia -U Alessio
执行后会提示你输入账号Alessio的Samba密码,输入正确后就进入交互模式——你可以用ls查看共享目录内容,get 文件名下载文件到本地,put 文件名上传本地文件到共享,exit退出交互。
二、挂载共享目录到本地(像访问本地文件夹一样用)
如果需要长期频繁访问,把共享挂载到本地目录会更方便,这时候需要用到cifs-utils工具:
- 先安装工具:
sudo apt update && sudo apt install cifs-utils
- 创建本地挂载点目录(比如挂载到/mnt路径下):
sudo mkdir /mnt/samba_multimedia
- 执行挂载命令:
sudo mount -t cifs //website.ddns.net/multimedia /mnt/samba_multimedia -o username=Alessio
输入密码后,你就可以通过/mnt/samba_multimedia这个路径直接读写共享里的文件了,和操作本地文件夹完全一样。
可选:设置开机自动挂载
如果希望每次开机都自动挂载这个共享,可以编辑/etc/fstab文件:
- 执行命令打开fstab:
sudo nano /etc/fstab
- 在文件末尾添加一行(记得把
你的密码替换成实际的Alessio账号密码):
//website.ddns.net/multimedia /mnt/samba_multimedia cifs username=Alessio,password=你的密码,iocharset=utf8 0 0
- 保存退出后,执行
sudo mount -a验证配置是否正确,若没有报错,下次开机就会自动挂载了。
小提醒:如果担心密码明文存在fstab里不安全,可以创建一个权限为600的凭证文件(比如
/etc/smb_credentials),内容写username=Alessio和password=你的密码两行,然后把fstab里的参数改成credentials=/etc/smb_credentials,iocharset=utf8即可。
一些要注意的细节
- 确认路由器端口转发规则:一定要把公网的445端口正确转发到树莓派的本地IP
192.168.1.150的445端口,而且树莓派本身的防火墙(如果开启了)要允许445端口的入站流量。 - 公网访问安全建议:Samba默认传输的加密性一般,如果你要传输敏感文件,建议搭配VPN使用,或者在OMV5里开启Samba的加密选项,提升传输安全性。
- 公网环境别用本地主机名:不能用
raspberrypi.local连接,必须用你的DDNS域名website.ddns.net。
备注:内容来源于stack exchange,提问作者Alessio_110
相关产品推荐
相关产品推荐

