FRPS服务端安装在服务器端,即阿里云
FRPC客户端安装内网机器上,即自己的家中的电脑上
要实现本功能必要条件是要先有一个云服务器和公网IP,这里以阿里云服务器举例,大致都是一样,安装centos系统后就可以开始了。
下载linux版的FRP,下载地址:https://github.com/fatedier/frp/releases (国内打不开需翻墙)
*本例不需要下载包到本地,直接使用wget命令下载即可
一、frp服务端搭建
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性。
1.先去GitHub查看frp的最新版本 。找到适配自己系统的安装包。这里我选择:frp_0.48.0_linux_amd64.tar.gz。
2.创建目录
1 |
mkdir data |
3.下载安装包到云服务器上
1 2 |
cd data wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz |
4.解压
1 |
tar -zxvf frp_0.48.0_linux_amd64.tar.gz |
5.移动至 /usr/local
在/usr/local/下创建一个frp文件夹。/usr/local目录类似于windows系统的C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
1 |
mkdir /usr/local/frp |
6.将frp_0.44.0_linux_amd64移动到 /usr/local/frp 里面
1 |
mv frp_0.48.0_linux_amd64/* /usr/local/frp/ |
7.进入文件夹,其中frps就是frp server端的部分;frpc 是frp client端的部分。这里我们只需要关心Server端。
可以直接删掉frpc、frpc_full.ini、frpc.ini三个文件,节省硬盘空间
1 2 |
find . -name 'frpc*' -exec rm {} \; ls |
8.修改配置文件:frps.ini
1 |
vim /usr/local/frp/frps.ini |
9.键入【i】,修改内容如下:
1 2 3 4 5 6 7 |
[common] bind_port = 7000 dashboard_port = 7002 dashboard_user = admin dashboard_pwd = admin authentication_method = token token = gtj&$%##ajdwh172831 |
注意:所使用的7000和7002都要在阿里云打开安全组才能访问
10.启动frps
1 |
./frps -c frps.ini |
或 systemctl start frp && systemctl status frp
11.设置Frps 服务开机自启
创建后台启动模版
1 |
vim /usr/lib/systemd/system/frp.service |
启动模板内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target [Service] Type=simple ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true StandardOutput=syslog StandardError=inherit [Install] WantedBy=multi-user.target |
重新加载服务的配置文件
1 |
systemctl daemon-reload |
设置frp开机自启
1 |
systemctl enable frp |
重启服务器
1 |
reboot |
查看frp服务运行状态
1 |
systemctl status frp |
frp常用操作命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 启动frp服务 systemctl start frp # 停止frp服务 systemctl stop frp # 重启frp服务 systemctl restart frp # 查看frp服务状态 systemctl status frp # 设置frp服务开机自启 systemctl enable frp # 取消frp服务开机自启 systemctl disable frp |
正常运行状态如下:
二、frp客户端安装以及使用
1. 安装Frpc,这里安装的和服务端的版本保持一致,如果提示无法写入请用管理员权限重试。
1 |
wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz |
2.同样在/usr/local/下创建一个frp文件夹,移动至 /usr/local
1 2 |
sudo mkdir /usr/local/frp sudo mv frp_0.48.0_linux_amd64/* /usr/local/frp/ |
3.进入文件夹frpc 是frp client端的部分。修改配置文件:frpc.ini
1 |
sudo vim /usr/local/frp/frpc.ini |
# 配置模板
[common]
server_addr = 8.130.xx.xx
server_port = 7000
token = gtj&$%##ajdwh172831
[ssh_wxl]
type = tcp
local_ip = 192.168.68.xx
local_port = 8014
remote_port = 8014
custom_domains = www.ikuai123.top
配置成tcp实测可实现http服务转发;http是应用层,tcp是传输层,不会冲突的
如果本地有多个服务需要穿透,则复制[ssh_wxl]及以下的内容到frpc.ini的最后,修改[ssh_wxl]和remote_port即可
4.多客户端访问只需要修改frpc.ini中的[ssh_wxl]和remote_port即可(注意:remote_port即外网访问的端口可以使用80)
5.server_port和remote_port中的端口号必须加入防火墙白名单,并在云服务器控制台添加防火墙规则配置
6.启动frpc(这种关闭窗口就会失效)
./frpc -c frpc.ini
7.配置开机启动(*建议使用这种方式)
vim /usr/lib/systemd/system/frpc.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
重新加载服务的配置文件
systemctl daemon-reload
设置frpc开机自启
systemctl enable frpc
重启服务器
reboot
查看frpc服务运行状态
systemctl status frpc