frp 简单使用

2017年12月1日 · 855 字 · 2 分钟 · FRP

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。

官方地址:https://github.com/fatedier/frp

准备

需要一台公网机器( vps 或云主机)

需要一台内网机器

frps.ini: 服务端配置文件
frps: 服务端软件
frpc.ini: 客户端配置文件
frpc: 客户端软件

服务端

配置

我使用的是 centOS,当然你也可以部署到其他平台上。

# 下载所需文件
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

# 解压缩
tar -zxvf frp_0.13.0_linux_amd64.tar.gz

cd frp_0.13.0_linux_amd64

# 删除无用文件(服务端不需要)
rm -f frpc
rm -f frpc.ini

修改服务端配置 frps.ini

# frps.ini
[common]
bind_port = 7000

dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = En1xIcYe4hV2

auth_token = En1xIcYe4hV2

# 启用特权模式
privilege_mode = true
privilege_token = En1xIcYe4hV2

vhost_http_port = 80 // 国内vps未备案可能会禁用80端口,如果被禁换个端口即可
vhost_https_port = 443 // 国内vps未备案可能会禁用80端口,如果被禁换个端口即可

subdomain_host = frp.xxx.com

启动

如果只是简单启动可执行下面的命令

./frps -c ./frps.ini &

如果需要开机后台自启动则需要编写 FRP SERVICE 文件,以 CENTOS7 为例

# 复制文件
cp frps /usr/local/bin/frps
mkdir /etc/frp
cp frps.ini /etc/frp/frps.ini

# 编写 frp service 文件
vim /usr/lib/systemd/system/frps.service

内容如下

[Unit]
Description=frps
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

启动 FRP 并设置开机启动

sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps

客户端

支持的客户端有很多,macOS、Linux、Synology、路由器等。

配置

我使用的是 macOS,所以登录服务器之后下载文件。

# 下载所需文件(mac 下下载会出现文件损坏,不知道什么原因,如果出现请使用其他方式下载)
curl -O https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_darwin_amd64.tar.gz

# 解压缩
tar -zxvf frp_0.13.0_darwin_amd64.tar.gz

cd frp_0.13.0_darwin_amd64

修改客户端配置 frpc.ini,注意与 frps.ini 的配置对应

# frpc.ini
[common]
server_addr = frp.xxx.com
server_port = 7000
auth_token = En1xIcYe4hV2
privilege_token = En1xIcYe4hV2

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

[nextcloud]
type = http
local_ip = 192.168.1.x
local_port = 8888
subdomain = nextcloud

启动

如果只是简单启动可执行下面的命令

./frpc -c ./frpc.ini &

如果需要开机后台自启动则需要编写 shell 脚本,以 macOS 为例

# 编辑脚本文件
vi /Users/carlisle/Documents/frp_0.13.0_darwin_amd64/frp_start.sh

填入一下内容

# /bin/bash
cd /Users/carlisle/Documents/frp_0.13.0_darwin_amd64
nohup ./frpc -c ./frpc.ini &
# 设置文件权限
chmod +x frp_start.sh

按照下面的路径设置自启动

System Preferences → Users and groups → Login ite → add ite → frp_start.sh

测试

测试 web

在客户端启动一个 Web 服务器

# 这里的 8000 端口对应上面客户端的配置中的 local_port
python -m SimpleHTTPServer 8000

在地址栏输入 vps_ip:6002 如果能成功访问到则说明测试通过。

测试 ssh

ssh -oPort=6000 carlisle@x.x.x.x

登录成功则说明测试通过。

如果出现访问失败的情况,注意检查 客户端 是否开启了远程登录。

参考