frp软件包下载
检查外网服务器架构
uname -i
官网下载对应的版本
https://github.com/fatedier/frp/releases
使用wget或拷贝文件到外网服务器/opt目录下并解压
解压得到frp_0.59.0_linux_amd64文件夹
tar -zxvf frp_0.59.0_linux_amd64.tar.gz
- frpc
这是 frp 的客户端可执行文件。
用于在客户端机器上运行,建立与 frp 服务器的连接。
负责将本地服务暴露到公网。 - frpc.toml
这是 frp 客户端的配置文件。
使用 TOML 格式编写。
包含客户端的设置,如服务器地址、认证信息、需要暴露的本地服务等。 - frps
这是 frp 的服务器端可执行文件。
运行在具有公网 IP 的服务器上。
负责接收来自 frpc 的连接并转发流量。 - frps.toml
这是 frp 服务器端的配置文件。
同样使用 TOML 格式。
包含服务器的设置,如监听端口、认证方式、允许的协议等。 - LICENSE
这是软件的许可证文件。
包含软件的使用、分发和修改条款。
frp 使用 Apache License 2.0,这是一个开源许可证。
所以在外网的服务器配置这里,我们只用frps
和frps.toml
这两个文件就行
外网服务器配置
修改外网frps.toml配置
nano frps.toml
配置信息如下:
# 【必填】这是你frps服务的端口
bindPort = 7000
# 【建议必填】认证设置(强烈建议)
auth.token = "X9f$p2KlZ7*vB3@qR7nJ3^wY5"
# 【可选】允许的端口范围(可选)
allowPorts = [
{ start = 6000, end = 7000 },
{ single = 80 },
{ single = 443 }
]
修改完成后执行校验
./frps verify -c ./frps.toml
(显示 is ok 就表示形式上没问题了,只是形式上,可能还会存在其他问题。)
编写systemd服务
这个时候你可以使用nohup启动服务了,但是这样非常的脆弱,不优雅。推荐使用systemd启动,官网也是这么推荐的。https://gofrp.org/zh-cn/docs/setup/systemd/
sudo vim /etc/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp_0.59.0_linux_amd64/frps -c /opt/frp_0.59.0_linux_amd64/frps.toml
[Install]
WantedBy=multi-user.target
注意这里的ExecStart对应你的运行指令
保存编辑后,重新加载 systemd 配置:
sudo systemctl daemon-reload
尝试启动服务:
sudo systemctl start frps
检查状态:
sudo systemctl status frps
出现这个就对了
内网服务器配置
检查内网服务器架构
uname -i
和外网服务器架构一样都是AMD架构,复用之前的文件,因为有些内网用户不是root,比如我这里内网的用户是baijs,于是我拷贝到了/home/baijs/opt/frp
下面的目录,你是root用户的话,建议还是和外网服务器一样,放在/opt下面
拷贝frpc文件
创建我们家目录下的opt/frp
mkdir -p ~/opt/frp/
拷贝文件到这里
内网服务器是客户端,于是,接下来我们修改frpc.toml
修改frpc.toml
vim ~/opt/frp/frp_0.59.0_linux_amd64/frpc.toml
serverAddr填写你的外网服务器的IP
auth.token = “X9f$p2KlZ7*vB3@qR7nJ3^wY5” | 这里的token和你外网写的一致
serverAddr = "121.55.55.55"
serverPort = 7000
auth.token = "X9f$p2KlZ7*vB3@qR7nJ3^wY5"
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6999
校验
./frpc verify -c ./frpc.toml
编写systemd服务
vim /etc/systemd/system/frpc.service
[Unit]
Description=frp client
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/baijs/opt/frp/frp_0.59.0_linux_amd64/frpc -c /home/baijs/opt/frp/frp_0.59.0_linux_amd64/frpc.toml
[Install]
WantedBy=multi-user.target
保存编辑后,重新加载 systemd 配置:
sudo systemctl daemon-reload
尝试启动服务:
sudo systemctl start frpc
检查状态:
sudo systemctl status frpc
出现这个就对了
然后我们通过外网121.55.55.55:6999
就可以SSH连接到内网的22端口了