frp安装指南

准备:家用FnOS NAS、腾讯云公网IP服务器

实现「家里 fnOS 迷你主机(FRP 客户端)←→腾讯云 CentOS7(FRP 服务端)」的内网穿透

一、核心前提(先确认)

  1. 腾讯云 CentOS7:

    • 已开放端口(FRP 服务端端口、需穿透的业务端口),在「安全组」中放行(后续会说具体端口);
    • 有公网 IP(腾讯云服务器默认有)。
  2. 家里 fnOS 迷你主机:

    • 能联网,且能访问腾讯云服务器(可先 ping 云服务器 IP 测试);
    • fnOS 本质是 Linux 内核,支持运行 FRP 客户端(二进制文件)。

二、步骤 1:下载 FRP(服务端 + 客户端)

FRP 是跨平台二进制文件,无需编译,直接下载对应版本:

1. 腾讯云 CentOS7(服务端,frps)

1
2
3
4
5
6
7
8
# 登录云服务器,下载FRP(选amd64架构,适配CentOS7)
cd /usr/local
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz

# 解压
tar -zxvf frp_0.54.0_linux_amd64.tar.gz
mv frp_0.54.0_linux_amd64 frp
cd frp

2. 家里 fnOS 迷你主机(客户端,frpc)

1
2
3
4
5
6
7
8
# 登录fnOS(终端/SSH),下载同版本FRP(fnOS一般是amd64架构)
cd /usr/local
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz

# 解压
tar -zxvf frp_0.54.0_linux_amd64.tar.gz
mv frp_0.54.0_linux_amd64 frp
cd frp

三、步骤 2:配置腾讯云 FRP 服务端(frps)

1. 编辑服务端配置文件

1
2
3
4
5
6
# 进入FRP目录,备份默认配置
cd /usr/local/frp
mv frps.ini frps.ini.bak

# 新建并编辑配置文件
vim frps.ini

粘贴以下配置(核心配置,极简且通用):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# FRP服务端核心配置
[common]
# 服务端监听端口(客户端连接用,需在腾讯云安全组放行)
bind_port = 7000
# 可选:开启管理面板(方便查看状态,需放行7500端口)
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 你的管理面板密码(自定义)
# 认证token(客户端必须和服务端一致,防止他人连接)
token = 你的自定义token(如123456abc,记下来,客户端要用)
# 可选:允许HTTP穿透(若需穿透网页服务,放行80端口)
vhost_http_port = 80
# 可选:允许HTTPS穿透(放行443端口)
vhost_https_port = 443

保存退出(vim 中按ESC:wq)。

2. 腾讯云安全组放行端口

登录腾讯云控制台 → 你的服务器 → 安全组 → 入站规则 → 添加以下端口:

  • 7000(FRP 核心连接端口,必加);
  • 7500(管理面板,可选);
  • 80/443(HTTP/HTTPS 穿透,按需加);
  • 你需要穿透的业务端口(比如家里主机的 22 端口(SSH)、8080 端口(网页),后续示例用 22 和 8080)。

3. 启动服务端并测试

1
2
# 前台启动(先测试是否正常)
./frps -c ./frps.ini

✅ 正常输出:start frps success,无报错。

❌ 若报错「端口被占用」:改bind_port为其他端口(如 7001),并同步放行安全组。

四、步骤 3:配置家里 fnOS FRP 客户端(frpc)

1. 编辑客户端配置文件

1
2
3
4
5
6
# 进入FRP目录,备份默认配置
cd /usr/local/frp
mv frpc.ini frpc.ini.bak

# 新建并编辑配置文件
vim frpc.ini

粘贴以下配置(替换占位符):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# FRP客户端核心配置
[common]
# 腾讯云服务器公网IP
server_addr = 你的云服务器IP(如123.xxx.xxx.xxx)
# 服务端bind_port(和服务端一致)
server_port = 7000
# 认证token(和服务端一致)
token = 你刚才设置的token(如123456abc)

# 示例1:穿透家里主机的SSH(22端口)
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 云服务器映射端口(自定义,需放行安全组,如7022)
remote_port = 7022

# 示例2:穿透家里主机的网页服务(8080端口)
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 7080

✅ 配置说明:

  • [ssh]/[web] 是穿透规则名称(自定义);
  • local_port 是家里主机的业务端口;
  • remote_port 是云服务器的映射端口(需在安全组放行)。

2. 启动客户端并测试

1
2
# 前台启动(先测试)
./frpc -c ./frpc.ini

✅ 正常输出:start frpc success,无报错;

✅ 验证穿透:

  • 测试 SSH 穿透:在任意联网电脑执行 ssh 用户名@云服务器IP -p 7022,能登录家里 fnOS 主机即成功;
  • 测试网页穿透:访问 http://云服务器IP:7080,能打开家里主机的网页即成功。

五、步骤 4:设置自启(避免服务器 / 主机重启后失效)

1. 腾讯云 CentOS7(frps 自启)

1
2
# 新建systemd服务文件
vim /usr/lib/systemd/system/frps.service

粘贴以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=FRP Server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

启动并设置开机自启:

1
2
3
4
5
6
systemctl daemon-reload
systemctl start frps
systemctl enable frps

# 检查状态
systemctl status frps

2. 家里 fnOS 主机(frpc 自启)

fnOS 兼容 systemd,操作和 CentOS 一致:

1
2
# 新建systemd服务文件
vim /usr/lib/systemd/system/frpc.service

粘贴以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=FRP Client
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

启动并设置开机自启:

1
2
3
4
5
6
systemctl daemon-reload
systemctl start frpc
systemctl enable frpc

# 检查状态
systemctl status frpc

六、常见问题排查

问题现象 解决方案
客户端提示「connect to server failed」 1. 检查云服务器 IP / 端口是否正确;2. 安全组是否放行 7000 端口;3. token 是否一致
穿透后无法访问 1. 检查云服务器安全组是否放行 remote_port;2. 家里主机的 local_port 是否开启服务;3. 防火墙是否拦截
自启失败 1. 检查 service 文件路径是否正确;2. 执行 systemctl daemon-reload 后重试

总结

  1. 核心流程:下载 FRP → 配置服务端(云服务器)→ 配置客户端(fnOS)→ 测试穿透 → 设置自启;
  2. 关键要点:安全组放行端口、token 一致、配置文件路径正确;
  3. 验证标准:能通过云服务器 IP + 映射端口访问家里主机的业务(SSH / 网页),重启后仍能访问。

腾讯云

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
[root@VM-4-15-centos local]# tar -zxvf frp_0.54.0_linux_amd64.tar.gz
frp_0.54.0_linux_amd64/
frp_0.54.0_linux_amd64/frps
frp_0.54.0_linux_amd64/frps.toml
frp_0.54.0_linux_amd64/frpc.toml
frp_0.54.0_linux_amd64/LICENSE
frp_0.54.0_linux_amd64/frpc
[root@VM-4-15-centos local]# ll
total 12088
drwxr-xr-x. 2 root root 4096 Jan 20 19:16 bin
drwxr-xr-x 2 root root 4096 Nov 16 18:49 btgojdk
drwxr-xr-x 2 root root 4096 Nov 16 18:49 btjdk
drwxr-xr-x 2 root root 4096 Nov 16 18:49 bttomcat
drwxr-xr-x 6 root root 4096 Nov 16 18:40 curl
drwxr-xr-x. 2 root root 4096 Apr 11 2018 etc
drwxr-xr-x 2 www 127 4096 Feb 1 2024 frp_0.54.0_linux_amd64
-rw-r--r-- 1 root root 12287698 Jan 26 22:20 frp_0.54.0_linux_amd64.tar.gz
drwxr-xr-x 2 www 127 4096 Dec 21 2023 frps
drwxr-xr-x. 2 root root 4096 Apr 11 2018 games
drwxr-xr-x. 5 root root 4096 Nov 16 18:42 include
drwxr-xr-x. 4 root root 4096 Nov 16 18:42 lib
drwxr-xr-x. 2 root root 4096 Nov 16 18:42 lib64
drwxr-xr-x. 2 root root 4096 Apr 11 2018 libexec
drwxr-xr-x 6 root root 4096 Nov 16 18:40 libiconv
drwxr-xr-x 3 root root 4096 Nov 16 18:40 man
drwxr-xr-x 3 root root 4096 Nov 16 18:42 nginx
drwxr-xr-x 9 root root 4096 Nov 16 18:40 openssl
drwxr-xr-x 16 root root 4096 Nov 15 23:27 qcloud
drwxr-xr-x. 2 root root 4096 Apr 11 2018 sbin
drwxr-xr-x. 10 root root 4096 Nov 16 18:42 share
drwxr-xr-x. 2 root root 4096 Apr 11 2018 src
drwxr-xr-x 3 root root 4096 Nov 17 14:04 zend
[root@VM-4-15-centos local]# mv frp_0.54.0_linux_amd64 frp
[root@VM-4-15-centos local]# cd frp
[root@VM-4-15-centos frp]# ll
total 31268
-rwxr-xr-x 1 www 127 13946880 Feb 1 2024 frpc
-rw-r--r-- 1 www 127 142 Feb 1 2024 frpc.toml
-rwxr-xr-x 1 www 127 18051072 Feb 1 2024 frps
-rw-r--r-- 1 www 127 16 Feb 1 2024 frps.toml
-rw-r--r-- 1 www 127 11358 Feb 1 2024 LICENSE
[root@VM-4-15-centos frp]# cd /usr/local/frp
[root@VM-4-15-centos frp]# mv frps.toml frps.toml.bak
[root@VM-4-15-centos frp]# vim frps.toml
[root@VM-4-15-centos frp]# ./frps -c ./frps.toml
WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
2026/01/26 22:23:40 [I] [root.go:105] frps uses config file: ./frps.toml
2026/01/26 22:23:40 [I] [service.go:225] frps tcp listen on 0.0.0.0:7000
create vhost http listener error, listen tcp 0.0.0.0:80: bind: address already in use
[root@VM-4-15-centos frp]# vim frps.toml
[root@VM-4-15-centos frp]# ./frps -c ./frps.toml
WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
2026/01/26 22:24:31 [I] [root.go:105] frps uses config file: ./frps.toml
2026/01/26 22:24:31 [I] [service.go:225] frps tcp listen on 0.0.0.0:7000
2026/01/26 22:24:31 [I] [root.go:114] frps started successfully
2026/01/26 22:24:31 [I] [service.go:338] dashboard listen on 0.0.0.0:7500
2026/01/26 22:37:32 [I] [service.go:563] [66754791756020eb] client login info: ip [220.113.107.134:51432] version [0.54.0] hostname [] os [linux] arch [amd64]
2026/01/26 22:37:32 [I] [tcp.go:82] [66754791756020eb] [ssh] tcp proxy listen port [0]
2026/01/26 22:37:32 [I] [control.go:401] [66754791756020eb] new proxy [ssh] type [tcp] success
2026/01/26 22:41:57 [I] [proxy.go:115] [66754791756020eb] [ssh] proxy closing
2026/01/26 22:41:57 [I] [control.go:359] [66754791756020eb] client exit success
2026/01/26 22:41:57 [W] [proxy.go:201] [66754791756020eb] [ssh] listener is closed: accept tcp [::]:18841: use of closed network connection
2026/01/26 22:45:45 [I] [service.go:563] [0c77714908aafefb] client login info: ip [220.113.107.134:42856] version [0.54.0] hostname [] os [linux] arch [amd64]
2026/01/26 22:45:45 [I] [tcp.go:82] [0c77714908aafefb] [ssh] tcp proxy listen port [0]
2026/01/26 22:45:45 [I] [control.go:401] [0c77714908aafefb] new proxy [ssh] type [tcp] success
2026/01/26 22:47:26 [I] [proxy.go:115] [0c77714908aafefb] [ssh] proxy closing
2026/01/26 22:47:26 [W] [proxy.go:201] [0c77714908aafefb] [ssh] listener is closed: accept tcp [::]:18841: use of closed network connection
2026/01/26 22:47:26 [I] [control.go:359] [0c77714908aafefb] client exit success
2026/01/26 22:47:26 [I] [service.go:563] [6a61d9adf736118f] client login info: ip [220.113.107.134:55428] version [0.54.0] hostname [] os [linux] arch [amd64]
2026/01/26 22:47:26 [I] [tcp.go:82] [6a61d9adf736118f] [ssh] tcp proxy listen port [0]
2026/01/26 22:47:26 [I] [control.go:401] [6a61d9adf736118f] new proxy [ssh] type [tcp] success
^C
[root@VM-4-15-centos frp]# ^C
[root@VM-4-15-centos frp]# vim /usr/lib/systemd/system/frps.service
[root@VM-4-15-centos frp]# systemctl daemon-reload
[root@VM-4-15-centos frp]# systemctl start frps
[root@VM-4-15-centos frp]# systemctl enable frps
Created symlink from /etc/systemd/system/multi-user.target.wants/frps.service to /usr/lib/systemd/system/frps.service.
[root@VM-4-15-centos frp]# systemctl status frps
● frps.service - FRP Server (CentOS7)
Loaded: loaded (/usr/lib/systemd/system/frps.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2026-01-26 22:49:14 CST; 11s ago
Main PID: 25440 (frps)
CGroup: /system.slice/frps.service
├─ 2521 /usr/local/frps/frps -c /usr/local/frps/frps.toml
└─25440 /usr/local/frp/frps -c /usr/local/frp/frps.toml

Jan 26 22:49:14 VM-4-15-centos systemd[1]: Started FRP Server (CentOS7).
Jan 26 22:49:14 VM-4-15-centos frps[25440]: WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
Jan 26 22:49:14 VM-4-15-centos frps[25440]: 2026/01/26 22:49:14 [I] [root.go:105] frps uses config file: /usr/local/frp/frps.toml
Jan 26 22:49:15 VM-4-15-centos frps[25440]: 2026/01/26 22:49:15 [I] [service.go:225] frps tcp listen on 0.0.0.0:7000
Jan 26 22:49:15 VM-4-15-centos frps[25440]: 2026/01/26 22:49:15 [I] [root.go:114] frps started successfully
Jan 26 22:49:15 VM-4-15-centos frps[25440]: 2026/01/26 22:49:15 [I] [service.go:338] dashboard listen on 0.0.0.0:7500
[root@VM-4-15-centos frp]#




[root@VM-4-15-centos frp]# cat /usr/lib/systemd/system/frps.service
[Unit]
Description=FRP Server (CentOS7)
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

[root@VM-4-15-centos frp]#






[root@VM-4-15-centos frp]# cat frps.toml
# FRP服务端核心配置(toml格式)
[common]
# 服务端监听端口(客户端连接用,必配,需放行安全组)
bind_port = 7000
# 认证token(客户端必须和服务端一致,自定义,比如123456abc)
token = "1qaz@WSX"
# 可选:开启管理面板(方便查看状态,需放行7500端口)
dashboard_port = 7500
dashboard_user = "admin"
dashboard_pwd = "1qaz@WSX"
# 可选:HTTP穿透端口(如需穿透网页服务,放行80端口)
# vhost_http_port = 80

[root@VM-4-15-centos frp]#

FnOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
root@FnOS:/usr/local# ll
total 12048
drwxr-xr-x 12 root root 4096 Jan 26 22:30 .
drwxr-xr-x 14 root root 4096 Jan 26 20:28 ..
drwxr-xr-x 7 root root 4096 Nov 17 21:48 apps
drwxr-xr-x 2 root root 4096 Nov 18 10:39 bin
drwxr-xr-x 2 root root 4096 Jul 7 2023 etc
-rw-rw----+ 1 Curry root 12287698 Jan 26 22:20 frp_0.54.0_linux_amd64.tar.gz
drwxr-xr-x 2 root root 4096 Jul 7 2023 games
drwxr-xr-x 3 root root 4096 Jan 26 20:27 include
drwxr-xr-x 6 root root 4096 Jan 26 20:27 lib
lrwxrwxrwx 1 root root 9 Jul 7 2023 man -> share/man
drwxr-xr-x 3 root root 4096 Nov 11 16:07 samba
drwxr-xr-x 2 root root 4096 Jul 7 2023 sbin
drwxr-xr-x 8 root root 4096 Aug 20 2024 share
drwxr-xr-x 2 root root 4096 Jul 7 2023 src
root@FnOS:/usr/local# tar -zxvf frp_0.54.0_linux_amd64.tar.gz
frp_0.54.0_linux_amd64/
frp_0.54.0_linux_amd64/frps
frp_0.54.0_linux_amd64/frps.toml
frp_0.54.0_linux_amd64/frpc.toml
frp_0.54.0_linux_amd64/LICENSE
frp_0.54.0_linux_amd64/frpc
root@FnOS:/usr/local# mv frp_0.54.0_linux_amd64 frp
root@FnOS:/usr/local# ll
total 12052
drwxr-xr-x 13 root root 4096 Jan 26 22:31 .
drwxr-xr-x 14 root root 4096 Jan 26 20:28 ..
drwxr-xr-x 7 root root 4096 Nov 17 21:48 apps
drwxr-xr-x 2 root root 4096 Nov 18 10:39 bin
drwxr-xr-x 2 root root 4096 Jul 7 2023 etc
drwxr-xr-x 2 1001 docker 4096 Feb 1 2024 frp
-rw-rw----+ 1 Curry root 12287698 Jan 26 22:20 frp_0.54.0_linux_amd64.tar.gz
drwxr-xr-x 2 root root 4096 Jul 7 2023 games
drwxr-xr-x 3 root root 4096 Jan 26 20:27 include
drwxr-xr-x 6 root root 4096 Jan 26 20:27 lib
lrwxrwxrwx 1 root root 9 Jul 7 2023 man -> share/man
drwxr-xr-x 3 root root 4096 Nov 11 16:07 samba
drwxr-xr-x 2 root root 4096 Jul 7 2023 sbin
drwxr-xr-x 8 root root 4096 Aug 20 2024 share
drwxr-xr-x 2 root root 4096 Jul 7 2023 src
root@FnOS:/usr/local# cd frp/
root@FnOS:/usr/local/frp# ll
total 31276
drwxr-xr-x 2 1001 docker 4096 Feb 1 2024 .
drwxr-xr-x 13 root root 4096 Jan 26 22:31 ..
-rwxr-xr-x 1 1001 docker 13946880 Feb 1 2024 frpc
-rw-r--r-- 1 1001 docker 142 Feb 1 2024 frpc.toml
-rwxr-xr-x 1 1001 docker 18051072 Feb 1 2024 frps
-rw-r--r-- 1 1001 docker 16 Feb 1 2024 frps.toml
-rw-r--r-- 1 1001 docker 11358 Feb 1 2024 LICENSE
root@FnOS:/usr/local/frp# mv frpc.toml frpc.toml.bak
root@FnOS:/usr/local/frp# vim frpc.toml
root@FnOS:/usr/local/frp# ./frpc -c ./frpc.toml
WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
2026/01/26 22:37:32 [I] [root.go:142] start frpc service for config file [./frpc.toml]
2026/01/26 22:37:32 [I] [service.go:287] try to connect to server...
2026/01/26 22:37:32 [I] [service.go:279] [66754791756020eb] login to server success, get run id [66754791756020eb]
2026/01/26 22:37:32 [I] [proxy_manager.go:173] [66754791756020eb] proxy added: [ssh]
2026/01/26 22:37:32 [I] [control.go:170] [66754791756020eb] [ssh] start proxy success
^C
root@FnOS:/usr/local/frp# vim /usr/lib/systemd/system/frpc.service
root@FnOS:/usr/local/frp# systemctl daemon-reload
root@FnOS:/usr/local/frp# systemctl start frpc
root@FnOS:/usr/local/frp# systemctl enable frpc
Created symlink /etc/systemd/system/multi-user.target.wants/frpc.service → /lib/systemd/system/frpc.service.
root@FnOS:/usr/local/frp# systemctl status frpc
● frpc.service - FRP Client (fnOS)
Loaded: loaded (/lib/systemd/system/frpc.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-01-26 22:45:45 CST; 11s ago
Main PID: 257727 (frpc)
Tasks: 6 (limit: 9086)
Memory: 4.7M
CPU: 22ms
CGroup: /system.slice/frpc.service
└─257727 /usr/local/frp/frpc -c /usr/local/frp/frpc.toml

Jan 26 22:45:45 FnOS systemd[1]: Started frpc.service - FRP Client (fnOS).
Jan 26 22:45:45 FnOS frpc[257727]: WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
Jan 26 22:45:45 FnOS frpc[257727]: 2026/01/26 22:45:45 [I] [root.go:142] start frpc service for config file [/usr/local/frp/frpc.toml]
Jan 26 22:45:45 FnOS frpc[257727]: 2026/01/26 22:45:45 [I] [service.go:287] try to connect to server...
Jan 26 22:45:45 FnOS frpc[257727]: 2026/01/26 22:45:45 [I] [service.go:279] [0c77714908aafefb] login to server success, get run id [0c77714908aafefb]
Jan 26 22:45:45 FnOS frpc[257727]: 2026/01/26 22:45:45 [I] [proxy_manager.go:173] [0c77714908aafefb] proxy added: [ssh]
Jan 26 22:45:45 FnOS frpc[257727]: 2026/01/26 22:45:45 [I] [control.go:170] [0c77714908aafefb] [ssh] start proxy success
Jan 26 22:45:51 FnOS systemd[1]: /lib/systemd/system/frpc.service:10: Failed to parse service restart specifier, ignoring: on-failure # 进程崩溃自动重启
Jan 26 22:45:51 FnOS systemd[1]: /lib/systemd/system/frpc.service:11: Failed to parse sec value, ignoring: 5s # 重启间隔5秒
root@FnOS:/usr/local/frp# vim /usr/lib/systemd/system/frpc.service
root@FnOS:/usr/local/frp# systemctl daemon-reload
root@FnOS:/usr/local/frp# systemctl restart frpc
root@FnOS:/usr/local/frp# systemctl status frpc
● frpc.service - FRP Client (fnOS)
Loaded: loaded (/lib/systemd/system/frpc.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-01-26 22:47:26 CST; 2s ago
Main PID: 260421 (frpc)
Tasks: 7 (limit: 9086)
Memory: 4.7M
CPU: 21ms
CGroup: /system.slice/frpc.service
└─260421 /usr/local/frp/frpc -c /usr/local/frp/frpc.toml

Jan 26 22:47:26 FnOS systemd[1]: Started frpc.service - FRP Client (fnOS).
Jan 26 22:47:26 FnOS frpc[260421]: WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
Jan 26 22:47:26 FnOS frpc[260421]: 2026/01/26 22:47:26 [I] [root.go:142] start frpc service for config file [/usr/local/frp/frpc.toml]
Jan 26 22:47:26 FnOS frpc[260421]: 2026/01/26 22:47:26 [I] [service.go:287] try to connect to server...
Jan 26 22:47:26 FnOS frpc[260421]: 2026/01/26 22:47:26 [I] [service.go:279] [6a61d9adf736118f] login to server success, get run id [6a61d9adf736118f]
Jan 26 22:47:26 FnOS frpc[260421]: 2026/01/26 22:47:26 [I] [proxy_manager.go:173] [6a61d9adf736118f] proxy added: [ssh]
Jan 26 22:47:26 FnOS frpc[260421]: 2026/01/26 22:47:26 [I] [control.go:170] [6a61d9adf736118f] [ssh] start proxy success
root@FnOS:/usr/local/frp#






root@FnOS:/usr/local/frp# cat /usr/lib/systemd/system/frpc.service
[Unit]
Description=FRP Client (fnOS)
After=network.target

[Service]
Type=simple
User=root

ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.toml
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

root@FnOS:/usr/local/frp#





root@FnOS:/usr/local/frp# cat frpc.toml
# FRP客户端核心配置
[common]
# 腾讯云服务器公网IP(必填,比如123.xxx.xxx.xxx)
server_addr = "118.195.134.156"
# 服务端bind_port(和服务端一致,默认7000)
server_port = 7000
# 认证token(必须和服务端的token完全一致)
token = "1qaz@WSX"

# ========== 示例1:穿透fnOS的SSH(22端口,最常用) ==========
[ssh]
type = "tcp"
local_ip = "127.0.0.1" # 本地回环地址,不用改
local_port = 22 # fnOS的SSH端口(默认22)
remote_port = 7022 # 云服务器映射端口(自定义,需在安全组放行7022)

# ========== 示例2:穿透fnOS上的网页服务(比如8080端口,按需添加) ==========
#[web]
type = "tcp"
local_ip = "127.0.0.1"
local_port = 5666 # 家里主机的网页服务端口
remote_port = 7566 # 云服务器映射端口(需放行7080)

root@FnOS:/usr/local/frp#

Q:http://118.195.134.156:7566/login 为什么访问这个打不开飞牛?

1.本地服务是否正常

2.访问路径是否正确

3.端口 / IP 是否匹配

第一步:本地验证飞牛 Web 服务(最关键,先做!)

飞牛 fnOS 主机本地执行命令,验证 5666 端口的 Web 服务 +/login路径是否真的能访问,这是所有排查的基础:

方法 1:用 curl 命令测试(最直接)

1
2
3
4
# 测试本地5666端口根路径是否通
curl http://127.0.0.1:5666
# 测试本地5666端口/login路径是否通
curl http://127.0.0.1:5666/login

方法 2:用浏览器测试(可视化)

如果 fnOS 有桌面,直接打开本地浏览器输入http://127.0.0.1:5666/login,看是否能显示飞牛的登录页面。

✅ 本地能访问(curl 有输出 / 浏览器有登录页)

→ 说明飞牛服务 + 路径都正常,问题出在FRP 配置的 IP(比如飞牛服务绑定的是内网 IP,不是 127.0.0.1),直接跳转到第三步修正。

❌ 本地不能访问(curl 提示Connection refused/404 Not Found

→ 说明飞牛的 Web 服务本身就有问题,和 FRP 无关,先解决本地服务问题,分两种情况处理:

  1. Connection refused:飞牛的 5666 端口 Web 服务根本没启动,先在 fnOS 上启动飞牛的对应服务;
  2. 404 Not Found:飞牛服务启动了,但没有 /login 路径(访问路径错了),确认飞牛的正确登录路径(比如是/admin//console,或默认根路径就是登录页)。

第二步:确认腾讯云 7566 端口是否真的放行(排除安全组漏配)

如果本地服务正常,再验证腾讯云的安全组是否真的放行 7566 端口(避免之前漏加 / 加错规则):

方法 1:在线端口检测(任意联网电脑打开浏览器)

访问在线端口检测工具:https://tool.chinaz.com/port/

输入:**服务器 IP118.195.134.156 + 端口7566**,点击检测,显示「端口开放」即为正常。

方法 2:用 telnet 测试(任意联网电脑的终端)

1
2
# Windows/mac/Linux都可执行,测试云服务器7566端口是否通
telnet 118.195.134.156 7566

✅ 端口开放(检测工具显示开放 /telnet 不超时)

→ 安全组无问题,继续下一步。

❌ 端口关闭(检测工具显示关闭 /telnet 超时)

→ 腾讯云安全组没加 7566 端口规则,重新添加:

登录腾讯云控制台→服务器安全组→入站规则→添加:

端口范围7566 + 协议TCP + 来源0.0.0.0/0 + 策略允许,等待 1-2 分钟生效。

第三步:修正 FRP 的 local_ip(90% 的非本地问题出在这!)

如果本地能访问但远程不能访问,大概率是飞牛的 Web 服务绑定的是 fnOS 的内网 IP(如 192.168.x.x),不是 127.0.0.1,而 FRP 配置中写的local_ip = 127.0.0.1,导致 FRP 无法转发到实际服务。

步骤 1:找到 fnOS 的内网 IP 和服务绑定 IP

1
2
3
4
# 在fnOS上执行,查看本机内网IP(一般是192.168.1.x/192.168.0.x)
ip addr
# 在fnOS上执行,查看5666端口的服务绑定的IP(关键!)
netstat -tulpn | grep 5666

关键输出解读(示例):

1
2
3
tcp6       0      0 :::5666                 :::*                    LISTEN      1234/xxx
# 或
tcp 0 0 192.168.1.100:5666 0.0.0.0:* LISTEN 1234/xxx
  • :::5666:服务绑定所有 IP(127.0.0.1 + 内网 IP),FRP 用 127.0.0.1 没问题;
  • 192.168.1.100:5666:服务仅绑定内网 IP,FRP 必须用这个内网 IP 作为local_ip,否则转发失败。

步骤 2:修改 FRP 客户端配置(frpc.toml)

1
2
# 在fnOS上编辑配置
vim /usr/local/frp/frpc.toml

web-5666规则的local_ip改为飞牛服务实际绑定的 IP(比如 192.168.1.100):

1
2
3
4
5
[web-5666]
type = "tcp"
local_ip = "192.168.1.100" # 替换为fnOS的内网IP/服务绑定IP
local_port = 5666
remote_port = 7566

步骤 3:重启 FRP 客户端使配置生效

1
2
3
systemctl restart frpc
# 检查状态,确认规则正常加载
systemctl status frpc

第四步:确认访问路径是否正确(避免路径写错)

很多设备的 Web 服务根路径就是登录页,无需加/login,比如飞牛的登录页实际是http://127.0.0.1:5666,而非http://127.0.0.1:5666/login

测试:远程访问根路径

在浏览器中输入http://118.195.134.156:7566,看是否能显示飞牛的登录页,若能,说明只是访问路径多写了 /login

第五步:备选方案:换 FRP 映射端口(排除端口冲突)

极少数情况,云服务器 7566 端口被其他本地服务占用,导致 FRP 映射后无法转发,此时换一个映射端口即可:

1. 修改 frpc.toml 的 remote_port(比如改为 8566)

1
2
3
4
5
[web-5666]
type = "tcp"
local_ip = "xxx.xxx.xxx.xxx" # 实际IP
local_port = 5666
remote_port = 8566 # 新的映射端口

2. 腾讯云安全组放行 8566 端口

3. 重启 FRP 客户端,访问新地址

http://118.195.134.156:8566(或加 /login)。

最终排查流程(一句话总结)

本地能访问→改 FRP 的 local_ip 为内网 IP→重启 FRP→远程访问

本地不能访问→先启动飞牛 5666 端口服务 / 确认正确访问路径

补充:飞牛 fnOS 常见坑

  1. 飞牛的 Web 管理服务默认端口不是 5666(比如是 80/8080/9090),确认飞牛的实际管理端口;

  2. 飞牛开启了本地防火墙,拦截了 5666 端口,需在 fnOS 上关闭防火墙 / 放行 5666 端口:

    1
    2
    3
    4
    # 临时关闭fnOS防火墙
    systemctl stop firewalld
    # 永久关闭
    systemctl disable firewalld

从你本地 curl 的输出能明确:fnOS 的 5666 端口 Web 服务(飞牛)完全正常(能返回完整 HTML 页面),且/login路径也能访问,问题出在FRP 转发时的「静态资源路径」和「浏览器兼容性」(飞牛前端依赖的静态文件如图片 / JS,FRP 没正确转发),我帮你用更适配 Web 服务的 FRP HTTP 穿透替换当前的 TCP 穿透(TCP 穿透适合 SSH,但 Web 服务需要 HTTP 穿透来处理静态资源 / 路径转发),一步解决访问问题:

核心原因:TCP 穿透不适合 Web 服务的「路径 / 静态资源」转发

你当前用的type = "tcp"是通用穿透,能转发数据,但飞牛的 Web 页面依赖/assets//static等静态资源路径,TCP 穿透无法正确处理「域名 / IP + 端口」的路径映射,导致前端页面加载失败(看似打不开,实际是静态资源加载失败);而 FRP 的http类型穿透专门适配 Web 服务,能完美处理路径和静态资源。

第一步:修改腾讯云 FRP 服务端配置(frps.toml)

登录腾讯云 CentOS7,新增 HTTP 穿透的端口配置(选一个未被占用的端口,比如 8080):

1
2
# 编辑服务端配置
vim /usr/local/frp/frps.toml

[common]中添加vhost_http_port(HTTP 穿透的核心端口):

1
2
3
4
5
6
7
[common]
bind_port = 7000
token = "1qaz@WSX"
dashboard_port = 7500
dashboard_user = "admin"
dashboard_pwd = "你的面板密码"
vhost_http_port = 8080 # 新增:HTTP穿透端口(选未被占用的,比如8080)

保存后重启 FRP 服务端:

1
2
3
systemctl restart frps
# 检查状态,确认7000/8080端口都监听成功
systemctl status frps

第二步:腾讯云安全组放行 8080 端口(必做)

登录腾讯云控制台→安全组→入站规则→添加:

  • 端口范围:8080

  • 协议:TCP

  • 来源:0.0.0.0/0

  • 策略:允许

    等待 1-2 分钟生效。

第三步:修改 fnOS FRP 客户端配置(frpc.toml)

把原来的[web-5666] TCP 规则替换为http类型规则(适配 Web 服务):

1
2
# 编辑客户端配置
vim /usr/local/frp/frpc.toml

删除原有[web-5666]规则,新增以下 HTTP 规则:

1
2
3
4
5
6
# 保留原有[common]和[ssh]规则,新增以下内容
[fnOS-web]
type = "http" # 关键:改为http类型,适配Web服务
local_ip = "127.0.0.1"
local_port = 5666
custom_domains = "118.195.134.156" # 云服务器公网IP(作为自定义域名)

✅ 配置说明:

  • type = "http":专门适配 Web 服务,能正确转发路径和静态资源;
  • custom_domains:填云服务器 IP,访问时用「IP+HTTP 端口」即可。

保存后重启 FRP 客户端:

1
2
3
systemctl restart frpc
# 检查状态,确认[fnOS-web]规则加载成功
systemctl status frpc

第四步:访问飞牛 Web 服务(核心!用新的 HTTP 穿透地址)

现在用「云服务器 IP + HTTP 穿透端口」访问,无需加 7566 端口,直接访问:

1
http://118.195.134.156:8080/login

✅ 成功表现:

  • 浏览器能正常显示飞牛的登录页面(静态资源如图片 / JS 都能加载);
  • 输入飞牛的账号密码能正常登录。

关键补充:为什么 TCP 穿透不行,HTTP 穿透可以?

穿透类型 适用场景 静态资源处理 路径转发
TCP SSH / 数据库 / 端口 不处理 仅转发端口
HTTP Web 服务 自动处理 完整转发路径
飞牛的 Web 页面依赖/assets/polyfills-Rhxe3oXd.js/static/img/chrome.png等静态资源,TCP 穿透只能转发 5666 端口的主页面 HTML,但无法正确转发这些子路径的静态资源,导致页面看似打不开;而 HTTP 穿透能识别/login//assets等路径,完整转发所有资源。

若仍打不开,最后 2 个排查点(大概率能解决)

1. 飞牛 Web 服务的「跨域 / IP 限制」

部分设备的 Web 服务会限制「仅本地 IP 访问」,需在飞牛 fnOS 的 Web 服务配置中,允许云服务器 IP / 所有 IP 访问(飞牛 fnOS 的 Web 管理后台一般在「设置 - 安全」中调整)。

2. 浏览器缓存问题

清除浏览器缓存(Ctrl+Shift+Delete),或用「无痕模式」访问http://118.195.134.156:8080/login

总结

  1. 核心问题:TCP 穿透不适合 Web 服务的静态资源 / 路径转发,改用 HTTP 穿透即可;
  2. 关键操作:服务端加vhost_http_port→客户端改type = http→放行 8080 端口;
  3. 最终访问地址:http://118.195.134.156:8080/login(用 8080 端口,不是 7566)。

Q:只用改腾讯云的8080端口就可以了吗?

需要腾讯云服务端 + fnOS 客户端配合修改(两步核心操作),但整体改动很小,我用最简洁的方式告诉你「必须改的部分」和「不用改的部分」,避免你多做无用功:

先明确:哪些要改,哪些不用改

组件 必须改的操作 不用改的操作
腾讯云服务端 1. frps.toml 添加vhost_http_port = 8080;2. 安全组放行 8080 端口;3. 重启 frps 原有bind_port=7000/token等配置不变;SSH 穿透相关配置不变
fnOS 客户端 1. frpc.toml 把[web-5666]的 TCP 规则换成 HTTP 规则;2. 重启 frpc 原有[common]/[ssh]规则完全不变;本地 5666 端口的飞牛服务不用动

极简版操作(只做这 4 步,就能访问飞牛)

步骤 1:腾讯云服务端(2 分钟)

1
2
3
4
5
6
# 1. 编辑frps.toml,加一行8080端口配置
vim /usr/local/frp/frps.toml
# 在[common]里加:vhost_http_port = 8080
# 2. 重启frps
systemctl restart frps
# 3. 腾讯云控制台放行8080端口(TCP,0.0.0.0/0)

步骤 2:fnOS 客户端(2 分钟)

1
2
3
4
5
6
7
8
# 1. 编辑frpc.toml,删除原来的[web-5666],新增:
[fnOS-web]
type = "http"
local_ip = "127.0.0.1"
local_port = 5666
custom_domains = "118.195.134.156"
# 2. 重启frpc
systemctl restart frpc

步骤 3:访问(核心!换地址)

不用再访问7566端口,直接访问:

1
http://118.195.134.156:8080/login

为什么不能只改腾讯云的 8080 端口?

  • 腾讯云加vhost_http_port = 8080只是「开启了 HTTP 穿透的通道」,但这个通道需要 fnOS 客户端「主动对接」(把飞牛的 5666 端口 Web 服务挂载到这个 HTTP 通道上);
  • 你原来的[web-5666]是 TCP 规则,无法对接 HTTP 通道,必须把客户端规则改成type = http,才能让 FRP 正确处理飞牛的 Web 静态资源 / 路径。

关键提醒(避免踩坑)

  1. 改完后必须重启两端的 FRP(frps/frpc),否则配置不生效;
  2. 访问时用8080端口(HTTP 穿透端口),不是原来的7566端口;
  3. 原有 SSH 穿透(7022 端口)不受任何影响,仍能正常使用。

总结:核心就 2 个改动 —— 腾讯云加 8080 端口配置 + fnOS 客户端把 TCP 规则换成 HTTP 规则,其余配置都不用动,改完重启就能正常访问飞牛的登录页面了!

Q:必须要8080端口吗?

直接把 HTTP 穿透端口换成8099(完全避开 8080),全程只改端口数字,操作和逻辑完全不变,我给你8099 专属的极简操作步骤,直接复制执行就行,原有 SSH 穿透完全不受影响:

核心改动:仅把 8080 → 8099,其余全不变

第一步:腾讯云 CentOS7 服务端操作(3 步)

1
2
# 1. 编辑frps.toml,添加8099端口的HTTP穿透配置
vim /usr/local/frp/frps.toml

[common]配置块里加一行(其他配置别动):

1
vhost_http_port = 8099  # 换成8099,不是8080!

保存退出(ESC→:wq),继续执行:

1
2
3
4
# 2. 重启FRP服务端,加载新配置
systemctl restart frps
# 3. 检查状态(确认8099端口监听成功,无报错)
systemctl status frps

腾讯云安全组放行 8099 端口(必做)

控制台→安全组→入站规则→添加:

  • 端口范围:8099

  • 协议:TCP

  • 来源:0.0.0.0/0

  • 策略:允许

    等待 1-2 分钟生效。

第二步:fnOS 客户端操作(2 步,替换原有 TCP 规则)

1
2
# 1. 编辑frpc.toml,删除原来的[web-5666]TCP规则,新增以下HTTP规则
vim /usr/local/frp/frpc.toml

粘贴内容(custom_domains 填云服务器 IP,其余不变):

1
2
3
4
5
6
# 飞牛Web服务-HTTP穿透(8099端口)
[fnOS-web]
type = "http"
local_ip = "127.0.0.1"
local_port = 5666
custom_domains = "118.195.134.156"

保存退出,继续执行:

1
2
3
4
# 2. 重启FRP客户端,加载新规则
systemctl restart frpc
# 检查状态(确认[fnOS-web]规则加载成功)
systemctl status frpc

第三步:访问飞牛(核心!用 8099 端口)

直接在浏览器输入这个地址,不用加 7566,不用加 8080

1
http://118.195.134.156:8099/login

关键确认(避坑)

  1. 原有 SSH 穿透ssh root@118.195.134.156 -p7022完全正常,无任何影响;
  2. 本地 fnOS 的 5666 端口飞牛服务不用做任何改动
  3. 改完后如果访问空白 / 加载失败,清浏览器缓存 + 用无痕模式访问即可。

最终验证

访问后能看到飞牛的登录界面,输入账号密码就能正常登录,静态资源(图片 / JS)都会自动加载,解决之前 TCP 穿透的资源转发问题~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@VM-4-15-centos frp]# vim /usr/local/frp/frps.toml
[root@VM-4-15-centos frp]# systemctl restart frps
[root@VM-4-15-centos frp]# systemctl status frps
● frps.service - FRP Server (CentOS7)
Loaded: loaded (/usr/lib/systemd/system/frps.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2026-01-26 23:21:43 CST; 5s ago
Main PID: 3575 (frps)
CGroup: /system.slice/frps.service
└─3575 /usr/local/frp/frps -c /usr/local/frp/frps.toml

Jan 26 23:21:43 VM-4-15-centos systemd[1]: Started FRP Server (CentOS7).
Jan 26 23:21:43 VM-4-15-centos frps[3575]: WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
Jan 26 23:21:43 VM-4-15-centos frps[3575]: 2026/01/26 23:21:43 [I] [root.go:105] frps uses config file: /usr/local/frp/frps.toml
Jan 26 23:21:44 VM-4-15-centos frps[3575]: 2026/01/26 23:21:44 [I] [service.go:225] frps tcp listen on 0.0.0.0:7000
Jan 26 23:21:44 VM-4-15-centos frps[3575]: 2026/01/26 23:21:44 [I] [service.go:292] http service listen on 0.0.0.0:8099
Jan 26 23:21:44 VM-4-15-centos frps[3575]: 2026/01/26 23:21:44 [I] [root.go:114] frps started successfully
Jan 26 23:21:44 VM-4-15-centos frps[3575]: 2026/01/26 23:21:44 [I] [service.go:338] dashboard listen on 0.0.0.0:7500
Jan 26 23:21:46 VM-4-15-centos frps[3575]: 2026/01/26 23:21:46 [I] [service.go:563] [6a61d9adf736118f] client login info: ip [220.113.107.134:49932] version [0.54.0] hostname [] os [linux] arch [amd64]
Jan 26 23:21:46 VM-4-15-centos frps[3575]: 2026/01/26 23:21:46 [I] [tcp.go:82] [6a61d9adf736118f] [ssh] tcp proxy listen port [0]
Jan 26 23:21:46 VM-4-15-centos frps[3575]: 2026/01/26 23:21:46 [I] [control.go:401] [6a61d9adf736118f] new proxy [ssh] type [tcp] success
[root@VM-4-15-centos frp]# cat /usr/local/frp/frps.toml
# FRP服务端核心配置(toml格式)
[common]
# 服务端监听端口(客户端连接用,必配,需放行安全组)
bind_port = 7000
vhost_http_port = 8099
# 认证token(客户端必须和服务端一致,自定义,比如123456abc)
token = "1qaz@WSX"
# 可选:开启管理面板(方便查看状态,需放行7500端口)
dashboard_port = 7500
dashboard_user = "admin"
dashboard_pwd = "1qaz@WSX"
# 可选:HTTP穿透端口(如需穿透网页服务,放行80端口)
# vhost_http_port = 80

[root@VM-4-15-centos frp]#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
root@FnOS:/usr/local/frp# curl http://127.0.0.1:5666
<!doctype html><html class="light" lang="zh-CN"><head><script type="module" crossorigin src="/assets/polyfills-Rhxe3oXd.js"></script><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><style>body,html{background:linear-gradient(110deg,#4a5568 .26%,#3a424f 97.78%)}.incompatible-box{display:flex;width:100%;height:100vh;flex-direction:column;align-items:center;justify-content:center;background-color:#fff}.incompatible-box h1{margin:0;font-size:32px;line-height:44px;font-weight:600;color:#202327;margin-bottom:20px}.incompatible-box .item1{margin-right:60px}.incompatible-box .logo{position:absolute;display:flex;bottom:40px;left:50%;transform:translateX(-50%)}.incompatible-box .logo div{font-size:20px;line-height:32px;font-weight:600;color:#202327;margin-left:8px}.incompatible-box p{margin:0;font-size:18px;line-height:24px;color:#4a5568;margin-bottom:60px}.incompatible-box span{display:inline-block;margin-top:14px}</style><title>飞牛 fnOS</title><script type="module" crossorigin src="/assets/index-DoHiluaa.js"></script><link rel="modulepreload" crossorigin href="/assets/lottie-react-CqywrBZ_.js"><link rel="modulepreload" crossorigin href="/assets/rc-select-B53SQcGG.js"><link rel="modulepreload" crossorigin href="/assets/lodash-Cpp1HsCD.js"><link rel="stylesheet" crossorigin href="/assets/index-BPj_kLFR.css"></head><body><div id="root"></div><script>function isIE() {
var myNav = navigator.userAgent.toLowerCase();
return myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1 ? true : false;
}
if (isIE()) {
document.querySelector('#root').innerHTML =
'<div class="incompatible-box"><h1>当前浏览器不兼容飞牛</h1><p>我们建议您使用以下浏览器的最新版获取更好的体验</p><div><img src="static/img/chrome.png" class="item1" alt="" width="auto" height="100" /><img src="static/img/edge.png" alt="" width="auto" height="100" /></div><div><span class="item1">Google Chrome</span><span>Microsoft Edge</span></div><div class="logo"><img src="static/img/trim-logo.png" width="32" height="32" /><div>飞牛</div></div></div>';
}</script></body></htmcurl http://127.0.0.1:5666/login http://127.0.0.1:5666/login
<!doctype html><html class="light" lang="zh-CN"><head><script type="module" crossorigin src="/assets/polyfills-Rhxe3oXd.js"></script><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><style>body,html{background:linear-gradient(110deg,#4a5568 .26%,#3a424f 97.78%)}.incompatible-box{display:flex;width:100%;height:100vh;flex-direction:column;align-items:center;justify-content:center;background-color:#fff}.incompatible-box h1{margin:0;font-size:32px;line-height:44px;font-weight:600;color:#202327;margin-bottom:20px}.incompatible-box .item1{margin-right:60px}.incompatible-box .logo{position:absolute;display:flex;bottom:40px;left:50%;transform:translateX(-50%)}.incompatible-box .logo div{font-size:20px;line-height:32px;font-weight:600;color:#202327;margin-left:8px}.incompatible-box p{margin:0;font-size:18px;line-height:24px;color:#4a5568;margin-bottom:60px}.incompatible-box span{display:inline-block;margin-top:14px}</style><title>飞牛 fnOS</title><script type="module" crossorigin src="/assets/index-DoHiluaa.js"></script><link rel="modulepreload" crossorigin href="/assets/lottie-react-CqywrBZ_.js"><link rel="modulepreload" crossorigin href="/assets/rc-select-B53SQcGG.js"><link rel="modulepreload" crossorigin href="/assets/lodash-Cpp1HsCD.js"><link rel="stylesheet" crossorigin href="/assets/index-BPj_kLFR.css"></head><body><div id="root"></div><script>function isIE() {
var myNav = navigator.userAgent.toLowerCase();
return myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1 ? true : false;
}
if (isIE()) {
document.querySelector('#root').innerHTML =
'<div class="incompatible-box"><h1>当前浏览器不兼容飞牛</h1><p>我们建议您使用以下浏览器的最新版获取更好的体验</p><div><img src="static/img/chrome.png" class="item1" alt="" width="auto" height="100" /><img src="static/img/edge.png" alt="" width="auto" height="100" /></div><div><span class="item1">Google Chrome</span><span>Microsoft Edge</span></div><div class="logo"><img src="static/img/trim-logo.png" width="32" height="32" /><div>飞牛</div></div></div>';
}</script></body></html>root@FnOS:/usr/local/frp# ^C
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp#
root@FnOS:/usr/local/frp# vim /usr/local/frp/frpc.toml
root@FnOS:/usr/local/frp# systemctl restart frpc
root@FnOS:/usr/local/frp# systemctl status frpc
● frpc.service - FRP Client (fnOS)
Loaded: loaded (/lib/systemd/system/frpc.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-01-26 23:23:43 CST; 4s ago
Main PID: 315485 (frpc)
Tasks: 7 (limit: 9086)
Memory: 4.7M
CPU: 21ms
CGroup: /system.slice/frpc.service
└─315485 /usr/local/frp/frpc -c /usr/local/frp/frpc.toml

Jan 26 23:23:43 FnOS systemd[1]: Started frpc.service - FRP Client (fnOS).
Jan 26 23:23:43 FnOS frpc[315485]: WARNING: ini format is deprecated and the support will be removed in the future, please use yaml/json/toml format instead!
Jan 26 23:23:43 FnOS frpc[315485]: 2026/01/26 23:23:43 [I] [root.go:142] start frpc service for config file [/usr/local/frp/frpc.toml]
Jan 26 23:23:43 FnOS frpc[315485]: 2026/01/26 23:23:43 [I] [service.go:287] try to connect to server...
Jan 26 23:23:43 FnOS frpc[315485]: 2026/01/26 23:23:43 [I] [service.go:279] [e8cf2932d1618060] login to server success, get run id [e8cf2932d1618060]
Jan 26 23:23:43 FnOS frpc[315485]: 2026/01/26 23:23:43 [I] [proxy_manager.go:173] [e8cf2932d1618060] proxy added: [ssh fnOS-web]
Jan 26 23:23:43 FnOS frpc[315485]: 2026/01/26 23:23:43 [I] [control.go:170] [e8cf2932d1618060] [ssh] start proxy success
Jan 26 23:23:43 FnOS frpc[315485]: 2026/01/26 23:23:43 [I] [control.go:170] [e8cf2932d1618060] [fnOS-web] start proxy success
root@FnOS:/usr/local/frp# cat /usr/local/frp/frpc.toml
# FRP客户端核心配置
[common]
# 腾讯云服务器公网IP(必填,比如123.xxx.xxx.xxx)
server_addr = "118.195.134.156"
# 服务端bind_port(和服务端一致,默认7000)
server_port = 7000
# 认证token(必须和服务端的token完全一致)
token = "1qaz@WSX"

# ========== 示例1:穿透fnOS的SSH(22端口,最常用) ==========
[ssh]
type = "tcp"
local_ip = "127.0.0.1" # 本地回环地址,不用改
local_port = 22 # fnOS的SSH端口(默认22)
remote_port = 7022 # 云服务器映射端口(自定义,需在安全组放行7022)

# ========== 示例2:穿透fnOS上的网页服务(比如8080端口,按需添加) ==========
#[web]
type = "tcp"
local_ip = "127.0.0.1"
local_port = 5666 # 家里主机的网页服务端口
remote_port = 7566 # 云服务器映射端口(需放行7080)

# 飞牛Web服务-HTTP穿透(8099端口)
[fnOS-web]
type = "http"
local_ip = "127.0.0.1"
local_port = 5666
custom_domains = "118.195.134.156"
root@FnOS:/usr/local/frp#