Linux访问本地服务器文件夹路径,核心就两条:同一台机器直接用绝对路径进入;跨机器共享则把远端目录挂载到/mnt或/media下的空目录,再像本地文件夹一样操作。很多人把“本地服务器”四个字说得很顺,真正上手却卡在路径上:一会儿是/home/data,一会儿是\\192.168.1.20\share,一会儿又变成mount error,先把场景分清,路径才不会越找越乱。
linux怎么访问本地服务器文件夹路径:先分清本机路径与共享目录
“本地服务器文件夹路径”常被混用,它可能指你正坐在服务器前,访问这台机器自己的目录;也可能指你通过SSH登录服务器后,想看服务器上的本地目录;还可能指你要从Linux服务器访问局域网里另一台机器的共享文件夹,三种情况,操作入口完全不同。
同一台Linux服务器:路径就是目录树
如果目标目录就在当前Linux系统里,不需要“访问共享”那一套,它就是一个绝对路径。
- 查看当前所在位置:
pwd - 列出目录内容:
ls -la /home/data - 查看目录权限:
ls -ld /home/data - 查看当前用户:
id - 查看挂载关系:
findmnt或df -hT - 查找某个目录真实路径:
realpath /www/wwwroot或readlink -f /www/wwwroot
常见网站目录多在/var/www、/www/wwwroot、/home/用户名/project,进入时用cd /www/wwwroot,不要靠文件管理器一层层猜,路径写错时,cd会直接报“No such file or directory”,这比在共享协议里排查省事得多。
同一台机器上还有一个容易忽略的点:目录存在,不等于你的用户能读。ls -ld看权限位,namei -l /home/data/项目文件看整条路径每一级目录的权限,很多时候不是路径错,而是中间某一层目录缺少执行权限。
另一台服务器或本地电脑:先选协议再挂载
跨主机访问时,“路径”不再只是/data,而是“协议://地址/共享名”,Linux常用三条路:NFS适合Linux对Linux,Samba适合Windows混合环境,SSHFS适合临时挂载,业内专家指出,能走内网就不要走公网挂载,NFS和SMB都不是为高延迟公网设计的。
挂载前先准备一个空目录,例如sudo mkdir -p /mnt/nfs-data、sudo mkdir -p /mnt/smb、sudo mkdir -p /mnt/sshfs,挂载点不要选已有文件的目录,否则原内容会被遮住。
linux怎么访问另一台服务器共享文件夹:NFS与Samba两条路
本身就是很多人的真实搜索,NFS和Samba不是谁替代谁,关键是对方机器是什么系统、共享是长期还是临时。
NFS:Linux对Linux的长期共享
服务端先导出目录,以/data共享给168.1.0/24网段为例,编辑/etc/exports:
/data 192.168.1.0/24(rw,sync,no_subtree_check)
然后执行:
sudo exportfs -ra sudo systemctl enable --now nfs-server
客户端先确认能否看到导出列表:
showmount -e 192.168.1.20 sudo mkdir -p /mnt/nfs-data sudo mount -t nfs 192.168.1.20:/data /mnt/nfs-data
要开机自动挂载,可写入/etc/fstab:
168.1.20:/data /mnt/nfs-data nfs defaults,_netdev,nofail 0 0
NFS常用端口是2049和111,防火墙要放行,云服务器还要看安全组,NFS权限很大程度依赖UID/GID,客户端用户和服务器用户ID不一致时,可能出现“文件在但打不开”,据Debian、Red Hat等发行版公开文档,NFS客户端挂载通常需要root权限。
linux访问windows共享文件夹免费方案:Samba客户端挂载
Windows共享、NAS共享、混合办公环境,优先用SMB/CIFS,大多数Linux发行版安装cifs-utils即可,不需要买商业软件,属于常见的免费方案。
先安装工具:
sudo apt install cifs-utils # 或 sudo dnf install cifs-utils
查看共享列表:
smbclient -L //192.168.1.20 -U user
挂载到本地:
sudo mkdir -p /mnt/smb sudo mount -t cifs //192.168.1.20/share /mnt/smb \ -o username=user,password=你的密码,vers=3.0,uid=$(id -u),gid=$(id -g),iocharset=utf8
密码不建议直接写在命令历史里,可以建凭证文件:
sudo install -m 600 /dev/null /etc/samba/cred printf 'username=user\npassword=你的密码\n' | sudo tee /etc/samba/cred sudo mount -t cifs //192.168.1.20/share /mnt/smb \ -o credentials=/etc/samba/cred,vers=3.0,uid=$(id -u),gid=$(id -g)
据Samba官方文档,CIFS挂载依赖内核CIFS模块和正确的SMB版本协商,老设备可能需要vers=2.0或vers=1.0,但新环境优先vers=3.0,SMB常用端口445,老环境还会涉及139。
SSHFS:临时访问轻量选择
只临时看几个文件,SSHFS很顺手,它走SSH的22端口,不需要服务端额外开共享协议。
sudo apt install sshfs mkdir -p /mnt/sshfs sshfs user@192.168.1.20:/home/user/data /mnt/sshfs -o reconnect,ServerAliveInterval=15
卸载:
fusermount -u /mnt/sshfs
SSHFS依赖FUSE,普通用户也可使用,但网络断开后体验不如本地盘,大目录、频繁编译、数据库文件不适合长期放SSHFS里跑。
scp和rsync访问服务器文件夹哪个好:按场景选命令
如果只是“把服务器文件夹弄到本机”,不一定非要挂载,复制和挂载是两种思路,行业共识认为,长期共享优先NFS或SMB,临时访问优先SSHFS,批量搬运优先rsync。
| 方式 | 典型用途 | 断点续传 | 增量同步 | 像本地目录一样操作 |
|---|---|---|---|---|
| scp | 单次复制小批量文件 | 不支持 | 不支持 | 否 |
| rsync | 批量同步、备份 | 支持 | 支持 | 否 |
| SSHFS | 临时挂载远端目录 | 依赖SSH重连 | 否 | 是 |
| NFS/SMB | 长期共享目录 | 由协议和网络决定 | 否 | 是 |
单次复制与增量同步
从服务器拉取目录:
scp -r user@192.168.1.20:/data/project /backup/
用rsync更稳:
rsync -avz --progress user@192.168.1.20:/data/project/ /backup/project/
注意源目录末尾斜杠。/data/project/表示复制目录里的内容,/data/project表示连目录本身一起复制,这个细节经常导致“怎么多了一层文件夹”。
需要保留权限和时间戳,用-a;排除日志,用--exclude='.log';网络不稳,加--partial,这些参数比反复重传更实际。
挂载访问与复制访问的边界
要在IDE里直接打开服务器项目,选SSHFS或VS Code Remote-SSH,要每天定时备份,选rsync,要多人长期读写同一批文件,选NFS或SMB,把复制工具当共享盘用,或者把共享盘当备份工具用,后面都会遇到权限和一致性问题。
本地电脑访问linux服务器文件夹路径:图形化与命令行入口
反过来,从本地电脑访问Linux服务器文件夹,也有固定入口,Windows文件资源管理器输入\\192.168.1.20\share,前提是服务器开了Samba并放行445,macOS在“前往”里选“连接服务器”,输入smb://192.168.1.20/share,Linux桌面可用文件管理器地址栏输入smb://192.168.1.20/share。
命令行工具同样实用:WinSCP、MobaXterm适合Windows;VS Code安装Remote-SSH后可直接打开/home/user/project,这类工具本质还是走SSH或SMB,路径没通,换界面也解决不了。
国内服务器linux访问本地文件夹路径的权限与网络检查
国内云服务器常见情况是安全组默认只开22,445和2049需要手动放行,跨地域挂载延迟高,不适合当本地盘频繁读写,先确认你连的是内网地址还是公网地址,再看端口:
nc -vz 192.168.1.20 445 nc -vz 192.168.1.20 2049 showmount -e 192.168.1.20
本机防火墙也要看:
sudo firewall-cmd --add-service=samba --permanent sudo firewall-cmd --add-service=nfs --permanent sudo firewall-cmd --reload # 或 sudo ufw allow 445/tcp sudo ufw allow 2049/tcp
SELinux开启时,Samba共享可能被拦,用getenforce确认状态,必要时按发行版文档调整布尔值或策略,不要一上来就关SELinux,先看dmesg | tail和审计日志。
路径验证与权限排查
挂载后先跑三条命令:
findmnt /mnt/smb df -hT /mnt/smb ls -ld /mnt/smb
如果提示Permission denied,按顺序查:源路径是否存在、共享端是否允许该网段、挂载用户是否有权限、UID/GID是否映射正确、SELinux是否拦截、防火墙是否放行。namei -l /mnt/smb/项目目录能快速看出哪一级目录断了权限。
linux访问本地服务器文件夹路径的常见坑与检查清单
路径问题往往不是单一原因,下面这些坑,排查时按顺序过一遍,比反复重装工具有效。
路径写错与相对路径
cd data和cd /data不是一回事,脚本里尽量写绝对路径,或者先cd "$(dirname "$0")",挂载前用mkdir -p建空目录,卸载用umount /mnt/smb,设备忙时用lsof +f -- /mnt/smb找占用进程。
权限和SELinux
本机目录用chown、chmod、setfacl处理,共享目录还要看服务端导出规则和共享权限,NFS看UID/GID,SMB看挂载参数里的uid、gid和共享ACL,SELinux相关拒绝可查ausearch -m avc -ts recent。
网络与协议
NFS、SMB、SSHFS对端口要求不同,先ping通,再测端口,再看服务状态:systemctl status nfs-server、systemctl status smbd,云服务器安全组和本机防火墙要同时放行,公网挂载要加加密和访问控制,不要把445直接暴露到全网。
linux怎么访问本地服务器文件夹路径:常见问答
linux访问本地服务器文件夹路径时总提示Permission denied怎么办?
先分本机权限和共享权限,本机看ls -ld、id、namei -l;NFS看服务端导出网段和UID/GID;SMB看共享ACL、挂载uid/gid、凭证文件权限;再看SELinux和防火墙,多数情况下不是单纯chmod 777能解决。
linux访问本地服务器文件夹路径必须用root吗?
访问本机目录不需要root,普通用户有权限即可进入,挂载NFS和SMB通常需要sudo,因为涉及内核挂载,SSHFS可由普通用户通过FUSE完成,但要求系统安装FUSE并允许对应用户使用。
临时读几个文件,用SSHFS挂载还是scp复制?
需要像本地目录一样反复读写、让IDE直接打开,选SSHFS;只搬一次文件,scp或rsync更稳,如果网络会断,rsync的续传和校验更省心,SSHFS断线后要重新挂载。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/796400.html


![[5分钟学linux] 13-linux基础:绝对路径、相对路径和touch命令-2022新linux极速入门教程](https://i2.hdslb.com/bfs/archive/f9f163aefd62de7a85386a22d1b1a6315f18c727.jpg)