frp反向代理

该文详细介绍了如何配置FRP(FastReverseProxy)实现内网穿透,包括服务端和客户端的配置步骤,以及如何使用systemd控制FRP服务并设置开机自启。用户需要下载对应版本的frp配置文件,然后在服务端和客户端分别编辑frps.ini和frpc.ini,设置必要的端口和连接信息。最后,通过systemd管理frp服务,确保其能在系统启动时自动运行。
摘要由CSDN通过智能技术生成

1 参考连接

概览 | frp (gofrp.org)

使用frp进行内网穿透连接远程服务器 - Circle_Wang - 博客园 (cnblogs.com)

【保姆级教程】个人深度学习工作站配置指南 - 知乎 (zhihu.com)

frp后台运行和停止 - 简书 (jianshu.com)

下载适合自己版本的 最新的配置文件,分别上传到服务端和客户端。

# 解压文件
tar -zxvf frp_x.xx.x_linux_amd64.tar.gz
# 移动放在/usr/local/bin 目录下
sudo mv -r frp_x.xx.x_linux_amd64/ /usr/local/bin/frp

2 服务端配置

配置之前要在云服务器端开放相应的端口,如 70007500 等等。

切换到目录并编辑 frps.ini 文件:

cd /usr/local/bin/frp/
sudo vim frps.ini

这里使用了最简化的配置,设置了 frp 服务器用户接收客户端连接的端口:

注:frps.ini文件是不可以用#作为注释的,因此文件中一定要把#注释删掉,不然无法打开dashboard

[common]
bind_port = 7000            # 被连接服务器A(客户端)和中介服务器C(服务端)连接的端口
dashboard_port = 7500       # 中介服务器C(服务端)仪表盘端口
token = 123456            # 被连接服务器A(客户端)和中介服务器C(服务端)连接时的口令
dashboard_user = admin      # 仪表盘用户名
dashboard_pwd = admin       # 仪表盘密码

启动 frps 服务端:

./frps -c ./frps.ini

以上就完成了服务端的frp配置。

在浏览器输入 [云服务器的公网ip]:7500 即可访问到 frp的web管理界面。

可以在终端查看端口占用情况:

netstat -ntlp

这里要注意到我们不能关闭服务端的frp进程,因此我们也可以使用以下命令行在启动frp程序的时候使其后台启动。

# 后台启动
nohup ./frps -c frps.ini &
# 如果想关闭frp进程,可以使用kill +pid的方式
# 找到进程号
ps -aux|grep frp| grep -v grep
# 查看相关(程序名)进程状态
ps -ef|grep [程序名]  
# 杀死进程
kill -9 PID

3 客户端配置

切换到目录并编辑 frpc.ini 文件:

注意,这里编辑的是 frpc.ini 文件

cd /usr/local/bin/frp/
sudo vim frpc.ini

配置内容:

[common]
server_addr = xxxx.xxx.xxx.xxx  # 中介服务器C的公网IP
authentication_method = token
server_port = 7000         # 被连接服务器A(客户端)与中介服务器C(服务端)连接的端口
token = 123456          # 被连接服务器A(客户端)与中介服务器C(服务端)连接时的口令

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 20022

注意:remote_port这个设置,这个端口号指的是服务端会监听remote_port这个端口,如果有其他外部电脑连接中介服务端的这个端口,那么就等价于连接客户端的local_port端口。

完成上面配置之后,在客户端上启动frp程序。(注意是启动frpc.ini)

./frpc -c frpc.ini

到此为止,服务端和客户端的基本配置结束,可以在自己的电脑进行测试:

# ssh -p 远程端口 用户名@ip地址
ssh -p remotport name@xxx.xxx.xxx.xxx

这里 remoteport 和客户端配置文件中一致;
username 是客户端的用户名;
ip地址是服务端的ip;
连接上ssh后要求登录密码,也是客户端的密码;

4 使用 systemd 控制 frp 及配置开机自启

使用 systemd | frp (gofrp.org)

4.1 服务端

在终端输入,创建并编辑 frps.service 文件:

sudo vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description=Frp Server Daemon
After=syslog.target network.target
Wants=network.target

[Service]
Type=simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart=/usr/local/bin/frp/frps -c /usr/local/bin/frp/frps.ini # 修改为你的frp实际安装目录
ExecStop=/usr/bin/killall frps
#启动失败1分钟后再次启动
RestartSec=1min
KillMode=control-group
#重启控制:总是重启
Restart=always

[Install]
WantedBy=multi-user.target

使用 systemd 命令,管理 frps。

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps

配置 frps 开机自启。

sudo systemctl enable frps

4.2 客户端

在终端输入,创建并编辑 frpc.service 文件:

sudo vim /etc/systemd/system/frpc.service
[Unit]
# 服务名称,可自定义
Description=Frp Server Daemon
After=syslog.target network.target
Wants=network.target

[Service]
Type=simple
# 启动frpc的命令,需修改为您的frpc的安装路径
ExecStart=/usr/local/bin/frp/frpc -c /usr/local/bin/frp/frpc.ini # 修改为你的frp实际安装目录
ExecStop=/usr/bin/killall frpc
#启动失败1分钟后再次启动
RestartSec=1min
KillMode=control-group
#重启控制:总是重启
Restart=always

[Install]
WantedBy=multi-user.target

使用 systemd 命令,管理 frpc。

# 启动frp
sudo systemctl start frpc
# 停止frp
sudo systemctl stop frpc
# 重启frp
sudo systemctl restart frpc
# 查看frp状态
sudo systemctl status frpc

配置 frpc 开机自启。

sudo systemctl enable frpc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值