Our utility depends closely on TCP/IP communication within the native community. Due to this fact, the applying begins a server socket and accepts incoming connections. This labored flawlessly for a very long time and we had no issues with this.
Within the final days nonetheless, we noticed that for some “server iPhones” different units can not hook up with the server socket of our app. The server doesn’t settle for incoming connections and the consumer instances out.
The server and the consumer are in the identical community with 192.168.1.0
tackle vary and 255.255.255.0
subnet masks. The server has the IP 192.168.1.11
and the consumer has 192.168.1.22
. This can be a regular house WIFI community with no particular firewall guidelines. Each units have cellular knowledge disabled and the “entry native community” permission is granted. The server socket is sure to all interfaces (0.0.0.0
).
When the server iPhone is on this defective state, it looks as if it by some means has two ip addresses:192.168.2.123
and 192.168.1.11
The WIFI preferences report the .1.11
ip tackle. The Apps nonetheless see the .2.123
ip tackle. I can not clarify the place the opposite ip tackle comes from and why the machine thinks it has this ip tackle.
I’ve collected interface analysis info on a defective iPhone and it listed the next interfaces:
en0
->192.168.2.123
lo0
->127.0.0.1
pdp_ip0
(mobile) ->192.0.0.2
pdp_ip1
topdp_ip6
(mobile) ->-/-
ipsec0
toipsec6
(vpn) ->-/-
llw0
(vpn) ->-/-
awdl0
->-/-
anpi0
->-/-
ap1
->-/-
XHC0
->-/-
en1
anden2
(wired) ->-/-
utun0
toutun2
(vpn) ->-/-
The right ip of the machine is not listed wherever on this record.
A reboot helped to quickly repair this downside. One person reported the identical difficulty once more a couple of hours later after a reboot. Switching off wifi and reconnecting doesn’t remedy the issue.
This difficulty occured on a number of iPhones with the next specs:
- iOS Model 18.1.1, 18.3.1
- iPhone 13 Professional, iPhone 13 Professional Max, iPhone 15 Professional
The issue should be on the server aspect because the consumer can efficiently hook up with another machine in the identical community.
Be aware: The app is programmed in flutter however I think a common OS downside/configuration because the analysis info was collected with a local iOS app. Due to this fact, I additionally don’t suppose that sharing code is useful on this case.
Query(s)
- The place does this second IP come from and why does the server not settle for connections to both ip despite the fact that it’s sure to
0.0.0.0
? - Are there any iOS system settings which may result in this downside? (privateness setting, vpn, …)
- What might be completed to completely repair this difficulty?