因为 Windows 平台上的 SMB 实现(服务端和客户端)硬编码了它的端口号 137-139 (基于 NetBIOS )或 445,你用非标准的端口提供 SMB 共享是无法被 Windows 找到的,所以为了适配 Windows 以及一众其他 SMB 客户端,必须使用这些“标准”端口号。
而在安卓上,必须拥有 root 权限才可以开启(监听)小于 1024 的端口。。。
1
huaxianyan 2019-07-05 09:22:44 +08:00
好像是 SELinux 干的
|
2
Nitroethane 2019-07-05 09:26:29 +08:00 via Android
@huaxianyan 监听小于 1024 端口需要 root 权限是 Linux 本来就有的,不是因为 SELinux
|
3
wly19960911 2019-07-05 09:30:38 +08:00 via Android
SMB 对 CPU 负担大速度太慢了…就算可以我也不用。
SMB 看视频只有 30mb/s 不到的速度,DLNA 不说了。845 的 CPU 总不能说我性能不够主流吧… |
4
internelp 2019-07-05 09:34:33 +08:00
有客户端就不错了,好多还没有呢。
|
5
leavic 2019-07-05 09:38:23 +08:00 1
同样的问题,适用于为什么安卓没有 smtp 服务器,Pop 服务器,ftp 服务器。。。。。
|
6
talentl 2019-07-05 09:41:33 +08:00
这个设置是出于什么考虑呢?
‘而在安卓上,必须拥有 root 权限才可以开启(监听)小于 1024 的端口’ |
7
7654 2019-07-05 09:48:59 +08:00
搭车求安卓 SMBv3 客户端
|
8
jasonyang9 OP @leavic #5
FTP 服务器有的啊,SwiFTP,开源的( PS. 被小米集成到它的文件管理器中去了,你开启远程文件管理然后用 FTP 客户端去连接,可以看到欢迎信息就是 SwiFTP )。因为 FTP 服务器和客户端都可以方便的设定端口。我经常手机上开 FTP 然后用 Filezilla 去访问。 其他服务器的也适用上面的,但没研究过。 大佬们有替代方案么,主要是跨平台共享文件。我看了 WebDAV,它默认 8080 口? |
9
est 2019-07-05 09:49:33 +08:00 1
setcap 'cap_net_bind_service=+ep' /path/to/program
这样就不需要 root 了。 |
10
mgrddsj 2019-07-05 09:53:32 +08:00 via Android 1
有一个软件叫 Servers Ultimate,里面有几乎所有类型的服务器。当然,有些服务器(比如 SMB )是要 root 才可以用
|
11
jy02201949 2019-07-05 10:27:31 +08:00
即使连上了,但 SMB 在安卓上真心不好用
|
12
zpf124 2019-07-05 10:35:07 +08:00 1
@talentl
这个问题来自于 linux 而不是 安卓. 1024 以内的端口 一般都是某个重要服务使用的协议所使用了. 例如 ssh 默认 22 http 默认 80. linux 更多时候是用于当服务器,并且还是多人多账户同时使用的. 为了避免某个低级别的用户自己瞎乱监听端口而导致某些基础功能服务不能使用, linux 要求你必须是管理员才能监听 1024 以内的端口. 而安卓的使用者只有一个普通用户, 管理员用户 和 root 用户都是默认关闭,不允许使用者接触的. |
13
deorth 2019-07-05 10:51:20 +08:00
root 了,常年在 chroot 里跑一堆服务
|
14
joyhub2140 2019-07-05 10:56:17 +08:00
别说 smb 服务器了,android 上面一个好用的 smb 客户端也不错,特别是专心做 smb 的纯净软件,几乎找不到,最后只能将就用老版本的 ES 文件浏览器,不过随着系统版本的更新,这招也不太管用了。
|
15
shily 2019-07-05 11:03:11 +08:00
@7654 根本没有 SMBv3,你当然找不到了。v3 是扩充了 v2 的协议,提供了一些附加的功能,普通人根本用不上。目前主流的开源实现都已经支持了 v3,虽说客户端其实是支持的,但这些功能太小众,没有在界面上提供相应的功能而已。刻意的最求大版本号无意义。
你有啥需要是 v2 没有提供的吗? 楼主这是强行解释,非标端口又不是不能用。使用 NsdManager 广播一下协议和端口,一样可以在 Windows 上链接。 |
16
AllenW 2019-07-05 11:20:06 +08:00
我就想知道 smb 好用的客户端 除了 es 还有啥
|
17
BinRelay 2019-07-05 11:22:39 +08:00
我一直没理解为什么 smb 不能修改端口。而且 tm 漏洞还巨多。
|
18
jasonyang9 OP |
19
mxalbert1996 2019-07-05 11:55:30 +08:00 via Android
@AllenW 免费的小米文件管理器,收费的 Solid Explorer,都在 Play 商店里有
|
20
Maskeney 2019-07-06 03:00:23 +08:00 via Android
@joyhub2140 solid explorer 了解一下?
|
21
slanternsw 2019-07-06 20:11:52 +08:00 via Android
@AllenW MiXplorer + 插件
|
22
jasonyang9 OP 今天找到一个功能比较完善的 SMB 服务器和客户端(安卓),叫 LAN drive。
当然,同样的,它在未 root 的机子上只能使用 1024 及以上端口。所以对于 Windows 来说,要充当一个客户端去连接它,必须进行端口转换。为此这软件还专门写了一篇教程,洋洋洒洒一大段都是为 Windows 能连上它( PS. MAC 和 Linux 没有任何问题,因为可自定义端口)。 https://tubecast.webrox.fr/landrive/portmapping.html 也真是醉了。。 |
23
StellaM 2020-08-17 09:37:31 +08:00 via iPad
请问楼主还有发现别的好用的 SMB 服务器软件么?
|
24
wanj8 2020-09-18 11:35:42 +08:00 1
@slanternsw Mixplore 的 smb 就是个残废,同样 smbv2 无线传输只能跑到 20MB/s+,x-plore 40MB/s+
|
25
ashuai 2021-02-15 14:36:28 +08:00
@jasonyang9 请问楼主,教程能放出来学习下吗
|