SteamDeck使用SMB共享文件夹以及无法访问的解决方案
编辑由于我使用steamdeck时有打mod的需求,而steamdeck下载文件与传输其实并不方便。因此我决定使用我的电脑下载与管理文件。这样也方便未来重置系统时,可以快速恢复安装的状态。
安装与启用SMB
Samba可以使Linux和Windows设备在局域网中互相传输文件与共享打印机。(当然,别傻傻的在国际互联网上暴露你的端口)
steamdeck安装Samba需要启用pacman
吃豆人包管理器。
不建议的安装方式
# 修改用户密码(此处无需使用sudo,需要输入两次。输入过程中不显示)
passwd
# 关闭SteamOS的只读设置
sudo steamos-readonly disable
# 刷新库缓存
sudo pacman -Ssy
# 初始化 pacman 密钥环
sudo pacman-key --init
# 用默认的 Arch Linux 密钥填充 pacman 密钥环
sudo pacman-key --populate archlinux
建议的安装方式
↑↑↑↑↑↑↑↑↑↑终极解决方案↑↑↑↑↑↑↑↑↑↑
启用pacman完成后,安装并启用Samba
# 安装Samba
sudo pacman -S samba
# 使用systemd,让SMB服务实现开机启动
sudo systemctl enable --now smb
# 配置文件
sudo nano /etc/samba/smb.conf
解决SteamOS系统更新造成软件包消失问题的方法
以下是我的配置文件
[global]
workgroup = WORKGROUP
server string = Samba Server
server role = standalone server
[Steam]
path = /home/deck/.local/share/Steam
writable = yes
[homes]
comment = Home Directories
browseable = no
writable = yes
配置完成后,使用systemctl重启smb就完成了
sudo systemctl restart smb
解决新版本SteamOS防火墙导致无法使用的问题
旧版本的SteamOS完成上述步骤之后,使用windows的映射网络驱动器就可以正常访问文件夹与管理文件了。但是新版本的系统(不确定是哪个版本开始的)加入了防火墙。只开放了部分常用端口(比如ssh的22端口),SMB使用的445端口并没有开放。
可能是出于安全性的考虑,因为之前大名鼎鼎的“永恒之蓝”就是使用445端口传播。
发现问题的过程
在我映射网络驱动器失败后,我尝试使用nmap扫描了steamdeck的端口情况
nmap -T4 -A -v steamdeck
# 结果如下
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.3 (protocol 2.0)
| ssh-hostkey:
| 256 35:ba:d3:6f:75:fc:9f:e3:a4:b7:0d:b6:13:aa:56:72 (ECDSA)
|_ 256 e6:df:e5:84:cc:df:fb:12:6c:af:d9:7e:af:74:fd:06 (ED25519)
5357/tcp open http BaseHTTPServer 0.6 (Python 3.11.3)
|_http-server-header: BaseHTTP/0.6 Python/3.11.3
| http-methods:
|_ Supported Methods: POST
|_http-title: Error response
可以确定,确实没有将SMB服务需要的445/TCP映射出来
解决方案1·临时关闭防火墙
这个方法通过临时关闭防火墙(重启后会自动启动)来实现短时间内的访问
sudo systemctl stop firewalld
解决方案2·添加防火墙规则
通过增加防火墙规则,开放445/TCP,可以实现永久的smb访问。但是带来的安全问题需要斟酌。
如果通常来讲是在自己熟悉的网络环境下使用steamdeck,那么添加防火墙规则是一劳永逸的行为。
# 添加开放TCP协议445端口的规则
sudo firewall-cmd --permanent --add-port=445/tcp
# 重启防火墙
sudo systemctl restart firewalld.service
最终效果
再次通过nmap扫描
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.3 (protocol 2.0)
| ssh-hostkey:
| 256 35:ba:d3:6f:75:fc:9f:e3:a4:b7:0d:b6:13:aa:56:72 (ECDSA)
|_ 256 e6:df:e5:84:cc:df:fb:12:6c:af:d9:7e:af:74:fd:06 (ED25519)
445/tcp open netbios-ssn Samba smbd 4.6.2
5357/tcp open http BaseHTTPServer 0.6 (Python 3.11.3)
|_http-server-header: BaseHTTP/0.6 Python/3.11.3
| http-methods:
|_ Supported Methods: POST
|_http-title: Error response
电脑也可以正常映射网络驱动器了~
- 0
- 0
-
赞助
支付宝微信 -
分享