Some UDP traffic appear to be able to escape the VPN tunnel on iOS
See original GitHub issueDescribe the bug Some UDP traffic can’t be tunneling on iOS even though the server has UDP support.
To Reproduce Steps to reproduce the behavior:
- Start a
go-shadowsocks2
server with command:
# By default has UDP support
go-shadowsocks2 -s 'ss://AES-256-CFB:my-password@:8486' -verbose
- Connect Outline iOS App with the corresponding ss key.
- Open WeChat App, choose a contact and start a
Video Call
. (It seems that WeChat uses UDP for real-time video streaming)
Expected behavior All UDP traffic are tunneling to the server as long as the server has UDP support.
Screenshots Here are some Wireshark screenshots I captured during the test. 192.168.137.20 is the IP address of my iOS phone, 35.220.206.186 is the IP address of my proxy server. 203.205.208.74 appears to be one of the IP address of WeChat servers.
I am using a USB WiFi Adapter on a Windows system which runs inside a VirtualBox machine that hosted on macOS. And my phone is connected to this WiFi in order to capture traffic via Wireshark.
Smartphone (please complete the following information):
- Device: iPhone XR
- OS: iOS 12.1.4
- Outline Version: 1.2.6
Issue Analytics
- State:
- Created 5 years ago
- Comments:6 (2 by maintainers)
Top Results From Across the Web
I found that some UDP packets did
As an iOS developer, I am developing a VPN app. I found that the UDP packets of some apps did not enter the...
Read more >Testing UDP works over a VPN via console?
From my Cisco 877 and 1841 with ADSL consoles, how can I test that a UDP port is able to reach a remote...
Read more >VPNs on iOS are a scam - Michael Horowitz
The nature of the bug is that the VPN tunnel does not assimilate all the bits. Some escape. The Borg would not be...
Read more >Use the macOS or iOS Native IPSec VPN Client
Apple iOS devices (iPhone, iPad, and iPod Touch) and macOS 10.6 and higher devices include a native Cisco IPSec VPN client. You can...
Read more >IPsec (Internet Protocol Security)
Before we can protect any IP packets, we need two IPsec peers that build the IPsec tunnel. To establish an IPsec tunnel, we...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@joeysino, @studentmain, in Android we use a whitelist model (due to the VPN APIs), meaning that
203.128.0.0/9
is routed through the VPN. The iOS bypass subnets use a blacklist model.@noeruh, we’re still trying to recreate your setup to reproduce this issue. I also suspect this could be related to bypassing reserved subnets.
I find out that only
203.0.113.0/24
should be reserved, according to: https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml