自己挖坑给自己埋,服务器都弄坏两次,特来总结以下经验。
前提准备:公网服务器IP(我的是阿里云服务器)
你得确保你的服务器开通了端口号,不然连接不成功
阿里云-网络安全组配置-添加规则(我是打开了6000-7000之间的所有端口号,你也可以先按我的做)
获取树莓派所在局域网的IP地址(我的树莓派是连的wifi)
打开wifi后台管理器,查看树莓派连接的ip地址
这时已经获取到树莓派所在局域网的ip了:192.168.31.191(我的)
一、ssh到你的公网服务器安装配置frp服务端frps
1.安装包
wegt https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
2.解压包
tar -zxvf frp_0.32.0_linux_amd64.tar.gz
3.进入解压包目录
cd frp_0.32.0_linux_amd64
4.查看frps.ini
nano frps.ini
5.然后在里面编辑 默认内容
[common] bind_port = 7000
ctrl+o保存 enter回车确认 最后ctrl+x退出
6.启动frps(在frp_0.32.0_linux_amd64里启动)
./frps -c ./frps.ini
这时候会提示启动成功,不要关闭我们继续配置客户端,只有都启动了才能连通ssh。
二、安装配置frp客户端frpc
1.安装包
wegt https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_arm.tar.gz
2.解压包
tar -zxvf frp_0.32.1_linux_arm.tar.gz
3.进入解压包目录
cd frp_0.32.1_linux_arm
4.查看frpc.ini
nano frpc.ini
5.然后在里面编辑
[common] server_addr =(你的公网服务器ip地址) server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
ctrl+o保存 enter回车确认 最后ctrl+x退出
6.启动frpc(在frp_0.32.1_linux_arm目录里启动)
./frpc -c ./frpc.ini
这时候显示成功了
就可以ssh连接你局域网的树莓派了
端口号记得改成6000
特别提示一定要先成功连接服务端,再连接客户端,服务端先走!!!
-----------------------常见报错-----------------------
1.[ssh] start error: port already used
先找到这个进程
ps -aux|grep frp| grep -v grep
root 3520 0.1 0.1 111188 9484 pts/0 Sl 15:04 0:00 ./frpc -c ./frpc.ini
执行之后如果显示这样则成功了
然后kill -9 进程号
kill -9 3520
2.0.0.0.0:7000 already used (小心不要把22端口杀掉了,不然ssh连不上服务器)
提示7000端口已经被使用了
netstat -tanlp 查看tcp进程 sudo kill 2683 杀掉
3.如果杀掉端口之后再服务端运行报错,查看你的7000端口有没有被关闭,关闭了就打开
nc -lp 7000 &(打开7000端口,即telnet)
4.不要直接运行这种命令
你的机器上没有这个文件会直接报错,这个是要自己新建的自启服务
这个方法比较好用,很方便
sudo vim /lib/systemd/system/frps.service
在frps.service里写入以下内容
[Unit] Description=fraps service After=network.target syslog.target Wants=network.target [Service] Type=simple #写你的frps的需要用绝对路径 ExecStart=/XXX/frps -c /XXXX/frps.ini [Install] WantedBy=multi-user.target
然后就启动frps
sudo systemctl start frps
再打开自启动
sudo systemctl enable frps
如果要重启应用,可以这样,sudo systemctl restart frps
如果要停止应用,可以输入,sudo systemctl stop frps
如果要查看应用的日志,可以输入,sudo systemctl status frps
查看磁盘空间命令: df -hl