适用于 iPhone、iPad 和 Mac 的 knockd 客户端
当某个地址按时访问一组秘密端口序列时,knockd 会打开端口。Secret Knock 可从您的 iPhone、iPad、Mac 或 Apple Watch 发送该序列,检查端口是否响应,并打开您的 SSH App。
Secret Knock 发送的内容
门的每个步骤都是对一个端口的 TCP 或 UDP 敲门,可在其前设置可选延迟;对于 UDP,还可设置文本或十六进制格式的可选载荷。一次 TCP 敲门就是一次连接尝试:App 发送单个 SYN 后立即关闭该尝试,因此操作系统不会重新传输它 — knockd 0.8 会在重复 SYN 时重置序列。
一次性序列(knockd 的 one_time_sequences)同样适用:选择“敲门类型 › 一次性序列”,然后输入列表;在一次敲门打开门后,Secret Knock 会继续使用下一个序列。导入 knockd.conf 不会读取序列文件 — 导入功能会说明这一点 — 因此请手动输入该列表。
设置服务器
一个最小的 knockd 配置段,可为敲门地址打开 SSH 10 秒。请选择您自己的端口 — 切勿重复使用公开示例中的端口。
[options]
UseSyslog
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT 在 App 中添加门
- 1新建门 › 从模板开始 › knockd 示例会填入三端口 TCP 序列,并将 SSH 设为要检查的端口;请将端口替换为您自己的端口。
- 2或者,+ › 从文件导入,然后选择您的 knockd.conf:每个包含序列的配置段都会成为一扇门。
- 3如果服务器的 knockd 仅监听一种地址族,请为该门固定使用 IPv4 或 IPv6。
- 4按住黄铜门环。端口 22 响应后,门会显示“门微开”;“打开 SSH”会将您转到 SSH App。
GitHub 上的所有示例 → 本页面上的每项配置均可直接复制:github.com/mobilcomm/secretknock-examples(公共领域)。
问题
它是否适用于 knockd 的 tcpflags = syn?
是。每次 TCP 敲门都是单个 SYN,这正是 tcpflags = syn 所计数的内容。
我能否以命令形式查看同一次敲门?
可以。门编辑器会将敲门显示为可直接粘贴到终端中的 knock 命令。