Bilibili Proxy: Exit Scope on the Web and Mobile Clients
You connect to Bilibili from three different surfaces: the browser, the mobile app and the player embedded in third-party pages. A single proxy rule never covers all three equally. This page explains the difference in scope, how your exit address is classified, and how regional licensing restrictions look on the network side.
Three client surfacesThe different proxy scope of the web, the mobile app and the embedded player.
02
Mobile scopeWhat the Wi-Fi proxy setting covers and what it does not.
03
Exit classificationThe picture formed by ASN, IP reputation and CGNAT together.
04
Regional licensingHow distribution rights are enforced at the request level.
Bilibili is a platform that combines long-form video, live streaming and the on-screen scrolling comment layer in the same interface. These three components behave differently on the network side: video downloads segment by segment, live streams arrive as a continuous flow, and the comment layer updates in real time over a long-lived connection.
From a proxy standpoint, this variety raises a direct question of scope. A rule defined in the browser covers most of these components; a rule defined at the operating system level covers more; in the mobile app, scope depends on the app's own preferences and is not always predictable.
The sections below first separate these three surfaces, then cover the classification of the exit address, the request chain, the regional licensing mechanism and the behaviour of persistent connections.
The same account, three different client surfaces
The first surface is the browser. Here everything works predictably: the browser honours the system proxy setting or its own profile setting and sends all requests over that rule. This is the easiest environment for troubleshooting, because with developer tools you can see directly which request goes where.
The second surface is the mobile app. On Android and iOS, the HTTP proxy you write into the Wi-Fi network settings routes requests that go through the system; however, apps that build their own network stack or do not read the system setting can fall outside this rule. The result can be that part of the app exits via the proxy and part of it exits directly. It is not possible to see this from the settings; it can only be understood by measuring.
The third surface is the embedded player. A player placed in a blog post or forum message loads from its own source independently of the page it sits on. If your browser rule covers only certain domains, the embedded player's assets fall outside that scope and the frame appears empty.
Separating these three surfaces resolves most "it works for me but not on the phone" problems at the very first step. Changing settings without testing scope usually turns into looking for the right setting in the wrong place.
DIAGRAMThe three client surfaces a single account connects from
You can scroll the diagram horizontally to inspect it
The same account connects from three different surfaces, and each surface has a different proxy scope. Where you write the rule determines which branch is routed.
Where does the difference in scope between the mobile app and the browser come from?
On desktop browsers, proxy support is standard and all of the application's network traffic passes through that channel. On mobile operating systems the situation is different: the proxy details written into the Wi-Fi settings are offered to the system's shared network layer as a suggestion, and apps are free to use them or not. Apps that use their own connection library can ignore this setting.
The second difference comes from the connection type. The proxy in the Wi-Fi settings applies only to that wireless network. The moment the device switches to cellular data, the rule disappears and traffic exits directly over the operator. Because there is no visible change on screen, users often do not notice this. The setup steps are explained in the Android and iPhone proxy settings articles.
The third difference is protocol support. The mobile Wi-Fi setting typically lets you define an HTTP proxy; defining SOCKS5 is not directly possible on most devices and requires a separate client. Which apps support routing at the application level is applications that support SOCKS5 .
Environment
Traffic covered
Not covered
Browser profile
Only that profile's requests
Other profiles and applications
System-wide setting
Everything that uses the system network layer
Apps that build their own stack
Mobile Wi-Fi setting
System requests on that wireless network
Cellular data, applications that ignore the setting
Router level
Every device on the network
Devices exiting the network
The only reliable way to verify scope is to measure: with the proxy on and off, run the my IP address tool in the mobile browser and compare the two results.
Which signals is your exit address classified by?
Which autonomous system your exit address belongs to is a public record, and the party serving the content matches the request against that record first; the general framework of the definition is set out in the ASN and IP reputation article. On the Bilibili side, the real issue is not the definition but the mixed picture produced by the same account connecting from more than one surface.
Concretely: when you use the mobile app over cellular data, your traffic exits from the operator's ASN; when you connect with the same account from a desktop browser, it exits from the ASN of the proxy you have configured. One of the surfaces is routed, the other is not, and the account appears from two different network types at short intervals. Even if this picture causes no problem, it increases the number of variables when troubleshooting: you cannot tell whether a behaviour stems from the exit type or the client surface. The solution is to decide up front which work runs from which surface and which exit.
The second Bilibili-specific detail is connection lifetime. Watching a live stream means pulling an uninterrupted flow from the same exit address for minutes or even hours; on top of that comes the permanently open comment connection. Unlike short-lived page requests, this leaves long-running, regular traffic from a single address. In a shared pool, the same address also being used for other work at the same time makes the picture denser still; how the pool is designed therefore matters, and the proxy pool with subnet diversity articles explain this side.
The third detail is that the choice of location also determines the exit ASN. When working in the APAC region, choosing a Singapore or Japan exit changes not only the geographical mapping but also what kind of network the address appears to belong to; within the same country a hosting block and a provider block are two entirely different profiles. The practical upshot is this: choosing the exit type suited to the nature of your work from the outset is far more effective than tinkering with settings afterwards.
DIAGRAMThe classification profile of exit types
You can scroll the diagram horizontally to inspect it
The values in the bars are not measurements but representative scores showing where the exit types stand relative to one another.
The request chain: from exit selection to the first segment
A playback request proceeds through three stops. The first stop is determining the exit. With a provider using a gateway architecture, you are given a single set of access details, and which country you exit from is selected via parameters in the username or via a different port. How this architecture works is explained in the gateway architecture article.
The second stop is name resolution, and it is the step most often overlooked. If resolution is done on the client, the domain you are going to is visible to your local resolver and name-based rules on your network remain in force. When you use SOCKS5 and send the destination as a domain name, resolution is done on the exit side. The details of the difference are in the article on where DNS is resolved in SOCKS5, and verification is in the DNS leak test tool.
The third stop is the playback request itself. The TLS handshake completes, the player fetches the manifest file and starts pulling segments. The only address visible on the server side is the proxy exit; on the other hand, which host name the request goes to is visible on the proxy side. How certificate validation works in this chain is explained in the proxies and TLS certificate validation article.
Breaking the chain down this way makes troubleshooting systematic. When you hit a fault, determine which stop you are at: if the exit cannot be established, look at the first; if the domain cannot be resolved, the second; if the connection is established but no content arrives, the third.
DIAGRAMThe three stops of a playback request
You can scroll the diagram horizontally to inspect it
In fault diagnosis, determining which stop you are at gives results far faster than trying settings at random.
Determine your exit type for Bilibili work
A data centre exit is sufficient for verifying publicly accessible pages; for work requiring app traffic and a typical subscriber appearance, a mobile or residential solution is preferred.
Choose whichever you need from our residential proxies, datacenter proxies, IPv6 and ISP solutions. Every plan comes with unlimited options, 99.9% uptime, rotating proxies, sticky sessions and 24/7 support. Ideal for web scraping, ad verification, SEO monitoring and digital data collection.
ISP ProxyStatic Turkish IPs registered to an ISP
ISP-registered static Türkiye IPs; they combine datacenter speed with the reputation of a real carrier. Ideal for long sessions and low-ping use.
Regional licensing and moderation as seen from the network side
A significant portion of the content on Bilibili consists of licensed productions, and those licences carry geographical boundaries. If a production has been released only in certain regions, the server side responds based on the geographical mapping of the address the request comes from. What matters here is not your account's country or your interface language, but which country the exit address maps to.
The second mechanism is content moderation, and it operates at an entirely different layer. Moderation decisions are based on the content itself, the uploading account or the community rules; they have nothing to do with the address the request comes from. So content removed for moderation reasons is not visible from any exit, and a proxy does not change that picture. Confusing the two mechanisms is the most common reason for fruitless attempts.
The third distinction is account-level limits. Some functions may require a verified account; that verification is independent of the exit address. A proxy does not satisfy an account-level requirement, and trying to make it do so is not the right approach.
Warning
Regional distribution restrictions are the technical reflection of copyright and licensing agreements. This page is written to explain how the mechanism works and to support legitimate scenarios such as research, localisation testing and corporate network management. Compliance with the platform's terms of service and applicable legislation is the user's responsibility.
Live streaming and the scrolling comment layer: how persistent connections behave
One of Bilibili's most distinctive features is the comment layer scrolling over the video. This layer does not arrive all at once as the page loads; on recorded videos it is downloaded as a time-stamped data set, while on live streams it flows in real time over a permanently open connection. Persistent connections produce a different behaviour profile on the proxy side.
A long-lived connection is subject to the idle tolerance of every component along the path. When there is a quiet period in the comment flow the connection carries no data, and some configurations consider it abandoned and close it. The symptom is familiar: the video keeps playing but the comments stop, or do not arrive until the page is refreshed. How the protocol is carried over a proxy is covered in the WebSocket and proxies article.
There is a second issue on the live streaming side: because the flow is continuous, bandwidth consumption rises linearly with viewing time. Leaving a long stream open in the background generates many times more traffic than browsing pages for the same period. On a volume-based plan this item needs to be accounted for in advance; for the method, see the bandwidth calculation article.
Note
When the comment layer stops, the first thing to check is not the proxy but whether the connection is still open. Seeing the state of the long-lived connection in the browser's network tab gives results faster than hours of trying settings.
Setup: desktop, browser profile and mobile
Desktop and browser
If you are going to use a different exit for one specific task only, a separate browser profile is the route with the fewest side effects. If it needs to cover all applications, an operating system setting is required; for the steps, follow the Windows 11 and macOS proxy settings articles. The connection details consist of the same four fields in every setup:
Field
Example
Note
The server sends
proxy.example.com
Gateway address
Port
8080
Varies by protocol
Username
username
Country and session parameters can be carried here
Password
password
Renewed from the panel
The values are only to show the format; your real access details are in your customer panel.
Mobile
Define an HTTP proxy in the Wi-Fi network settings, then verify your exit in the mobile browser. Do not assume that traffic inside the app is routed too; you can only tell that by observing the app's behaviour or looking at the network level. If you want to route all devices on the home network from a single point, a proxy on the router is an alternative setup.
Choosing the exit type
A datacenter proxy is sufficient for verifying how publicly accessible pages appear. If you need a stable and fast exit, an ISP proxy is suitable; if you need a typical subscriber appearance, a residential proxy; if you need to route app traffic out over an operator network, a mobile proxy.
Verification and common symptoms
Set verification up as a comparison, not as a one-off measurement. In the mobile browser, first run the My IP address tool with the proxy off and note the result, then enable the rule in the Wi-Fi settings and repeat the same measurement. If the two values are the same, the rule is not being applied at all and there is no point running the subsequent tests. If the value has changed, repeat the same on/off comparison with the DNS leak test: if name resolution still falls to your operator's resolver, the scope is incomplete. On the desktop side, the WebRTC leak test shows whether the browser reports your real address over another interface, and the anonymity test shows which headers the proxy adds to the request.
Symptom
On which surface
The download starts and then stops
Works in the browser, not in the app
Mobile app
Repeat the same measurement in the mobile browser; if the browser shows the correct exit, it is the app that is ignoring the setting
The embedded player shows an empty frame
Third-party page
Open the frame's source request in the network tab and check whether it goes through the proxy
The scrolling comments stop after a while
Long-lived connection
Check whether the connection is still open, then measure the idle tolerance
The video starts but pauses frequently
Exit capacity
Measure with the proxy checker tool and compare with a second location
The interface opens with an unexpected region setting
Geographical mapping
Verify the exit country and reselect the location from the list
The exit changes when switching to mobile data
Connection type
This is expected behaviour; confirm that the Wi-Fi rule does not cover the cellular connection
Set your latency expectation correctly too. Because a hop is added along the way, total round-trip time generally increases. How to interpret the measurement is explained in the article on what proxy latency is; for comparison you can use the ping test tool.
Compliance, boundaries and cases where a proxy is not needed
If you are watching normally from your own region on your own connection, there is nothing to gain by adding a proxy. In Bilibili's case one further caveat should be added: the scope problem this page has described throughout makes it hard to measure the result of a setup. You cannot read from the settings screen whether the mobile app's traffic is actually being routed; a setup you assume is routed may in practice be changing nothing. Bringing in a layer whose scope you cannot measure does not solve the problem, it only increases the number of variables. So it is healthier to keep the setup decision limited to a surface you can measure.
The legitimate and common scenarios are these: a localisation team checking how the interface appears in different regions, examining publicly accessible data for academic or market research, working from a corporate network with a fixed address, and a content publisher testing its own distribution configuration. For similar setups you can look at the web scraping proxy and social media management pages. Regional exit options, meanwhile, are concentrated in APAC locations such as Singapore and Japan.
Finally, let two boundaries be clear. Unvetted free exits are not used for work that requires reproducible measurement: there is no guarantee the same address will still work the next day, and the result of a localisation test only means something if it can be repeated. The details of this topic are in the article on the difference between free and paid proxies. Second, a proxy does not change the rules governing an account or a piece of content: platform policies, copyright limits and local legislation apply regardless of proxy use.
Questions about using a Bilibili proxy
01Why does a setting that works in the browser not work in the mobile app?
A proxy written into the Wi-Fi settings is offered to the system's shared network layer as a suggestion, and apps are free to use it or not. An app that sets up its own connection library can ignore the setting. Also, when the device switches to cellular data the Wi-Fi rule disappears entirely.
02The embedded player shows an empty frame. What is the cause?
An embedded player loads from its own source independently of the page it sits on. If your browser rule covers only certain domains, the player's assets fall outside that scope. Broadening the rule to cover all subdomains resolves it.
03Why do the scrolling comments stop after a while?
The comment layer flows over a long-lived connection in live content. During quiet periods the connection carries no data, so a component along the path may consider it abandoned and close it. First check whether the connection is still open, then look at the idle tolerance.
04Are a regional restriction and a moderation decision the same thing?
No, they operate at different layers. A regional restriction looks at the geographical mapping of the address the request comes from. A moderation decision is based on the content, the uploading account and the community rules; it has nothing to do with the exit address and gives the same result from every exit.
05Which exit type is suitable for Bilibili?
It depends on the work you are doing. A datacenter proxy is sufficient for verifying how publicly accessible pages appear. If you need a stable and fast exit, an ISP proxy is preferred; if you need a typical subscriber appearance, a residential proxy.
06Does using a proxy reduce viewing latency?
It does not. Because you add an extra hop to the traffic, total round-trip time generally increases. The only exception is the rare case where the default path is unusually circuitous, and that is not a rule. The gain is not in speed but in being able to control which region you are viewing from.
07Is a CGNAT exit an advantage or a disadvantage for me?
It depends on the context. Behind a public address under CGNAT there are many real subscribers, so the address does not point to a single person. On the other hand, the same address is shared: another user's behaviour in the pool can affect you too, and when the operator renews the address a long-lived streaming connection can drop. The mechanism is explained in the article on what CGNAT is.
08Can I do this work with a free exit?
You can try it for a one-off appearance check, but it is not suitable for logged-in or repeated work. It is unknown who operates the server, connections drop frequently, and your measurements will not be reproducible. For the conceptual framework, see the free proxy page.