项目简介
https://github.com/fatedier/frp | https://github.com/fatedier/frp/releases
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
准备工作
- 公网ip服务器(阿里云、腾讯云等) - 服务端
- 内网服务器 - 客户端
- frp
服务端安装
frps.ini
是服务端的配置文件,这是一个简化版本,只包含了必须的配置项。 其余的配置项在frps_full.ini
中,可以根据自己的需要在frps.ini
中添加。
配置完成后可以使用命令直接运行
frps -c ./frps.ini
当然你也可以使用docker来部署,我做了一个frp及vlmcsd的镜像。
git clone https://gitee.com/Jalena/tools.git
cd tools
# Use docker-compose service
docker-compose up -d
部署客户端
# 下载文件
wget https://github.com/fatedier/frp/releases/download/v0.29.1/frp_0.29.1_linux_amd64.tar.gz
# 解压
tar zxvf frp_0.29.1_linux_amd64.tar.gz
cd frp_0.29.1_linux_amd64
# 拷贝程序及配置文件
mv frpc /usr/bin/frpc
mv frpc.ini /etc/frp/frpc.ini
# chown
chown root:root /usr/bin/frpc
chwon root:root /etc/frp/frpc.ini
自动启动
systemd 是一个专用于 Linux 操作系统的系统与服务管理器。当作为启动进程(PID=1)运行时,它将作为初始化系统运行,也就是启动并维护各种用户空间的服务。
systemd 拥有 11 个单元类型,分别是:服务(service)、套接字(socket)、设备(device)、挂载点(mount)、自动挂载点(automount)、 启动目标(target)、交换分区或交换文件(swap)、被监视的路径(path)、任务计划(timer)、 资源控制组(slice)、一组外部创建的进程(scope)。
其中,服务单元是以 .service 为后缀的单元文件,封装了一个被 systemd 监视与控制的进程。
服务的单元文件包括三个部分:[Service]、[Unit] 和 [Install]。
frps.service
[Unit] Description=Frp Server Service # 服务描述 After=network.target # frps 将会在 network.service 启动完毕之后再启动 [Service] Type=simple # 不论进程是否启动成功,systemctl start 都执行成功 User=nobody # 设置进程在执行时使用的用户 Restart=on-failure # on-failure 表示仅在服务进程异常退出时重启 RestartSec=5s # 设置在重启服务前暂停多长时间 ExecStart=/usr/bin/frps -c /etc/frp/frps.ini # 在启动该服务时需要执行的命令行 [Install] WantedBy=multi-user.target # 用于 systemctl enable 时创建软连接
frp的软件包中已经包含了systemd启动脚本,如果你不想修改脚本的话,可以直接将文件放到对应的位置,并将systemd启动脚本放到/lib/systemd/system即可。
cp frps.service /lib/systemd/system/
# 自动启动
systemctl enable frpc
systemctl start frpc
# 停止
systemctl stop frpc
# 查看启动状态
systemctl status frpc -l
文章评论