Frp Github 下载地址https://github.com/fatedier/frp/releases/
Ubuntu Server 端和 Client 端 配置方式类似
本文Frp 配置 v0.49.0版本
https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gz
(base) ➜ ~ wget -c https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gz
# 解压
(base) ➜ ~ tar -zxvf frp_0.49.0_linux_amd64.tar.gz
(base) ➜ ~ ls -lha frp_0.49.0_linux_amd64
total 28M
drwxr-xr-x 2 banana banana 4.0K Dec 16 12:55 .
drwxrwxr-x 5 banana banana 4.0K Dec 19 00:56 ..
-rw-r--r-- 1 banana banana 12K May 28 2023 LICENSE
-rwxr-xr-x 1 banana banana 13M May 28 2023 frpc
# frpc 客户端可执行文件 frpc的运行逻辑 frpc -c frpc.ini
-rw-r--r-- 1 banana banana 187 Dec 16 12:55 frpc.ini
# frpc.ini 客户端的配置信息
-rw-r--r-- 1 banana banana 12K May 28 2023 frpc_full.ini
# frpc_full.ini 这里是配置信息总览
-rwxr-xr-x 1 banana banana 16M May 28 2023 frps
# frpc Server端可执行文件 frps的运行逻辑 frps -c frps.ini
-rw-r--r-- 1 banana banana 26 May 28 2023 frps.ini
# frpc.ini Server端的配置信息
-rw-r--r-- 1 banana banana 5.8K May 28 2023 frps_full.ini
# frpc_full.ini 这里是Server端配置信息总览
Server 端 配置
这里在frp_0.49.0_linux_amd64文件下先测试
先配置frps.ini 配置信息文件
# 先在frp_0.49.0_linux_amd64文件夹中配置frps.ini
➜ ~ vim /etc/frps/frps.ini
[common]
# 监听端口,请记得在你的服务器防火墙管理中打开7000端口
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token=1234567890pFbkdBnpQbBgVeCb
# frp管理后台端口,请按自己需求更改
# 如果配置这个管理后台,请在你的服务器防火墙管理中打开7500端口
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
这里用到了 7000 7500 两个端口
!!! 请你在服务器的管理界面 防火墙处 打开需要的7000 7500 端口
测试Server是否运行正确
# 如果运行看见 Running 这个成功了 就继续配置
➜ frp_0.49.0_linux_amd64 ./frps -c frps.ini
正确配置文件位置
➜ ~ sudo mkdir /etc/frps/
➜ ~ sudo cp ./frps.ini /etc/frps/
➜ ~ sudo mkdir /usr/bin/frps/
➜ ~ sudo cp ./frps /usr/bin/frps/
配置frps.service
# 然后配置frps.service
# 然后配置 frps的服务,便可开机自启动并运行
sudo vim /lib/systemd/system/frps.service
# 运行的逻辑是 ./frps -c frps/ini
# frps.ini 放置在 /etc/frps/frps.ini 处
# ./frps 可执行文件 放置于 /usr/bin/frps/frps 处
# 然后配置 frps的服务,便可开机自启动并运行
➜ ~ sudo vim /lib/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=banana # 这里修改为你的user名
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps/frps -c /etc/frps/frps.ini
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
配置好后
# 配置好后
# 启动服务
➜ ~ sudo systemctl start frps
# 设置开机启动
➜ ~ sudo systemctl enable frps
# 查看状态
➜ ~ sudo systemctl status frps
● frps.service - Frp Server Service
Loaded: loaded (/lib/systemd/system/frps.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-12-23 15:06:40 CST; 1 day 22h ago
Main PID: 4360 (frps)
Tasks: 6 (limit: 2220)
Memory: 27.0M
CPU: 59.108s
CGroup: /system.slice/frps.service
└─4360 /usr/bin/frps/frps -c /etc/frps/frps.ini
Dec 23 15:06:40 VM-8-3-ubuntu systemd[1]: Started Frp Server Service.
Dec 24 00:00:00 VM-8-3-ubuntu frps[4360]: FileLogWriter("/var/log/frps.log"): Rotate: chmod /var/log/frps.2023-12-23.lo>
Dec 25 00:00:00 VM-8-3-ubuntu frps[4360]: FileLogWriter("/var/log/frps.log"): Rotate: chmod /var/log/frps.2023-12-24.lo>
lines 1-13/13 (END)
# 可看见绿的 active (running)
这个是server端可查看的 可视化监管页面 ip:7500 账号密码是
位置于/etc/frps/frps.ini
# frp管理后台端口,请按自己需求更改
# 如果配置这个管理后台,请在你的服务器防火墙管理中打开7500端口
dashboard_port = 7500
# frp管理后台用户名和密码,
# 请根据你的要求改成复杂的密码
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
这里配置Client端的信息 Client端 就是你需要穿透的机器
Client端配置与Server端类似
➜ ~ vim frpc.ini
[common]
server_addr = 127.0.0.1 #此处修改为你的服务器的IP地址
server_port = 7000
token=1234567890pFbkdBnpQbBgVeCb
# 此处的token 应该与server端相应的token一致
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
这里在frp_0.49.0_linux_amd64文件下先测试
frpc.ini 放置在 /etc/frpc/frpc.ini 处
./frpc 可执行文件 放置于 /usr/bin/frpc/frpc 处
# 运行的逻辑是 ./frpc -c frpc/ini
# frpc.ini 放置在 /etc/frp/frpc.ini 处
# ./frpc 可执行文件 放置于 /usr/bin/frp/frpc 处
然后配置 frpc的服务,便可开机自启动并运行
➜ ~ sudo vim /lib/systemd/system/frpc.service
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=banana #这里修改为你的user名称
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc/frpc -c /etc/frpc/frpc.ini
ExecReload=/usr/bin/frpc/frpc reload -c /etc/frpc/frpc.ini
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
配置自启动
# 配置好后
# 启动服务
➜ ~ sudo systemctl start frpc
# 设置开机启动
➜ ~ sudo systemctl enable frpc
# 查看状态
➜ ~ sudo systemctl status frpc
检查Client端是否配置正确 是否可看到绿色的active (running)
(base) ➜ ~ sudo systemctl status frpc.service
[sudo] password for banana:
● frpc.service - Frp Client Service
Loaded: loaded (/lib/systemd/system/frpc.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-12-21 04:04:31 UTC; 4 days ago
Main PID: 926 (frpc)
Tasks: 18 (limit: 38230)
Memory: 20.1M
CPU: 47.975s
CGroup: /system.slice/frpc.service
└─926 /usr/bin/frpc/frpc -c /etc/frpc/frpc.ini
Dec 23 07:05:51 ubuntu-server frpc[926]: 2023/12/23 07:05:51 [I] [service.go:208] [b1bebfda0fba91e2] try to reconnect t>
Dec 23 07:05:51 ubuntu-server frpc[926]: 2023/12/23 07:05:51 [W] [service.go:211] [b1bebfda0fba91e2] reconnect to serve>
Dec 23 07:06:11 ubuntu-server frpc[926]: 2023/12/23 07:06:11 [I] [service.go:208] [b1bebfda0fba91e2] try to reconnect t>
Dec 23 07:06:11 ubuntu-server frpc[926]: 2023/12/23 07:06:11 [W] [service.go:211] [b1bebfda0fba91e2] reconnect to serve>
Dec 23 07:06:30 ubuntu-server frpc[926]: 2023/12/23 07:06:30 [I] [service.go:208] [b1bebfda0fba91e2] try to reconnect t>
Dec 23 07:06:30 ubuntu-server frpc[926]: 2023/12/23 07:06:30 [W] [service.go:211] [b1bebfda0fba91e2] reconnect to serve>
Dec 23 07:06:51 ubuntu-server frpc[926]: 2023/12/23 07:06:51 [I] [service.go:208] [b1bebfda0fba91e2] try to reconnect t>
Dec 23 07:06:51 ubuntu-server frpc[926]: 2023/12/23 07:06:51 [I] [service.go:295] [b1bebfda0fba91e2] login to server su>
Dec 23 07:06:51 ubuntu-server frpc[926]: 2023/12/23 07:06:51 [I] [proxy_manager.go:152] [b1bebfda0fba91e2] proxy added:>
Dec 23 07:06:51 ubuntu-server frpc[926]: 2023/12/23 07:06:51 [I] [control.go:172] [b1bebfda0fba91e2] [ssh] start proxy >
lines 1-20/20 (END)
这样只要在另一台电脑上远程访问服务器的6000端口,请求就会被转发到客户端的22端口.
# 使用客户端用户名密码,服务器地址和端口远程连接
ssh client_user@server_addr -p server_port