On Thu, 17 Apr 2025 16:17:45 -0000 (UTC), badgolferman wrote :
Currently there is a disagreement between me and the Apple trolls.
I'm not sure if this is helpful or harmful�K.
https://support.apple.com/en-us/103229
Thanks. I appreciate you looking. I posted that same link a while
ago but it doesn't really tell us explicitly what we want to know.
To test what we want to know, I just spent the energy making the
connection from Windows and copying files and then debugging
which port was used.
Even though I couldn't explicitly set the port to 445, my debugging
results show unequivocally that Chris & Tyrone were right. I'm sure
that Jolly Roger is also right but he never added any value.
Chris did work. He added value. He deserves both thanks & an apology.
Likewise with Tyrone. He did work too. Hence he added value and hence he
also deserves a thank you and an apology.
I was wrong about iOS not allowing apps to bind to ports <1024.
My tests below prove that the LAN drive app (which has been on my
iPad since I first tested it in 2019) did indeed bind to port 445.
Just like Chris said it did from the very beginning.
And just like Tyrone said it did from the very beginning.
Both of whom I believe tested it themselves before saying that.
Very clearly I am stating these two very clear unequivocal statements:
1. I apologize for not believing Chris & Tyrone & Jolly Roger.
2. Because what I said about the ports (even those I always said
it was "as far as I know" or "as far as I understand it" or
"as far as I can tell", etc., simply happened to be wrong.
Period.
FACT:
*Apple iOS 16 apps apparently can bind to the privileged port 445.*
ASSESSMENT (of that fact):
This makes bidirectional transfer FROM the PC command line easy!
Thanks everyone for answering the question of how it works with iOS.
See below for the gory details backing up my strong statements above.
On Fri, 18 Apr 2025 00:34:58 -0000 (UTC), Marion wrote :
I'll profusely and publicly thank you later as I still need to figure out
what port it used, as this doesn't prove that it used ports below 1024.
But when I specify the port, that will tell us the answer.
In the meantime, do you know why the iOS drives don't show up as mounted?
OK. I finished a few of the Amazon Vine free product reviews.
I rebooted Windows and the iPad to start fresh.
1. On Windows, determine that nothing is mapped yet.
net use
2. On iOS, press "Not Now" to Apple's incessant nags
to log into the Cupertino servers every second.
3. Keep Pressing more "Not Now" bags until Apple gets tired
since it's a fact of life that's how Apple designed iOS
that you *must* constantly log into Cupertino servers.
4. Open the "LAN drive" app on your iOS desktop
5. Note the (dynamic) identifying information you'll need for later
Server \myipad
IP \192.168.1.252
SMB TCP 445
NETBIOS UDP 137 138
5. Note the "Users" are "Anonymous" in "LAN drive" on iOS
6. Note the "Sharings" are "LANdrive" & "DCIM" on iOS
7. Press the green "START" button on the iOS "Lan drive" GUI
8. On Windows, type the connection command with the port specified
net use Z: \192.168.1.252:445\LANdrive
System error 67 has occurred.
The network name cannot be found.
9. Don't specify port 445 this time
net use Z: \192.168.1.252\LANdrive
The command completed successfully.
10. Try it again on the other share.
net use Y: \192.168.1.252:445\DCIM
System error 67 has occurred.
The network name cannot be found.
11. Try it again without specifying the port.
net use Y: \192.168.1.252\DCIM
The command completed successfully.
12. Notice they're now both mapped, but not to port 445.
C:\Windows\system32>net use
New connections will not be remembered.
Status Local Remote Network
----------------------------------------------------------------
OK Y: \192.168.1.252\DCIM Microsoft Windows
Network
OK Z: \192.168.1.252\LANdrive Microsoft Windows
Network
The command completed successfully.
Hmm... just as I had figured would happen.
Now we have to figure out what port it's using.
I'm not gonna use Wireshark because I've been there, done that.
Too much data to filter (if you don't know what I mean,
you've never used Wiresharp to capture pcap data).
[Filter=tcp.dstport == 445 or tcp.dst == 192.168.1.252]
I can use Resmon though.
a. Win+R > resmon
b. Tap the "Network" tab
c. Open "TCP Connections"
d. net use * /delete
e. This reports:
Image = System
PID = 4
Local Address = 192.168.1.239
Local Port = 31246
Remote Address = 192.168.1.252
Remote Port = 445
Packet Loss (%) = 0
Latency (ms) = 105
Bingo!
This indicates that even though explicitly specifying port 445 in the
net use command failed, the successful connection without specifying
the port is indeed using port 445! Woo hoo! This is great news!
Let's check this with netstat:
a. Win+R > cmd > {ctrl+shft+enter}
b. netstat -ano | findstr "ESTABLISHED"
C:\Windows\system32>netstat -ano | findstr "ESTABLISHED"
TCP 192.168.1.239:31246 192.168.1.252:445 ESTABLISHED 4
This line shows an established TCP connection between
the PC (192.168.1.239 on local port 31246)
and the iOS server 192.168.1.252 on port 445.
The PID 4 is usually associated with the System process,
which handles various low-level network functions like SMB.
Let's try PowerShell.
a. Win+R > cmd > {ctrl+shft+enter}
b. C:\Windows\system32> powershell
c. Test-NetConnection -ComputerName 192.168.1.252 -Port 445
d. The results (after a bit of a wait) are...
ComputerName : 192.168.1.252
RemoteAddress : 192.168.1.252
RemotePort : 445
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.1.239
TcpTestSucceeded : True
Hmm.. so why didn't specifying the port work?
C:\Windows\system32>net use Y: \192.168.1.252\DCIM
The command completed successfully.
C:\Windows\system32>net use Y: /delete
Y: was deleted successfully.
C:\Windows\system32>net use Y: \192.168.1.252:139\DCIM
System error 67 has occurred.
The network name cannot be found.
C:\Windows\system32>net use Y: \192.168.1.252\DCIM
The command completed successfully.
Anyway, even though I can't get the Windows 10 "net use"
command to specify the port explicitly, I'm satisfied
(and quite surprised!) that the debugging tools showed
that, indeed Chris, Tyrone & even Jolly Roger were
quite correct that iOS is allowing the LAN drive
freeware to bind to ports below 1024, specifically 445.
There is no doubt of that conclusion in my mind at this
point since I tested it and explicitly ran debuggers.
I publicly and humbly apologize to Chris, Tyrone, and
to Jolly Roger for not believing them up until I tested it
myself and found that I was wrong and they were right.
I have no problem saying I'm wrong because I learned
that iOS is uniquely different from Android in that
iOS does apparently allow 3rd-party apps to bind to
privileged ports. Of that there seems to be no doubt.
Note this XDA Developers thread which is about the
same app for Android, but I don't need to test it
because I know Android can't bind to ports below 1024.
<
https://xdaforums.com/t/app-4-0-3-no-root-lan-drive-samba-filesharing-server-smb1-and-smb2.3790945/>
Here's my post asking the developers the question (with screenshots).
<
https://xdaforums.com/t/app-4-0-3-no-root-lan-drive-samba-filesharing-server-smb1-and-smb2.3790945/post-90056889>
"On non-rooted Android, the "Lan Drive - SMB Server" APK won't
be able to bind to ports lower than 1024. I knew that.
But the iOS "Lan Drive - SMB Server" documentation above implies
that the iOS "Lan Drive - SMB Server" IPA can bind to ports lower
than 1024 on non-jailbroken iOS devices.
Huh?
How is that possible?
Can iOS 3rd-party apps like this 'Lan Drive - SMB Server' really
bind to privileged ports (such as 445 & 139)?"
Anyone can click the URL to see if the developer responds; if the developer
does respond, we can also repeat the result here for all to see.
But in reality, Android works perfectly with Windows already,
as I mount Android as a drive letter on Windows every day
using free WebDAV servers, so there's no need for SMB.
There are free iOS webdav servers though, which I haven't tried.
iOS WebDAV Servers (free)
1. WebDAV Navigator:
<
https://apps.apple.com/us/app/webdav-navigator/id382551345>
2. FileBrowser: Documents Manager:
<
https://apps.apple.com/us/app/filebrowser-documents-manager/id364738545>
Note that there are also free SMB servers (all with caveats!)
Free iOS SMB servers
1. LAN Drive �V SAMBA Server & Client (free has ads & is limited to 0.5
Mbps)
SMB1 and SMB2 protocols (not SMBv3).
<
https://apps.apple.com/us/app/lan-drive-samba-server-client/id1317727404>
2. SMB Server (only SMB1)
<
https://apps.apple.com/us/app/smb-server/id1019465487>
That's it. The rest are SMB clients or payware.
a. FileBrowserGo (does not offer full SMB funcdtionality)
https://apps.apple.com/us/app/filebrowsergo/id1243270214b. Documents by Readdle (limited smb funcdtionality)
https://apps.apple.com/us/app/documents-file-manager-docs/id364901807c. FE File Explorer (Free Version, limited & has ads, not an smb server)
https://apps.apple.com/us/app/fe-file-explorer/id499298382d. Solid Explorer by Sonya Long (not the same as Android's by NeatBytes)
Free iOS SMB servers
1. LAN Drive �V SAMBA Server & Client (free has ads & is limited to 0.5
Mbps)
SMB1 and SMB2 protocols (not SMBv3).
<
https://apps.apple.com/us/app/lan-drive-samba-server-client/id1317727404>
2. SMB Server (only SMB1)
<
https://apps.apple.com/us/app/smb-server/id1019465487>
That's it. The rest are SMB clients or payware.
a. FileBrowserGo (does not offer full SMB funcdtionality)
https://apps.apple.com/us/app/filebrowsergo/id1243270214b. Documents by Readdle (limited smb funcdtionality)
https://apps.apple.com/us/app/documents-file-manager-docs/id364901807c. FE File Explorer (Free Version, limited & has ads, not an smb server)
https://apps.apple.com/us/app/fe-file-explorer/id499298382Be careful with this imposter app which Apple shouldn't have allowed.
Solid Explorer by Sonya Long (not the same as Android's by NeatBytes)
Does not support SMB
<
https://apps.apple.com/us/app/solid-explorer/id1219634272>
This supposedly works, but it's not free:
"FileBrowser Professional": This app is often mentioned for its file
sharing capabilities, including SMB. It's a paid app, and its developers
claim it offers robust SMB support.
<
https://apps.apple.com/us/app/filebrowser-professional/id854618029>
In summary, when I had opened this thread, I had asked how
non-rooted Android and non-jailbroken iOS SMB server apps
mapped their ports, and it appears that while Android apps
can not map to ports below 1024, apparently iOS apps can.
Who knew?
Not me.
I've never said I'm a networking expert (because I'm not).
So today I learned from others like Chris & Tyrone & Jolly Roger
who knew more than I did in this situation - which is great.
I love to learn.
I was wrong. But what's important is now I know the answer.
Thanks!
The main open question is why doesn't specifying the ports
in the Windows "net use" command work? Anyone have an idea?
Does it work for you?
Maybe it's just me?