PokeBox的站点

一个啥也不会的懒虫

View on GitHub

给手机安装ssh服务器并绑定域名随时远程

由于有随时访问手机的需求,同时也怕自己手机丢,给手机安装ssh服务器以便自己随时随地远程到手机进行操作。

准备

magisk

ssh模块

MacroDroid自动化工具

域名服务器,如DNSpod


先给手机root,然后刷magisk,然后下载ssh模块并用magisk刷入。

配置SSH

根据说明,安装好模块后,需要在/data/ssh/root/.ssh/authorized_keys/data/ssh/shell/.ssh/authorized_keys写入公钥,可以使用ssh-keygen生成公钥然后cat id_rsa.pub > authorized_keys完成写入。因为这个模块并不支持密码登录,加上需要随时可以远程,一个强密钥是必要的。

由于/data需要root才能访问,所以需要magisk给应用授权root,这里可以使用adb授权后用vi编辑,也可以安装juiceSSH连接local,su之后编辑。再或者使用CX文件管理器手动编辑也可以。

如果需要更改端口号或其他ssh的配置,和这普通Linux上一样,编辑/data/ssh/sshd_config文件,保存后重启手机即可。

完成编辑之后可以用ssh root@手机IP -i id_rsa密钥尝试访问。

在确保局域网下能正常访问手机后,为了能在任何地方都可以直接访问手机,这里使用的是IPv6地址进行访问。国内现在部署ipv6已经非常全面,三大运营商现在都提供了ipv6地址,用v6可以不需要任何穿透工具即可直接访问。

配置MacroDroid自动更新DDNS信息

手机打开流量,关闭Wi-Fi,确保手机能正常访问网络,然后打开MacroDroid自动化工具,新建一个宏操作,触发器选择IP地址更改,动作选择http请求,这里我们使用查询的方式来获取自己的IP地址,这样能保证这个IP地址是一定可用的。在HTTP请求中,请求方法选择GET,网址输入https://api-ipv6.ip.sb/ip,使用ip.sb的API获取地址。

勾选完成后才能后续动作跟随重定向,超时时间填个10秒,以避免长时间获取不到数据卡着。在响应部分勾选将HTTP返回状态码保存在整型变量中,然后设定一个变量名例如http_ret,之后我们用这个变量判断是否请求成功。

选择将HTTP响应保存着字符串变量中,然后设置个变量名,例如ipv6_addr,这个变量保存的值就是我们设备的IPv6地址。

完成后我们再添加一个HTTP请求,这里就是请求上传更新DNS的API,根据自己选择的DDNS供应商提供的API信息,自己填入具体的参数数据。

以DNSPod为例,请求方法使用POST,网址填入https://dnsapi.cn/Record.Ddns,到第二页查询参数中填入所需的各字段信息:

lang:en
login_token:xxxxx,xxxxxxxxxxxxxxxxx
format:json
domain:自己的域名
sub_domain:要更新的二级域名信息
record_line_id:0
record_id:xxxxxx
value:{v=ipv6_addr}

每行一个,这里的value就是要更新的ipv6地址信息,这里使用{v=ipv6_addr}就是刚才设置的变量。

在内容正文中还得再填一次token,内容类型选择text/plain,内容正文选文本,然后信息填入login_token=xxxxx,xxxxxxxxxx你的token信息。

完成后点击右上角的✓即可。

完成后可以测试一下动作,如果在DNSpod上能正确获取到记录,就可以使用你的域名来进行ssh访问了。

ssh root@你的域名 -i 密钥文件 -p 端口号