Get connected to the cross-border network in three minutes
Pick your device and follow the steps. Once you sign in, importing and connecting is a one-tap process on the "Connection Info" page.
🍎 iPhone / iPad
1
Install the client
Search the App Store for "Cisco Secure Client" and install it (available in China).
2
Enable External Control · required
Open Cisco → Settings → "External Control" → set it to "Enabled". Skip this and the one-tap certificate import silently fails! One-time setup.
3
Register & sign in
Register with your email (you'll automatically get 24 hours free), then sign in here.
4
Create the connection first
Open the "Connection Info" page and, as prompted, first create a new connection in Secure Client; when iOS asks to allow the configuration, approve it and enter your device passcode (not your account password).
5
Then import the certificate
Back on "Connection Info", tap "One-tap import" to finish the import (nothing happens? External Control is probably off); keep the connection Certificate on Automatic or pick the one you imported.
6
Connect
Flip the switch in Secure Client. If the first attempt fails, that is normal — tap it once more and it connects password-free; an "Untrusted Server" prompt is expected, just tap Continue.
⚠️ On iPhone, always create the connection first, then import the certificate; the wrong order triggers an import-failed error — a known iOS requirement.
🤖 Android
1
Install the client
Download "Cisco Secure Client" from the Connection Info page / Download Center (Google Play is often unreachable in mainland China — use our download). If Android warns about "unknown sources", allow this source. For permanent password-free use, or if Cisco will not install, switch to OpenConnect on the same page.
2
Enable External Control · required
Open Cisco → menu / Settings → "External Control" → set it to "Enabled". It is off by default, and without it tapping a line on the website does nothing at all — the number-one Android pitfall. One-time setup.
3
Sign up and sign in
Register with your email (24 hours free) and sign in here.
4
Tap a line to connect
Back on the "Connection Info" page, just tap the line you want → Cisco launches with your username and password filled in automatically; approve the first-time connection prompt and you are online (Android always uses Global).
5
Dropping after a while?
On Chinese-brand phones, exempt Cisco from battery optimization / allow background running; on Samsung turn off "Smart network switch" — otherwise it drops once the screen is off.
6
Cannot connect? Check this first
Do you still have another acceleration app running? Quit it completely (not just "disconnect" — close it from the background). Android allows only one such app at a time, and it hijacks name resolution so the connection fails instantly.
🪟 Windows
1
Install the client
From the Connection Info page / Download Center get AnyLink (account & password, fastest to set up) or Cisco Secure Client (certificate, password-free); OpenConnect-GUI is also available.
2
Sign in for the details
Sign in here, open "Connection Info", pick Global / PAC, and copy both the server address and the Secret.
3
Create the connection · four fields
In AnyLink fill in, in order: Host (server address), Secret, Username (email) and Password (connection password). ⚠️ The Secret is required — leave it out and the connection fails; this is the number-one desktop pitfall.
4
Connect
Click connect. AnyLink remembers the password, so later reconnects are one click.
5
Want it password-free?
Use Cisco Secure Client instead: on "Connection Info" expand "Advanced · certificate" and download the .p12 → double-click to import (store location "Current User", certificate store "Personal"; just press Enter at the password prompt) → paste the certificate address into Cisco (it is not the same as the server address) and connect without a password.
💻 macOS
1
Install the client
From the Connection Info page / Download Center get AnyLink (account & password, Apple Silicon only) or Cisco Secure Client (certificate, password-free, works on both Intel and Apple Silicon); an OpenConnect GUI (Apple Silicon only) is also available.
2
Sign in for the details
Sign in, open "Connection Info", pick Global / PAC, and copy both the server address and the Secret.
3
Create the connection · four fields
In AnyLink fill in, in order: Host (server address), Secret, Username (email) and Password (connection password). ⚠️ The Secret is required — leave it out and the connection fails.
4
Intel Mac / want it password-free?
Use Cisco Secure Client: on "Connection Info" expand "Advanced · certificate", download the .p12 → double-click to import it into the login keychain (just press Enter at the password prompt) → paste the certificate address into Cisco. The openconnect CLI also works.
🐧 Linux
1
Install the client
openconnect ships in the official repositories of every mainstream distribution — pick the line for your system:On RHEL / Rocky / AlmaLinux enable EPEL first. Run
Debian / Ubuntu
sudo apt update && sudo apt install -y openconnectFedora
sudo dnf install -y openconnectArch / Manjaro
sudo pacman -S openconnectAlpine
sudo apk add openconnectopenconnect --version to confirm.2
Sign in for your connection details
Sign in and open "Connection Info". Note four things: Username (your registered email), Connection password (not your website login password), Secret, and the server address of the line you want (it looks like
somestring.domain:port). The Global / PAC choice is stored on your account — after switching, disconnect and reconnect once for it to take effect.3
Build the full address and connect · the step people get stuck on
The command line needs the full address including the suffix: append the Secret to the server address to form Enter your connection password when prompted. ⚠️ Wrap the whole address in quotes — the
https://SERVER-ADDRESS/?SECRET. ⚠️ Leave the suffix off and the server refuses the request outright, which simply looks like "cannot connect". Shortcut: on "Connection Info" expand "Advanced · certificate" — the certificate address there already carries the suffix. Replace the two placeholders below with your own values:Connect
sudo openconnect --protocol=anyconnect --user='your@email' "https://SERVER-ADDRESS/?SECRET"? is a shell wildcard, and without quotes zsh fails with no matches found before the command even runs.4
Disconnecting and running in the background
In the foreground press Ctrl + C to disconnect. ⚠️ Never use
To run it in the background:Note this leaves the password in your shell history; use
kill -9 — only a clean exit restores your routing and name-resolution settings.To run it in the background:
Background
echo 'CONNECTION-PASSWORD' | sudo openconnect --protocol=anyconnect --user='your@email' --passwd-on-stdin --background --pid-file=/run/oc.pid "https://SERVER-ADDRESS/?SECRET"Stop
sudo kill $(cat /run/oc.pid)read -s into a variable if that matters to you.5
Password-free connection (optional)
On "Connection Info" expand "Advanced · certificate" → download the .p12 → run:Normally you will not be asked for a passphrase. If you do see
Certificate
sudo openconnect --protocol=anyconnect --certificate=/absolute/path/downloaded.p12 "https://CERTIFICATE-ADDRESS"Enter PKCS#12 pass phrase:, just press Enter (the passphrase is empty) — both behaviours are normal. The download link is valid for 30 minutes; the certificate itself also expires, after which you download a fresh one from the same page.6
Cannot connect? Check in this order
① Refused immediately by the server → the
② Terminal says
③ Permission error / cannot create the network device → add
④ Shows connected but nothing loads → some minimal systems lack the companion network-configuration script; installing from your distribution's official repository normally includes it;
⑤ Want a different line → swap in another address from "Connection Info"; everything else stays the same.
/?SECRET suffix is missing or was copied wrong;② Terminal says
no matches found or the address is mangled → you forgot the quotes;③ Permission error / cannot create the network device → add
sudo;④ Shows connected but nothing loads → some minimal systems lack the companion network-configuration script; installing from your distribution's official repository normally includes it;
⑤ Want a different line → swap in another address from "Connection Info"; everything else stays the same.
📶 OpenWrt Router
1
Check your hardware and firmware first
OpenWrt officially recommends 16MB storage / 128MB RAM or better; 16/64 is the absolute minimum, and 4/32 devices lost support long ago — RAM is the harder limit. SSH into the router and run:24.10 and earlier use
Version
cat /etc/openwrt_releasePackage manager
which apk opkgopkg, 25.12 and later use apk. The two command sets are not interchangeable.2
Install the packages
Pick the set that matches the previous step:
opkg (24.10 and earlier)
opkg update && opkg install openconnect ca-bundleapk (25.12 and later)
apk update && apk add openconnect ca-bundleca-bundle is the system root-certificate store; most firmware already includes it, and without it you get "cannot verify server certificate". ⚠️ Do not use apk upgrade to bulk-upgrade packages — OpenWrt explicitly warns this can brick the device because of incomplete dependency data.3
Create the interface and fill in the parameters
Run these one by one (the interface is named ⚠️ Two things you must not skip: ① the address must start with
You can also use LuCI (install
occ; replace the placeholders with values from "Connection Info"):uci set network.occ=interfaceuci set network.occ.proto='openconnect'your address
uci set network.occ.uri='https://SERVER-ADDRESS/?SECRET'your email
uci set network.occ.username='your@email'your password
uci set network.occ.password='CONNECTION-PASSWORD'do not skip
uci set network.occ.interface='wan'commit
uci commit networkhttps:// and keep the trailing /?SECRET — miss either half and it will not connect; ② the interface 'wan' line is required — it pins a dedicated route to the server itself over your broadband port, without which a single drop leaves you unable to reconnect.You can also use LuCI (install
luci-proto-openconnect, then service rpcd restart), but that form has no field for line ⑥, so you would return to the command line anyway.4
Firewall / address translation · skip this and your LAN goes nowhere
Add the interface to the existing wan zone (it already enables outbound address translation and MSS clamping, both prerequisites for LAN devices):⚠️ Classic symptom of skipping this: the router itself is online, but every phone and laptop on the LAN is dead. If you insist on a separate zone you must add
uci rename firewall.@zone[0]='lan'uci rename firewall.@zone[1]='wan'uci add_list firewall.wan.network='occ'uci commit firewall && service firewall restartmasq='1', mtu_fix='1' and a lan→zone forwarding rule — all three (mtu_fix is the one that fixes "small pages load, large files and image-heavy sites stall").5
Apply, autostart and manual control
Nothing to configure for name resolution: once connected, the resolver addresses pushed by the line are written into the system automatically and picked up by the router. Apply the configuration:The interface starts automatically at boot; a firmware upgrade preserves the configuration.
Apply
service network restartUp / down
ifup occ # use ifdown occ to disconnectRetry longer after a drop (seconds)
uci set network.occ.reconnect_timeout='300' && uci commit network6
Troubleshooting
Four commands cover most cases:The three most common problems: ① the log shows the server refusing you → the address is missing the
Connection log
logread -e openconnectIs it running
pgrep -f -a openconnectRouting
ip route showRead back config
uci show network; uci show firewallhttps:// prefix or the trailing /?SECRET; ② "cannot verify server certificate" → install ca-bundle, and make sure you have not entered any server-certificate fingerprint (that disables the system trust chain, and since our certificate is renewed automatically, a pinned fingerprint breaks on renewal day); ③ unstable line or large transfers stalling → force plain TCP: uci set network.occ.no_dtls='1'; uci commit network; ifup occ.⚠️ The router setup builds on OpenWrt community packages: we do not ship our own router firmware and have not verified this on individual models, so treat it as a self-service route for advanced users. Routers also support Global mode only — "PAC (direct for domestic sites)" does not work on OpenWrt and fails silently (the firmware's configuration script ignores the exclusion entries pushed by the server and falls back to Global). Use a computer or phone if you need split routing. Because a router runs unattended, use the account-and-password method, not the certificate (certificates expire and would silently stop working).
Sign in for one-tap import
After you register, head to "Connection Info" in your account to import your certificate and connect in a single tap. Need a screenshot walkthrough? Our support team is here to help.
Sign In / Register