如何使用frp配置实验室服务器来内卷?

导师之前新购了3090N卡的服务器,然而只能内网访问,一开始大家使用向日葵软件远程连接,但这有个弊端,这样的桌面只能一个人使用,效率极低。

为了能够让服务器更好地造福于人,我发现了frp的存在,正巧自己还有一台到25年才过期的腾讯云轻量服务器,于是就开始桥接的工作。

转载至染念的博客

什么是frp呢?

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

我们就将轻量服务器作为中转站,建立两者之前的桥梁。

操作步骤

frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。

但是frpc和frps的端口号都要在具有公网IP的机器上开通。

  1. 以腾讯云轻量服务器为例:
    1. 来到防火墙建立两个TCP端口

在这里插入图片描述

  1. 目前可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件,所有文件被打包在一个压缩包中。
    1. 一般我们的机器都是AMD64
    2. 下载的文件包含很多文件,建议分成2份
    3. 服务端:frps.ini frps frps_full.ini
    4. 客户端:frpc.ini frpc frpc_full.ini
    5. 在两个端都使用sudo chmod 777 frpc或者sudo chmod 777 frps更新权限,以防找不到命令
  2. 在服务端,即轻量服务器,具有公网ip中,编辑frps.ini文件:
    1. 可以使用./frps -c frps.ini看看是不是端口呀,能不能启动
[common]
bind_port = 9960
  1. 在客户端端,编辑frpc.ini文件:
    1. 可以使用./frpc -c frpc.ini看看两边能不能连接
[common]
server_addr = x.x.x.x#公网ip地址
server_port = 9960
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2022

如果有两台要连接frps的端口,此时可以在新的一台重复上述安装流程,此时[ssh]要改成[ssh1],如果更多你可以使用[ssh2]、[ssh3]。。。

[common]
server_addr = x.x.x.x#公网ip地址
server_port = 9960
[ssh1]  # 若有多个客户端,名称不要重复。
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001  # 远程连接端口不要重复
  1. 如果遇到类似这种问题:
    在这里插入图片描述

    1. 还有其它问题都看看下面的解放方式
    2. 就是两边的端口号写错了,跟你开启的防火墙不一样,不要相信网上增加什么配置,安装golang
    3. 如果还使用宝塔了,宝塔的安全也增加对应的端口
  2. 如果出现error: dial tcp 127.0.0.1:22: connect: connection refusedkex_exchange_identification: Connection closed by remote host
    请先安装ssh:

sudo apt update
sudo apt install openssh-server -y
# 如果你的防火墙开启了,使用下面语句
sudo ufw allow ssh
  1. 因为两边都是开terminal的方式,不太好,而且得一直开着,这里推荐使用 systemd 控制 frps 及配置开机自启

    1. 使用文本编辑器,如 vim 创建并编辑 frps.service 文件。

      1. vim /etc/systemd/system/frps.service

      2. 写入内容

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.ini

[Install]
WantedBy = multi-user.target

怎么更好看安装路径呢?在你的解压目录,使用pwd,直接将输出的结果cv一下即可。

  1. 使用 systemd 命令,管理 frps。
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
  1. 配置 frps 开机自启。
systemctl enable frps
  1. frpc类同!省略,但请在[service]下面添加
Restart=on-failure
RestartSec=5s

因为frpc是自己的机器,有时候自己的机器没有连网,就会出现连接错误!

  1. 这样服务端和客户端都配置好,就能开始偷偷的卷了…

连接方式

我们根据frpc的remote_port,进行如下命令连接:
ssh -oPort=<remote_port> <用户名>@服务器ip

##进阶-本地打开服务器浏览器端口

有时候,我们在远程服务器上通过一些服务打开了浏览器端口,这时其实是可以映射到本地端口的。
我们可以使用SSH隧道来实现。假设已经成功地通过FRP进行了内网穿透,就可以使用以下命令在本地命令行中输入:

ssh -L 8887:localhost:8888 -p <remote_port> <用户名>@服务器ip

第一个8887是在本地浏览器打开的,第二个8888是在远程服务器上启动的端口。
这样,我们可以在本地浏览器中访问http://localhost:8887,实际上是访问服务器上的8888端口服务。

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

染念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值