What Is a Subscription Link for VPN Nodes? A Complete Guide to Fanqiang Configuration
A subscription link for VPN nodes is a single HTTP/HTTPS URL that points to a remotely hosted file containing encoded proxy server configurations, allowing clients like Clash, V2ray, and ShadowsocksR to automatically import and update node lists.
In the bannedbook/fanqiang repository—a curated collection of circumvention tools and tutorials—the subscription link serves as the bridge between commercial VPN services (called "airports") and open-source client applications. This article explains the technical structure of these links, how they function within the fanqiang ecosystem, and the exact steps to configure them across Windows, macOS, iOS, and router platforms.
What Is a Subscription Link?
A subscription link (also called a subscription URL or subscription address) is a web address that returns a text file containing one or more VPN node configurations. According to the repository's documentation in docs/vsp.py, these files typically contain Base64-encoded JSON or YAML structures for clients like Clash, or plain lists of vmess://, ss://, or ssr:// URLs for V2Ray and Shadowsocks implementations.
When a client application accesses this URL, it performs three operations automatically:
- Downloads the remote configuration file over HTTPS
- Decodes the Base64 or parses the JSON/YAML payload
- Populates the internal server list with the extracted node credentials
This architecture allows service providers to rotate server IP addresses, update encryption keys, or add new regions without requiring users to manually reconfigure each node.
How Subscription Links Work in the Fanqiang Repository
The fanqiang repository treats subscription links as the primary method for obtaining working proxy nodes. The typical workflow documented across multiple files follows this pattern:
- Registration: Create an account at a VPN service provider (specifically V2free or similar airports mentioned in the documentation)
- Extraction: Copy the subscription link from the user center dashboard (usually labeled as "Clash Subscription URL" or "V2Ray Subscription")
- Integration: Paste the URL into the client's subscription settings
- Synchronization: Trigger a manual or automatic refresh to fetch the latest node list
The repository's main README.md explicitly warns that the subscription link is as sensitive as a password because it contains encoded credentials for all active nodes. Exposure of this link could allow unauthorized parties to consume bandwidth or compromise account security.
Adding a Subscription Link to VPN Clients
The fanqiang repository provides platform-specific instructions for importing subscription links. Below are the documented methods for major clients.
Clash (Windows and macOS)
For Clash users, the subscription management is handled through the GUI's subscription settings:
# In the Clash client interface:
# 1. Navigate to "Subscription Settings" → "Add"
# 2. Paste the subscription link into the URL field
# 3. Click "Subscribe" or "Update" to fetch nodes
# 4. The UI will display imported servers in the Proxies section
The repository file windows/V2RayN.md and related Clash documentation confirm that Clash expects either YAML configurations or Base64-encoded proxy lists at the subscription endpoint.
V2rayX and V2rayU (macOS)
V2rayX supports subscription links through its configuration panel. As documented in macos/V2rayX.md:
1. Open V2rayX → Configure → "订阅方式" (Subscription Method)
2. Paste the subscription link into the "Enter your subscription link here" field
3. Click "Finish", then click "Update subscription" to fetch the node list
For V2rayU (documented in macos/V2RayU.md), the process is similar:
1. Open V2rayU → "订阅设置" (Subscription Settings)
2. Paste the link into the "地址" (Address) textbox and click "添加" (Add)
3. Click "更新" (Update) to download and parse the node list
ShadowsocksR (Windows)
The ShadowsocksR client handles subscriptions through its server subscription menu. According to windows/ShadowsocksR.md:
1. Right-click the SSR tray icon → 服务器订阅 (Server Subscription) → SSR服务器订阅设置
2. Click "Add", paste the subscription URL, and confirm
3. Right-click → 服务器订阅 → 更新SSR服务器订阅 (不通过代理) to refresh without using proxy
OpenWrt Routers
For network-wide VPN coverage, the repository documents router configuration in router/OpenWRT.md. OpenWrt accepts subscription URLs directly in the web interface:
# In the OpenWrt Web UI:
# 1. Navigate to Network → VPN → "订阅 URL" (Subscription URL) field
# 2. Paste the subscription link
# 3. Click "保存 & 应用" (Save & Apply)
# The router fetches the node list and exposes proxy options to LAN devices
Surge (iOS and macOS)
Surge users can import configurations via URL as shown in macos/Surge.md:
1. Open Surge → "安装 from URL" (Install from URL)
2. Paste the subscription link
3. Confirm to allow Surge to download the configuration and list available nodes
The repository also notes that ios/Shadowrocket.md follows a similar import-from-URL pattern for iOS devices.
Security Considerations
The fanqiang repository emphasizes several security practices regarding subscription links:
- Treat as credentials: Store subscription links in encrypted notes or password managers, not plain text files
- HTTPS only: Verify that the subscription URL uses HTTPS to prevent man-in-the-middle attacks during the initial fetch
- Regular rotation: Refresh subscriptions periodically to receive updated encryption keys and server addresses
- Access control: If a subscription link is accidentally shared, regenerate it immediately through the机场 (airport) dashboard, as the link grants access to all associated nodes
Summary
- A subscription link for VPN nodes is a URL returning encoded proxy configurations (Base64 JSON/YAML or URL lists) that clients automatically parse.
- The bannedbook/fanqiang repository documents subscription integration for Clash, V2rayX/U, ShadowsocksR, Surge, and OpenWrt routers.
- V2free and similar机场 services provide these links after registration; they function as passwords for node access.
- Clients fetch the remote file, decode the payload, and populate server lists without manual entry of individual
vmess://orss://strings. - Security requires treating subscription URLs as sensitive credentials and ensuring HTTPS transport.
Frequently Asked Questions
Where do I get a subscription link for VPN nodes?
You obtain a subscription link by registering at a VPN service provider (airport) such as V2free, which is referenced throughout the fanqiang repository documentation. After creating an account and logging into the user center, the dashboard displays a "Clash Subscription URL" or "V2Ray Subscription" field containing your unique link.
Is a subscription link safe to share?
No. According to the repository's main README.md, a subscription link is as sensitive as a password because it contains encoded access credentials for all active VPN nodes. Sharing the link could allow unauthorized users to consume your bandwidth quota or compromise your connection security. If exposed, regenerate the link immediately through your service provider's dashboard.
What formats do subscription links return?
Subscription links typically return Base64-encoded text containing either JSON/YAML configurations (for Clash) or newline-separated lists of protocol-specific URLs like vmess://, ss://, or ssr:// (for V2Ray and Shadowsocks clients). The fanqiang repository notes in docs/vsp.py that the encoding ensures safe transmission of special characters in server credentials over HTTP.
How often should I update my subscription link?
You should refresh your subscription whenever the client interface indicates outdated nodes or connection failures. Most clients documented in the repository—including V2rayU, Clash, and ShadowsocksR—provide an "Update Subscription" button that re-fetches the URL to retrieve the latest server list, encryption keys, and IP addresses rotated by the service provider.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →