Frp

SunSeekerX ... 2021-6-25 大约 3 分钟

# Frp

Github:https://github.com/fatedier/frp (opens new window)

中文文档:https://gofrp.org/docs/ (opens new window)

# 下载

目前可以在 Github 的 Release (opens new window) 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。

服务端

因为我的公网服务器是 amd64 的所以下载对应的 amd64 包。

客户端

我的客户端为 n1 刷了 armbian 5.77 为 arm64 位的架构下载对应的包。

# 部署

解压缩下载的压缩包,将其中的 frpc 拷贝到内网服务所在的机器上,将 frps 拷贝到具有公网 IP 的机器上,放置在任意目录。

服务端

我放在 /root/app/frp_0.37.0_linux_amd64

客户端

我放在 /root/app/frp_0.37.0_linux_arm64

# 开始使用

编写配置文件,先通过 ./frps -c ./frps.ini 启动服务端,再通过 ./frpc -c ./frpc.ini 启动客户端。如果需要在后台长期运行,建议结合其他工具使用,例如 systemdsupervisor

如果是 Windows 用户,需要在 cmd 终端中执行命令。

配置文件如何编写可以参考 示例 (opens new window) 中的内容。

服务端

记得放开使用的端口!!!

frps.ini

[common]
bind_port = 7000
vhost_http_port = 7070
token = xxxxxxxx

dashboard_port = 7071
1
2
3
4
5
6

客户端

frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000
token = xxxxxxxx

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

[bt-panel]
type = http
local_port = 2233
custom_domains = bt-panel.example.cn

[docker]
type = http
local_port = 9000
custom_domains = docker.example.cn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 开机自启

服务端

  1. 复制

    cp /root/app/frp_0.37.0_linux_amd64/systemd/frps.service /etc/systemd/system
    
    1
  2. 进入 /etc/systemd/system

    cd /etc/systemd/system
    
    1
  3. 编辑 frps.service

    [Unit]
    Description=Frp Server Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    Restart=on-failure
    RestartSec=5s
    ExecStart=/root/app/frp_0.37.0_linux_amd64/frps -c /root/app/frp_0.37.0_linux_amd64/frps.ini
    
    [Install]
    WantedBy=multi-user.target
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
  4. 设置权限

    chmod 754 frp*.service
    
    1
  5. 设置开机启动即可

    systemctl enable frp*.service
    
    1

移除开机自启

# 进入 /etc/systemd/system
cd /etc/systemd/system
# 关闭服务
systemctl stop frps
# 删除服务文件
rm -rf frps.service
1
2
3
4
5
6

客户端

  1. 复制
cp /root/app/frp_0.37.0_linux_arm64/systemd/frpc.service /etc/systemd/system
1
  1. 进入 /etc/systemd/system

    cd /etc/systemd/system
    
    1
  2. 编辑 frpc.service

    [Unit]
    Description=Frp Client Service
    After=network.target
    Wants=network.target
    
    [Service]
    Type=simple
    User=root
    Restart=always
    RestartSec=5s
    ExecStart=/root/app/frp_0.37.0_linux_arm64/frpc -c /root/app/frp_0.37.0_linux_arm64/frpc.ini
    ExecReload=/root/app/frp_0.37.0_linux_arm64/frpc reload -c /root/app/frp_0.37.0_linux_arm64/frpc.ini
    LimitNOFILE=infinity
    
    [Install]
    WantedBy=multi-user.target
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
  3. 设置权限

    chmod 754 frp*.service
    
    1
  4. 设置开机启动即可

    systemctl enable frp*.service
    
    1

移除开机自启

# 进入 /etc/systemd/system
cd /etc/systemd/system
# 关闭服务
systemctl stop frpc
# 删除服务文件
rm -rf frpc.service
1
2
3
4
5
6

其他命令

systemctl daemon-reload
systemctl enable frpc
systemctl status frpc
systemctl enable frps
systemctl status frps

# 启动服务:
systemctl start vsftpd.service
# 关闭服务:
systemctl stop vsftpd.service
# 重启服务:
systemctl restart vsftpd.service
# 显示服务的状态:
systemctl status vsftpd.service
# 在开机时启用服务:
systemctl enable vsftpd.service
# 在开机时禁用服务:
systemctl disable vsftpd.service
# 查看服务是否开机启动:
systemctl is-enabled vsftpd.service
# 查看已启动的服务列表:
systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表:
systemctl --failed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# Docker 部署

# 服务端

新建配置文件

mkdir -p /etc/frp/
cd /etc/frp/
touch frps.ini
1
2
3

写入配置文件,frps.ini,根据你自己的配置

[common]
bind_port = 7000
vhost_http_port = 7070
token = xxxxxx

dashboard_port = 7071
1
2
3
4
5
6

启动容器

docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
1

# 客户端

新建配置文件

mkdir -p /etc/frp/
cd /etc/frp/
touch frpc.ini
1
2
3

写入配置文件,frpc.ini,根据你自己的配置

[common]
server_addr = x.x.x.x
server_port = 7000
token = xxxxxxxx

admin_addr = 127.0.0.1
admin_port = 7400

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


[a.example.com]
type = http
local_port = 2233
custom_domains = a.example.com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

启动容器

docker run --restart=always --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc
1
上次编辑于: 2021年7月5日 06:37