背景:当下各种原因的复杂环境之下,在外不方便访问家中的内部设备,想寻求一种解决措施——frp
1.开始下载
自行下载地址:Releases · fatedier/frp (github.com)
懒人下载:在客户端ssh中选择适合自己系统的版本
#linux 32位下载
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_arm.tar.gz
#Linux 64位系统
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_arm64.tar.gz
不加代理速度可能会有点慢
2.开始解压文件
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
然后进入下载的目录
cd frp_0.44.0_linux_amd64
然后手动修改一下文件名改为frp,方便后期管理
服务端操作与之相同;
3.开始客户端和服务端的配置
客户端,保留这四个文件,删除其余文件
创建log日志文件夹
创建frps.log文件
对客户端文件frpc_full.ini进行配置
[common]
server_addr = 49.233.xxx.xxx#服务器ip
server_port = 7000 #系统端口
token = 41f1a553fd725468436eeac92425285f9accbd2a928931#密钥与服务端保持一致
[ssh]
type = tcp
local_ip = 127.0.0.1#本机ip地址
local_port = 22 #本地服务的端口
remote_port = 6000#映射端口
#[ql]#自定义
#type = tcp
#local_ip = 127.0.0.1
#local_port = 5700
#remote_port = 6001
#如果需要穿透多个容器请在文件后面添加[ql1]、[web]....依次类推
4.手动运行测试
cd /root/frp
./frpc -c ./frpc.ini
如果看到屏幕输出这样一段内容,即表示运行正常,如果出现错误提示,请检查上面的步骤。
5.服务端配置
下载的步骤与前面的相同
- 下载#Linux 64位系统
- wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_arm64.tar.gz
- 然后解压
- tar -zxvf frp_0.44.0_linux_amd64.tar.gz
- 文件夹改个名,方便使用
- cp -r frp_0.44.0_linux_amd64 frp
- 把解压出来的文件夹复制到你想要的目录下
- 查看
- ls
只需要关注下面的几个文件
- 前两个文件(s结尾代表server)分别是服务端程序和服务端配置文件,后两个文件(c结尾代表client)分别是客户端程序和客户端配置文件。
- 因为我们正在配置服务端,可以删除客户端的两个文件
rm frpc
rm frpc.ini
rm frpc_full.ini
3.然后修改frps.ini文件
[common]
bind_port = 7000
dashboard_port = 7500#面板端口
token = 41f1a553fd725468436eea***********#与客户端保持一致
dashboard_user = root
dashboard_pwd = admin
- “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
“dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500
(其中x.x.x.x为VPS的IP)查看frp服务运行信息。 “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
“dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
注意:要在服务器和宝塔面板中需要放行7000、7500等你需要映射的端口段,后续调试用
之后我们就可以运行frps的服务端了
./frps -c frps.ini
提示这个样子就欧克了。
6.此时访问服务器ip地址:7500并使用自己设置的用户名密码登录,即可看到仪表板界面。
7.服务端和客户后台运行
nohup ./frps -c frps.ini & #服务端
nohup ./frpc -c ./frpc.ini & #客户端
服务端效果如图
客户端
8.关闭frp进程
找到frp进程
ps -aux|grep frp| grep -v grep
# 命令格式:kill -9 <pid>
kill -9 xxxxx
kill该进程
9.配置systemctl来控制frps
1、创建frps.service
2.在文件中输入一下内容
[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/root/frp/frps -c /root/frp/frps.ini
[Install]
WantedBy=multi-user.target
3、使用systemctl命令来控制frps
命令一条一条执行
sudo systemctl start frps #启动frps
sudo systemctl enable frps #服务器开机自动启动frps
sudo systemctl restart frps #重启frps
sudo systemctl stop frps #停止frps
4.查看日志
- sudo systemctl status frps
5.查看是否开机自启动
- sudo systemctl is-enabled frpc #客户端
- sudo systemctl is-enabled frps #服务端