Carlisle's Site

Back

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

准备#

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

需要一台内网机器

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

服务端#

配置#

我使用的是 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
shell

修改服务端配置 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
plaintext

启动#

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

./frps -c ./frps.ini &
shell

如果需要开机后台自启动则需要编写 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
shell

内容如下

[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
plaintext

启动 FRP 并设置开机启动

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

客户端#

支持的客户端有很多,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
shell

修改客户端配置 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
plaintext

启动#

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

./frpc -c ./frpc.ini &
shell

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

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

填入一下内容

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

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

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

测试#

测试 web#

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

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

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

测试 ssh#

ssh -oPort=6000 [email protected]
shell

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

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

参考#

frp 简单使用
https://carlislechan.github.io/blog/20171201-frp-usage
Author Carlisle
Published at December 1, 2017
Comment seems to stuck. Try to refresh?✨