记录阿里云 centOS FRP 树莓派 内网穿透
我们知道windows上有一些穿透工具,花生壳向日葵这样的最近几年比较热门,几乎成了新的装机必备。我有一点嵌入式功底,在人工智能的背景下,除了嵌入式硬件给ai加速,还想做一下云产品的方案调研。 在有了服务器后,我们目前就有了公网IP,原则上有公网IP就能通过一定的方案实现下图功能:
在初步调研中发现了一个好用的可以在服务器上部署的方案,frp服务器,在这里和大家分享。 为了保护个人信息 图像部分信息使用粉色打码
首先是服务器端
github上下载frp https://github.com/fatedier/frp/releases 装的是centOS 7 ,下载的是下面这个 frp_0.44.0_freebsd_amd64.tar.gz 通过ssh 拖拽到远程服务器上
解压
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
然后转移路径到frp路径
cd frp_0.44.0_linux_amd64
vim frps.ini
修改文件
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = Aloha
dashboard_pwd = 123456
[common]部分是必须有的配置 其中bind_port是自己设定的frp服务端端口 dashboard_port_number 改为一个特定的端口号,如8000,如此便可以通过 http://yourip:8000 来访问 frps 的网页控制台页面. dashboard_user 和 dashboard_pwd要填写一个自定义的用户名和密码,用于在访问 frps 控制台页面时输入.
然后启动frp服务器
./frps -c ./frps.ini
然后去服务器管理界面打开端口,在下图红线位置点击
进入后选择“配置安全组规则”
配置规则
添加端口规则
然后使用网页登陆
进入后界面如下
然后配置树莓派这边,一样的下载frp
我下载的版本是这个 frp_0.44.0_linux_arm.tar.gz 解压 解压之后修改配置文件 frpc.ini
[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
然后去阿里云服务端按照之前开7500 7000 端口一样把6000端口开成自定义tcp 之后执行下面的语句,开启服务
./frpc -c ./frpc.ini
2022/08/11 00:09:20 [I] [service.go:349] [8b3d04cf131aacc7] login to server success, get run id [8b3d04cf131aacc7], server udp port [0]
2022/08/11 00:09:20 [I] [proxy_manager.go:144] [8b3d04cf131aacc7] proxy added: [ssh]
2022/08/11 00:09:20 [I] [control.go:181] [8b3d04cf131aacc7] [ssh] start proxy success
这个时候新建ssh链接,配置ip 为公网ip 端口为6000 就提示让你输入用户名啦!
为了方便使用,之后把服务器和树莓派端的配置成自动启动 ,就完美了 关于自启动的设置就不在这里说了,这里说下透穿过程中的意外之喜 由于手上的嵌入式开发板除了树莓派还正好有几个HI3559和HI3516.所以一起测试了一下,使用和树莓派相同版本的frp,也可以透穿HI3559,操作几乎完全一致,这里就不一一记录了。
frp自启动指令
以下操作于ubuntu20.04
创建配置文件
vi /etc/systemd/system/frps.service
配置参考如下
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/home/ftpuser/frp/frps -c /home/ftpuser/frp/frps.ini
[Install]
WantedBy=multi-user.target
启动frps服务
sudo systemctl start frps
设置开机自启动
sudo systemctl enable frps
查询运行情况
sudo systemctl status frps
重启
sudo systemctl restart frps
停止
sudo systemctl stop frps
配置修改之后重载入
systemctl daemon-reload
|