CLI 参考
SecurQbit 命令行客户端的全部 sqctl 命令 — 登录、连接、选择国家、修改偏好、更新,以及供脚本读取的输出。
sqctl 是你在终端里操作 SecurQbit 的方式。它通过本地套接字与后台服务通信;它不保存任何凭据,自身也不需要权限。如果还没安装,请先看桌面与路由器设置。
每条命令都接受 --json,它会打印原始文档而不是排版后的输出。那才是应当拿来写脚本的接口 — 给人看的排版随时可能改动。
一览
sqctl status VPN 是否开启,以及以谁的身份
sqctl login 在浏览器中批准链接以登录
sqctl logout
sqctl locations 当前套餐可用的国家
sqctl connect [COUNTRY] [--fastest]
sqctl disconnect
sqctl set 显示偏好设置
sqctl set country DE|any
sqctl set autoconnect on|off
sqctl set updates on|off
sqctl update [--check] [--yes] 安装最新版本sqctl status
显示你是否受保护,以及以谁的身份。
$ sqctl status
● Connected Germany
Connected for 12m 40s
Transferred ↓ 148 MB ↑ 22 MB
Account Alice [email protected]
Plan Monthly
Renews 1 September 2026它刻意不显示隧道是怎么建立的 — 没有服务器地址,也没有会话标识。那些你无法据以行动,尤其是服务器地址,不该在你求助时随截图泄露出去。
如果服务没在运行,sqctl 会说明,并打印在这台机器上启动它的命令,无论它用的是哪种 init 系统。
sqctl login
通过在浏览器中批准,让这台电脑登录。
$ sqctl login
Open this link to approve the sign-in:
https://accounts.securqbit.com/device?code=BCDF-GHJK
Check the page shows this code:
B C D F - G H J K
Waiting for approval — expires in 10 minutes, Ctrl-C to cancel打开链接 —sqctl 会尝试替你打开,--no-browser 可阻止它这么做 — 若尚未登录则先登录,核对页面上的验证码与终端里的一致,然后批准。终端里永远不需要回填任何东西。
这一次核对,就是整个流程的全部安全性所在。
只批准你自己发起的请求。 如果有人给你发来这样的链接而你批准了,你就把他的电脑登进了你的账号。页面上显示的验证码和机器名,正是让你分辨这一点的依据。
登录需要一个已经存在的账号。请在 iOS 或 Android 应用中创建 — 包括访客账号,它用恢复码登录 accounts.securqbit.com,并像其他账号一样在那里批准。
sqctl logout
关闭 VPN 并注销这台电脑。隧道会先断开,这是刻意的:让隧道挂在刚被吊销的凭据上,会把你的流量丢在服务器即将清除的会话里。
访客账号会先要求确认,因为没有恢复码你将无法再登录。--force 可跳过询问。
sqctl connect
sqctl connect # 你保存的偏好
sqctl connect DE # 显示为德国
sqctl connect --fastest # 让 SecurQbit 决定国家是两位字母代码 — 运行 sqctl locations 查看你的套餐允许哪些。连接需要几秒;终端会跟随实际状态的变化,而不是一言不发。
试用版无法选择国家。 试用套餐请用
--fastest。指定国家会返回一个错误,说明需要付费套餐,而不是悄悄把你连到别处。参见账号与计费。
sqctl disconnect
断开隧道,并把你的路由和 DNS 恢复原状。
断开同时也是在告诉 SecurQbit 停下。如果隧道自己断了,服务会持续尝试把它恢复 — 这正是你希望笔记本从睡眠中醒来、或路由器上行抖动之后发生的事。只有 sqctl disconnect、退出登录或停止服务,才会取消这个意图。
sqctl locations
按名称列出你的套餐可用的国家。
$ sqctl locations
DE Germany
FR France
NL Netherlands
SG Singapore
US United Statessqctl set
显示或修改你的偏好。一共三项,而这三项确实该由你来决定。
sqctl set # 显示这三项
sqctl set country DE # 默认使用德国
sqctl set country any # 默认使用最快的
sqctl set autoconnect on # 机器一启动就连接
sqctl set updates off # 不再检查新版本$ sqctl set
Location Germany (DE)
Auto-connect on
Updates on隧道的其他一切 — 怎么建立、用什么 DNS、如何重试 — 都已替你决定,且不通过 CLI 暴露。把这些选项抛出来,并不会让一个 VPN 变得更好。
updates 之所以是一项设置而不是固定行为,是因为这项检查是对 SecurQbit CDN 的周期性访问,而运行 VPN 的人有权拒绝它。
sqctl update
安装最新版本。
sqctl update # 询问后安装并重启
sqctl update --check # 只说明有没有新版本
sqctl update --yes # 不询问$ sqctl update
! Update available
Installed v1.0.0
Latest v1.1.0
SecurQbit restarts to finish, so the VPN disconnects for a moment.
Install it now? [y/N]在替换任何文件之前,下载内容都会与已发布的校验和比对,随后服务在新版本上重启。sqctl 会等它回来并读取版本号,所以告诉你的是实际正在运行的版本,而不是写进磁盘的版本。
SecurQbit 也会每天自行检查一次,并且只是告知你 — 在 sqctl status 下的一行:
Update v1.1.0 available — run: sqctl update它从不自行安装。完成更新意味着重启,而重启会断开正在使用的隧道;不打招呼就这么做,比让人落后一个版本更糟。
如果 SecurQbit 是由你的发行版包管理器安装的,sqctl update 会在下载任何东西之前拒绝,并提示你用当初的安装方式去更新。
编写脚本
任意命令加上 --json,都会打印协议原文:
$ sqctl status --json | jq '.state, .country'
"connected"
"DE"# 连接并确认确实生效
sqctl connect --fastest --json > /dev/null
test "$(sqctl status --json | jq -r .state)" = connected退出码:0 成功,1 命令失败,2 无法连上 SecurQbit 服务。
出问题的时候
sqctl 会把失败翻译成你能据以行动的说法,并把内部细节挡在外面。当你确实需要那些细节 — 比如提交问题报告 — 有一个隐藏的诊断命令:
sqctl debug # 版本、各类文件位置、是哪个套接字应答、
# 隧道引擎,以及最后一次的原始错误
sqctl debug probe DE # 在“不连接”的前提下端到端测试某个服务器sqctl debug probe 最为实用。它对着真实服务器启动代理,通过它发一次请求,并报告对端看到的地址 — 但它不创建隧道设备,也不改动任何路由,所以即便链路不通,它也能告诉你结果而不会让你断网。
报告问题时请附上 sqctl debug 的输出。参见故障排除。
下一步
- 桌面与路由器设置 — 安装、更新与卸载。
- 连接到服务器 — 服务器选择是怎么工作的。
- 绕过防火墙与流量混淆 — 在受限网络中。