Skip to content

任意地点连接

rev1si0n edited this page Oct 1, 2023 · 1 revision

配置服务

有时候你可能遇到这种情况,你的手机在家里而你不在家该怎么使用呢。开始前,你可能需要先准备一台公网服务器。为了安全考虑,这里使用的是最保守的配置,最后会说明如何做到完整介绍的功能。

因为有了公网服务器,lamda 有很多方法可以做到这个要求,使用 OpenVPN 来实现更加优雅。当然最方便的还是使用 frp。tools 文件夹内都提供了相关服务的 docker 镜像并且这些镜像可以一键命令生成下面的配置信息,可以转到 tools 查看使用方法。本服务使用了较为成熟的端口转发程序 fatedier/frp,关于如何配置服务端,请在此项目中自行探索。注意,请勿将转发后的端口绑定到公网地址,请确保你的公网服务器关闭了所有不必要的端口。这里提供一个最简单安全的配置,可以直接使用如下命令启动服务端。

首先在你的公网服务器上执行以下命令启动 frps,你可能还需要配置防火墙。

# frps 版本需要 > v0.45.0
frps --token lamda --bind_addr 0.0.0.0 --bind_port 6009 --proxy_bind_addr 127.0.0.1 --allow_ports 10000-15000

根据以下示例编写 properties.local 修改服务器地址为你的服务器公网IP。

fwd.host=服务器地址
fwd.port=6009
fwd.rport=12345
fwd.token=lamda
fwd.protocol=tcp
fwd.enable=true

将其追加或者写入到 properties.local,重启 LAMDA 即可。

如何使用

透过上面的端口转发使用 LAMDA,需要在部署了 frps 的公网服务器上使用,因为在这个示例里我们绑定了转发的端口到 127.0.0.1。

from lamda.client import *
# 端口为上面配置的 rport
d = Device("127.0.0.1", port=12345)

进阶操作

如果你就是想在任意地方都能连接到设备,首先,为了安全起见不建议这么做,如果确实需要这样用的话,建议使用 OpenVPN 将设备和你的电脑置于同一网段的方法来访问。如你仍准备使用上述 frp 的方法实现任意访问,请先确保 LAMDA 服务启动时使用了PEM证书,并将启动 frps 命令时的 --proxy_bind_addr 127.0.0.1 改为 --proxy_bind_addr 0.0.0.0,这将导致样例中的 12345 端口直接绑定到公网。如果你未使用PEM证书启动 LAMDA,任何人都将可以访问,这是非常非常危险的。