frp搭建ssh内网穿透

发布于:2024-07-30 ⋅ 阅读:(123) ⋅ 点赞:(0)

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,这是一个开源许可证。

所以在外网的服务器配置这里,我们只用frpsfrps.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端口了


网站公告

今日签到

点亮在社区的每一天
去签到