前言:前公司换了网络,公网访问失效,导致另一处无法访问数据库,刚好前公司有一个CentOS的京东云服务器,可以采用FRP的方式解决广域网访问问题。

FRP Github项目地址


服务端

1.需要下载FRP Linux 服务端:

Linux为例,所以要在Releases发布地址中选择 frp_0.46.1_linux_amd64.tar.gz 即 Linux 64位的版本。

Releases项目发布地址

本地下载

或者输入以下命令下载:

mkdir /home/frp
cd /home/frp
wget https://github.com/fatedier/frp/releases/download/v0.46.1/frp_0.46.1_linux_amd64.tar.gz

2.解压FRP

tar -zxvf frp_0.46.1_linux_amd64.tar.gz

3.编辑服务端配置文件

cd frp_0.46.1_linux_amd64
vi frps.ini

配置文件详情:

[common]
bind_port = 7000 #绑定端口
token = 786747 #token码(客户端需要用到)
dashboard_port = 7500 #(访问WEB面板的端口)

4.拷贝到系统目录

sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps

5.解决systemctl启动受限

此方法用于解决 systemctl提示 Port unavailable的错误,将无法代理1024以内的端口。

原因:frp的systemd配置默认使用nobody用户运行,而非root是不允许监听1024以下的端口。

vi /lib/systemd/system/frps.service

注释 User = nobody

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
#User=nobody   #此项目注释掉
Restart= on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy=multi-user.target

6.服务器运行FRP

启动命令:

sudo systemctl start frps

停止命令:

sudo systemctl stop frps

6.打开仪表盘

通过浏览器打开:localhost:7500
用户名以及密码默认为:admin
如果能进入仪表盘,服务端配置成功。
frpDashboard.png


客户端

1.项目列表中下载客户端

Windows为例,所以要在Releases发布地址中选择 frp_0.46.1_windows_amd64.zip 即 Windows 64位的版本。

Releases项目发布地址

或者:本地下载

下载后解压

2.配置frpc.ini

[common]
server_addr = x.x.x.x #frp服务器IP
server_port = 7000 #frp服务器端口
token = 786747 #frp服务器的token


[Web]
type = tcp
local_ip = 127.0.0.1 
local_port = 8080 #映射本地端口
remote_port = 80 #服务器访问端口

[SQLServer] #可以配置多个服务
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 3389

3.启动 frpc.exe

按住 shift键同时鼠标 右键,选择 此处打开PowerShell窗口

启动:

.\frpc.exe
最后修改:2023 年 12 月 28 日
喜欢就请我喝一杯奶茶吧~