一、前置准备
- 1 台有公网 ip 的 vps/服务器:Linux(Server)
 - 1 台需要进行穿透的内网机器:Linux(Client)
 
二、在 Server 上部署 FRP 服务端
1、下载并解压 FRP
- 从 FRP GitHub Releases 查看最新版本的 FRP
 - 进入想要下载到的文件夹
 - 下载并解压对应文件夹并重命名,注意把示例中的文件名改成对应的文件名
 
sh
sh
1wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_amd64.tar.gz
2tar -xzf frp_0.58.0_linux_amd64.tar.gz
3mv frp_0.58.0_linux_amd64 frp
4cd frp2、配置 frps.ini 文件
sh
sh
1echo -e "[common]\nbind_port = 7000" > frps.ini3、设置开机启动
- 创建 systemd 服务文件
 
sh
sh
1sudo nano /etc/systemd/system/frps.service- 添加以下内容到服务文件中,将 /path/to/frps 和 /path/to/frps.ini 替换为您实际的 FRP 服务端可执行文件和配置文件路径
 
ini
ini
 1[Unit]
 2Description=FRP Server Service
 3After=network.target
 4
 5[Service]
 6Type=simple
 7User=root
 8ExecStart=/path/to/frps -c /path/to/frps.ini
 9Restart=on-failure
10
11[Install]
12WantedBy=multi-user.target- 重新加载 systemd 配置
 
sh
sh
1sudo systemctl daemon-reload- 启动 FRP 服务端
 
sh
sh
1sudo systemctl start frps- 设置开机启动
 
sh
sh
1sudo systemctl enable frps- 检查服务状态
 
sh
sh
1sudo systemctl status frps以下输出表示正常运行:
text
text
1● frpc.service - FRP Server Service
2   Loaded: loaded (/etc/systemd/system/frps.service; enabled; vendor preset: enabled)
3   Active: active (running) since Mon 2023-05-23 14:28:50 UTC; 2min 25s ago
4 Main PID: 12345 (frpc)
5    Tasks: 2 (limit: 4915)
6   CGroup: /system.slice/frps.service
7           └─12345 /path/to/frps -c /path/to/frps.ini三、在 Client 上部署 FRP 客户端
1、下载并解压 FRP
- 从 FRP GitHub Releases 查看最新版本的 FRP
 - 进入想要下载到的文件夹
 - 下载并解压对应文件夹并重命名,注意把示例中的文件名改成对应的文件名
 
sh
sh
1wget https://github.com/fatedier/frp/releases/download/v0.58.0/frp_0.58.0_linux_amd64.tar.gz
2tar -xzf frp_0.58.0_linux_amd64.tar.gz
3mv frp_0.58.0_linux_amd64 frp
4cd frp2、配置 frpc.ini 文件
- 使用 nano 或其他文本编辑器打开 frpc.ini
 
sh
sh
1nano frpc.ini- 编辑文件内容
 
ini
ini
 1[common]
 2server_addr = <server_ip>    # 替换为Server公网ip
 3server_port = 7000
 4#
 5
 6[port1]
 7type = tcp
 8local_ip = 127.0.0.1    # 按需替换为设备内网ip
 9local_port = 22。  # ssh连接默认端口
10remote_port = 2002    # 选择一个Server上未被占用的端口
11
12[port2]
13type = tcp
14local_ip = 127.0.0.1
15local_port = 445    # SMB默认端口
16remote_port = 8888注意:
<server_ip>改成服务器 ip 地址127.0.0.1按需改为客户端的内网 ip 地址local_port是内网机器需进行代理的端口remote_port是 Server 上访问内网服务的端口,需要是未占用的端口- 需要代理几个就加入几个这样的块
 
ini
ini
1[service name]
2type = tcp
3local_ip = 127.0.0.1
4local_port = <client_port>
5remote_port = <server_port>3、启动 FRP 服务
- 创建一个新的服务文件:
 
sh
sh
1sudo nano /etc/systemd/system/frpc.service- 添加以下内容到服务文件中,注意将 /path/to/frpc 和 /path/to/frpc.ini 替换为您实际的 FRP 客户端可执行文件和配置文件路径:
 
ini
ini
 1[Unit]
 2Description=FRP Client Service
 3After=network.target
 4
 5[Service]
 6Type=simple
 7User=root
 8ExecStart=/path/to/frpc -c /path/to/frpc.ini
 9Restart=on-failure
10
11[Install]
12WantedBy=multi-user.target- 重新加载 systemd 服务
 
sh
sh
1sudo systemctl daemon-reload- 启动 frp 服务
 
sh
sh
1sudo systemctl start frpc- 设置开机启动
 
sh
sh
1sudo systemctl enable frpc- 检查服务状态
 
sh
sh
1sudo systemctl status frpc以下输出表示正常运行:
text
text
1● frpc.service - FRP Client Service
2   Loaded: loaded (/etc/systemd/system/frpc.service; enabled; vendor preset: enabled)
3   Active: active (running) since Mon 2023-05-23 14:28:50 UTC; 2min 25s ago
4 Main PID: 12345 (frpc)
5    Tasks: 2 (limit: 4915)
6   CGroup: /system.slice/frpc.service
7           └─12345 /path/to/frpc -c /path/to/frpc.ini四、注意事项
1、防火墙设置
- 确保内网机器上
local_port开放。 - 确保服务器的防火墙允许 FRP 服务端口(7000)和
remote_port的访问。 
2、安全性设置
- 在生产环境中,建议配置 FRP 的 TLS 加密和身份验证,以确保数据传输的安全性。
 - 在 frps.ini 和 frpc.ini 中添加认证和加密配置:
 
ini
ini
 1# 在 frps.ini 中
 2[common]
 3bind_port = 7000
 4token = your_secure_token
 5
 6# 在 frpc.ini 中
 7[common]
 8server_addr = <server_public_ip>
 9server_port = 7000
10token = your_secure_token3、端口占用
- 确保在内网机器和外网服务器上所使用的端口没有被其他应用占用