安装frp_0.54.0,部署内网穿透服务
frp文档:https://gofrp.org/zh-cn/docs/
1. 下载frp:
Github官网下载:FRP
网盘下载:FRP
2. 安装和部署:
2.1 在具有公网IP的服务器上部署frps
2.1.1 下载和解压frp压缩包文件
[root@frps ~]# mkdir frp
[root@frps ~]# cd frp
[root@frps frp]# wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
[root@frps frp]# tar -zxvf frp_0.54.0_linux_amd64.tar.gz
2.1.2 将frps复制到/usr/local/目录
[root@frps ~]# mkdir /usr/local/frp
[root@frps ~]# cp /root/frp/frp_0.54.0_linux_amd64/frps* /usr/local/frp/
2.1.3 修改frps.toml配置
[root@frps ~]# vim /usr/local/frp/frps.toml
# frp公网IP地址,修改成自己的公网服务器IP地址
bindAddr = “x.x.x.x”
# frp服务器用于接收客户端连接的端口,可按自己需求修改
bindPort = 7000
# 指定frpc身份认证方式token或oidc
auth.method = “token”
# 指定frpc身份认证token,按自己需求修改成复杂的
auth.token = “abc”
# 支持虚拟机服务,指定http、https监听端口,可注释
vhostHTTPPort = 80
vhostHTTPSPort = 443
#配置子域名主机,按自己需求修改,可注释
subDomainHost = “test.com”
# frp日志文件配置
log.to = “/var/log/frps.log”
log.level = “info”
log.maxDays = 3
2.1.4 启动 frps
使用以下命令启动服务器:./frps -c ./frps.toml
2.2 在需要被访问的内网服务器上部署frpc,修改frpc.toml配置文件
2.2.1 下载和解压frp压缩包文件
[root@frpc ~]# mkdir frp
[root@frpc ~]# cd frp
[root@frpc frp]# wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
[root@frpc frp]# tar -zxvf frp_0.54.0_linux_amd64.tar.gz
2.2.2 将frpc复制到/usr/local/目录
[root@frpc ~]# mkdir /usr/local/frp
[root@frpc ~]# cp /root/frp/frp_0.54.0_linux_amd64/frpc* /usr/local/frp/
2.2.3 修改frpc.toml配置
[root@frpc ~]# vim /usr/local/frp/frpc.toml
serverAddr = “x.x.x.x”
serverPort = 7000
auth.method = “token”
auth.token = “abc”
# console or real logFile path like ./frps.log
log.to = “./frpc.log”
log.level = “info”
log.maxDays = 3
[[proxies]]
name = “SSH”
type = “tcp”
localIP = “127.0.0.1”
localPort = 22
remotePort = 9022
2.2.4 启动frpc
使用以下命令启动客户端:./frpc -c ./frpc.toml
2.3 通过 SSH 访问内网服务器
使用以下命令通过 SSH 访问内网机器,假设用户名为 test:
ssh -o Port=9022 test@x.x.x.x
3. 使用 systemd 来管理 frps 服务,包括启动、停止、配置后台运行和设置开机自启动
3.1 创建 frps.service 文件
[root@frps ~]# vim /etc/systemd/system/frps.service
写入内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.toml
[Install]
WantedBy = multi-user.target
3.2 使用 systemd 命令管理 frps 服务
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
设置 frps 开机自启动
sudo systemctl enable frps
4. 配置STCP
4.1 在需要将内网服务暴露到公网的机器上部署 frpc,并修改为如下配置:
serverAddr = “x.x.x.x”
serverPort = 7000
auth.method = “token”
auth.token = “abc”
# console or real logFile path like ./frps.log
log.to = “./frpc.log”
log.level = “info”
log.maxDays = 3
[[proxies]]
name = “secret_ssh”
type = “stcp”
# 只有与此处设置的 secretKey 一致的用户才能访问此服务
secretKey = “abcdefg”
localIP = “127.0.0.1”
localPort = 22
4.2 在想要访问内网服务的机器上也部署 frpc,并创建如下配置:
serverPort = 7000
auth.method = “token”
auth.token = “abc”
# console or real logFile path like ./frps.log
log.to = “./frpc.log”
log.level = “info”
log.maxDays = 3
[[visitors]]
name = “secret_ssh_visitor”
type = “stcp”
# 要访问的 stcp 代理的名字
serverName = “secret_ssh”
secretKey = “abcdefg”
# 绑定本地端口以访问 SSH 服务
bindAddr = “127.0.0.1”
bindPort = 6000
4.3 通过SSH 访问内网机器
使用以下命令通过 SSH 访问内网机器,假设用户名为 test:
ssh -o Port=6000 test@127.0.0.1