使用frp内网穿透访问学校服务器的配置

配置frp服务教程

前言

本教程讲解怎么把有公网IP的服务器配置成frp server,只有内网IP的服务器配置成frp client。
如果只需要从家里访问实验室服务器,那么把云服务器(有公网ip)配置为frp server,实验室服务器配置成frp client,在电脑的终端ssh连接xxx.xxx.xxx.xxx(云服务器ip)的对应端口即可访问服务器。
Frp支持很多种协议,tcp、udp,还支持自定义域名、自己部署的web服务,可以开放虚拟的http,https端口。

一、 配置frp server

1.文件下载

frp官网下载最新版本的frp文件,根据系统和硬件情况下载对应版本。客户端和服务器都要下载。如果不清楚电脑是32位还是64位就下载32位。
我在阿里云上租的服务器是有公网ip的,我把它作为frp server,下载的是linux amd64版本。实验室服务器也是ubuntu amd64版本的。
解压后,目录中的systemd是配置成linux的systemctl命令需要使用的,可以暂时忽略。
服务器需要用到frps, frps.ini。frps_full.ini包含完整配置,可以参考。
客户端需要用到frpc, frpc.ini。frpc_full.ini包含完整配置,可以参考。

2.frps.ini的配置

默认配置

[common]
bind_port = 7000

我的配置

[common]
bind_addr = 0.0.0.0
bind_port = 7000
token = 自己的token,与frpc.ini一致就行
# 仪表板端口,配置之后能看到连接情况、流量统计等信息
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

log_file = /var/log/frps.log
log_level = info
log_max_days = 3

这个bind_port非常重要,一定要配置。这是提供frps服务的端口。选择一个自己电脑方便的端口就好。建议配置token。

3.打开防火墙相应的端口

frp服务器上配置这些命令打开防火墙的对应端口。自己用来提供ssh服务映射的端口也要打开。下面会配置,之后再开放也行,但是得reload一次。

firewall-cmd --add-port=7000/tcp
firewall-cmd --add-port=7500/tcp
firewall-cmd --add-port=2222/tcp
firewall-cmd --reload

二、配置frp client

客户端上编辑frpc.ini,

[common]
server_addr = frp server的公网ip
server_port = 7000
token = 与frps.ini一致

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2222

您也可以配置自己的web服务等等。我只配置了ssh,而且我的服务器没有部署web服务,所以我没有配置,您可以参考别人的教程。
remote_port就是frp客户端的ssh服务映射到frp服务器的端口,您需要在上一步的防火墙配置中放行这个端口。

三、阿里云安全策略的配置

这里看清楚,你的服务器是ECS实例还是轻量应用服务器,两个对应不同的配置。

1.ECS实例


在这里插入图片描述
然后就请您配置安全组。如果没有安全组,新建安全组,添加规则,放行对应端口就好了。
我的配置结果
在这里插入图片描述

2. 轻量应用服务器

如果你是学生党,配置的是云翼计划的轻量应用服务器,需要到服务器控制台-防火墙-添加规则放行bind_port, dashboard_port, remote_port。
在这里插入图片描述

在这里插入图片描述

四、启动服务

在frp server上执行./frps -c ./frps.ini即可启动服务
在frp client上执行./frpc -c ./frpc.ini即可启动服务。
./的前提是你cd到frpc等等那些文件所在的目录。
你会发现这个shell被服务占用了,你ctrl+c服务就中断了。
有两种方法。

1.使用tmux

tmux是命令行托管平台,shell上的shell。好处是你可以在tmux上建立多个会话。当你的电脑远程连接服务器时,shell上运行的代码或者文件传输可能持续很长时间,一旦shell断开连接或者网络出问题代码运行就中断了。使用tmux可以把shell托管在服务器的tmux平台上,这样你的工作电脑需要暂时断开与服务器的连接时再次连接原来的会话即可回复之前的状态。tmux支持终端复用,一个平台同时支持多个shell会话。

使用tmux new -s <session name>新建一个会话。
在这里插入图片描述

按ctrl+B后按C可以在建立新的会话。
在这里插入图片描述

按ctrl+B后按会话编号0,1等可以切换会话。当前活跃的会话后面会有一个*。当前会话0活跃,我正在运行frps服务。
在这里插入图片描述

我切换到会话1,ctrl+B后输入1,进入会话1,会话1后面有*。
在这里插入图片描述

按ctrl+B后按D可以分离会话,这样你的工作电脑与服务器上的会话分离开,服务器上的会话可以自己运行。
退出到主shell,上面会提示[detached (from session …)]。
在这里插入图片描述

想要再次进入会话可以使用tmux a -t <session name>进入会话,命令行会恢复原来的操作和状态。这里我又回到会话1.
在这里插入图片描述
按ctrl+D删除当前会话,直至退出tmux。会话1被删掉了。
在这里插入图片描述

这样您在一个会话上执行命令打开服务,可以在其它会话进行操作,或者分离会话,到主shell上操作。
我主要是用自己的白话讲解的,对tmux也只是刚刚入门。如果讲的不清楚您可以再找找别人的博客看看。

2.nohup

我看到很多人的博客用这条命令nohup ./frps -c ./frps.ini,它不会在命令行输出,但是我的使用情况是这个shell也不能执行别的命令了。
有人的办法是配置成开机自启动在后台运行,在frp目录下创建一个sh文件,服务器上名字叫frpServer.sh,客户端上叫frpClient.sh,内容为

#!/bin/bash
# frpServer.sh
basepath=$(cd `dirname $0`; pwd)
nohup $basepath/frps -c $basepath/frps.ini >/dev/null 2>&1 & 
#!/bin/bash
# frpClient.sh
basepath=$(cd `dirname $0`; pwd)
nohup $basepath/frpc -c $basepath/frpc.ini >/dev/null 2>&1 & 

在/etc/rc.local的 exit 0上面加上

# frpServer上,对应自己的sh文件路径
/bin/bash /home/admin/frp/frpServer.sh
# frpClient上,对应自己的sh文件路径
/bin/bash /home/admin/frp/frpClient.sh

就能实现开机自启动运行。
如果不想重启服务器等frp服务开机自启动,可以直接在shell中输入source /etc/rc.local,会立即重新加载文件内容,从而在后台启动frp服务。也可以直接在shell中输入前面的那一行命令,我尝试过,这样不会影响当前shell的使用。

两种方法都很有效。

到这里就完成全部配置了,在putty一类的客户端设置ssh连接,ip为frp server的公网ip,端口改为你在frp client上frpc.ini里配置的remote_port,输入学校服务器的linux账号密码,登录成功。内网穿透的ssh连接就配置完成了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值