//MAGICBOOK / 魔法书POSTS / 2023-05-08-TOS-FRP-NAS-SSH
74 POSTS66 TAGS3 CATEGORIES
CodingSTATUS / PUBLISHED

Tos:使用frp为铁威马nas提供远程ssh

尝试为没有公网Ip的服务器提供访问手段。

FILE / 20230508-70
AUTHOR / MAGICNUE
TYPE / CODING RECORD
image

流程:使用sakurafrp提供的内网穿透,使用docker部署到铁威马nas

1、拥有一个一台铁威马以及sakurafrp账号 2、开启铁威马的远程ssh 3、启动一条穿透隧道 4、为铁威马部署docker

拥有一个SakuraFRP(樱花FRP)账号。

樱花FRP:免费穿,轻松透

相对来说,樱花的免费带宽不算高,但是相对其他家来说很良心了。 重要:务必阅读帮助文档来少走不必要的弯路。 要使用映射功能,通常需要实名制。自己视情况斟酌。

在隧道列表中,点击+创建隧道 来创建一条隧道。

我需要使用ssh,并使用docker的桥接(bridge)模式,因此隧道类型选择tcp隧道,并填入使用的本地IP为172.17.0.1 。如果不确定自己的docker本地地址是多少,可以使用ip命令查询。 铁威马的默认docker网址默认ssh端口为9222,因此本地端口栏填入9222。其余留空。

创建隧道完成后,注意到配置文件中含有一条-f开头+空格+小写字母与数字的序列号+冒号+数字结尾的参数,稍后会用到。

启用铁威马的ssh/telnet功能

在铁威马的控制面板>终端与SNMP>Telnet/SSH中选中“允许SSH访问”,并取消选中“仅允许本地网络内的Telnet/SSH访问”,并点击应用。否则,外网ssh将无法访问ssh。

在铁威马部署sakurafrp的docker镜像。

只需要在终端执行:

# 默认 DockerHub 源,国内可能较慢:
docker run \
-d \ # 后台运行
--restart=always \ # 自动启动
--pull=always \ # 自动更新
--name=sakura1 \ # 为容器设定一个名字
natfrp/frpc \
-f <启动参数> --remote_control <远程控制密码>

对于低性能服务器器,可以使用:

docker run -d --name=sakura1 natfrp/frpc -f <启动参数>

其中,—pull=always不是必要的。<启动参数>填写隧道列表页面配置文件中-f开头+空格+小写字母与数字的序列号+冒号+数字结尾的那行参数。<远程控制密码>同样是这行参数,只是要删掉多余部分,仅填入中间小写字母与数字的序列号的部分。

最后一行的示范: -f a1b2c3d4e5f6g7h8i9j0:114514 --remote_control

收尾

如果一切正常,那么docker只会输出一串hash值,意味着容器已经启动。 输入docker stop <容器名称|容器ID>来停止容器。 输入docker rm <容器名称|容器ID>来删除容器。 输入docker logs <容器名称|容器ID>来查看容器的输出。可以在这里找到对应映射的域名/ip与端口。

现在,可以通过putty,julicessh等ssh软件通过SakuraFRP提供的映射地址来连接ssh。 同样的地址可以用于连接sftp。