使用frp内网穿透以便ssh连接服务器

Keith Lv2

关于frp,首先需要先了解一下关于他的基本概念,frp是一款高性能的反向代理应用,专注于内网穿透。支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp可以比较方便的将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。关于操作步骤,首先需要一台云服务器,这里我选择的是华为云,为了后续操作方便设置ssh免密码登陆的操作以及提前准备如下:

1
2
3
apt update && apt upgrade 
apt install openssh-server
ssh-keygen -t rsa && ssh-copy-id root@ip

接下来打开服务器实例,并设置其中的安全组:

打开更多并选择查看详情就可以设置新的规则与端口。

一.在云服务器部署frps服务端

1.frp可以在如下链接下载:https://github.com/fatedier/frp

2.同时也可以查阅frp的官方文档:https://gofrp.org/zh-cn/

首先可以在云服务器中通过wget或者别的下载器下载frp最新的release包,并直接解压,如果下载不了,则可以在本地线下载好之后通过scp或者rsync上传包至云服务器,类似的命令主要如下:

1
2
scp myfile root@ip:/root/storage
# 如果上传文件夹,则在scp后加上参数-r,具体的flag使用-h查看

接下来对frp的压缩包进行如下主要操作:

1
2
tar -xzvf frp_0.57.0_linux_amd64.tar.gz 
mv -v frp_0.57.0_linux_amd64 /opt/frp

在你进入frp文件夹下之后你就会发现一些frpc,frps的可执行文件以及对应的toml配置文件,我们需要在服务端配置frps的配置文件,为了便捷考虑,此处按照最简单的默认设置来进行处理:

1
bind_port = 7000

在这里我们设置了frp服务端接收客户端连接的端口为7000,接下来搭配systemd编写文件从而控制frps的启动停止与自启动,文件的位置位于目录**/etc/systemd/system/**之中,接下来编写文件如下:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description = frp server in HuaWei
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
ExecStart = /opt/frp/frps -c /opt/frp/frps.toml

[Install]
WantedBy = multi-user.target

使用如下的命令启动frps服务:

1
systemctl start frps && systemctl enable frps

完成上述操作之后在服务端的配置已经基本完成,使用如下systemctl status可以查看frps服务是否已经启动,正常激活状态的情况如下所示:

二.在客户端服务器进行frpc配置

frpc的大多数配置和frps的大多数配置过程一致,就不再重复,如下天上属于frpc的toml配置文件如下所示:

1
2
3
4
5
6
7
8
9
10
serverAddr = "你的云端服务器的公网ip"
serverPort = 7000

[[proxies]]
name = "Accepted Home Server"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
# 记得在安全组中开放一定的端口

接下来使用ssh命令进行测试一下即可:

1
ssh -p 6000 user@publicip

成功界面如下所示:

  • Title: 使用frp内网穿透以便ssh连接服务器
  • Author: Keith
  • Created at : 2024-04-19 20:21:56
  • Updated at : 2024-04-19 20:24:22
  • Link: https://redefine.ohevan.com/2024/04/19/使用frp内网穿透以便ssh连接服务器/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
使用frp内网穿透以便ssh连接服务器