frp内网穿透 外网远程桌面和ssh连接校园网服务器

frp是什么?

frp is a fast reverse proxy to help you expose a local server behind a
NAT or firewall to the Internet. As of now, it supports TCP and UDP,
as well as HTTP and HTTPS protocols, where requests can be forwarded to internal services by domain name.frp also has a P2P connect mode.

frp是一种快速反向代理,可帮助您将NAT或防火墙后面的本地服务器公开到Internet。 到目前为止,它支持TCP和UDP以及HTTP和HTTPS协议,在这些协议中,请求可以通过域名转发到内部服务。frp还具有P2P连接模式。frp源代码地址

本文主要讲述通过frp,使用RDP(远程桌面)和ssh连接校内服务器。

需要:1、云服务器(服务端)
2、联网的校内服务器(我们需要连接的服务器)(客户端)
3、能使用外网的电脑或能远程连接的平板或者手机。(用户测试)
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第1张图片
可以给云服务器设置安全组,打开所有端口,这样就不用一个端口一个端口的开了。
如图所示
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第2张图片
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第3张图片
然后再点管理实例的新增管理,将新增的安全组关联到你的服务器上。

frp安装和配置

frp下载地址(https://github.com/fatedier/frp/releases)

下载最新的版本
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第4张图片
Ubuntu下载frp并保存到当前文件夹的命令行

wget  https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_amd64.tar.gz

解压tar.gz

tar -zxvf frp_0.31.1_linux_arm64.tar.gz

进入文件夹

cd frp_0.31.1_linux_arm64

frp内网穿透 外网远程桌面和ssh连接校园网服务器_第5张图片

服务端

主要用到的是frps可执行文件和frps.ini配置文件。frps_full.ini 是全部配置文件不用修改,在frps.ini中修改就行。
配置文件可以查看源代码中的中文文档。
配置frps.ini文件

vim frps.ini

这是我云服务器上的配置。

[common]
#bind_addr = 0.0.0.0
bind_port = 7000  //7000端口是和客户端连接时使用的端口。
auto_token = frp  //和客户端保持一致就行

//服务器查看端口账号
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

在浏览器输入服务器 ip:7500 可以查看端口
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第6张图片
设置好frps.ini文件之后,运行frps可执行文件。在当前路径下执行。

 ./frps -c ./frps.ini 

运行成功截图(windows系统)
在这里插入图片描述
也可以写systemctl来控制启动。例如《Frp后台自动启动的几个方法》

查看frps进程:

ps -e | grep frps

在这里插入图片描述

客户端

只要使用压缩包中的frpc可执行文件和frpc.ini配置文件。frpc_full.ini 是全部配置文件不用修改,在frpc.ini中修改就行。
客户端也是ubuntu系统的话,操作和上面服务端的一样。
其中frpc.ini文件修改

[common]
server_addr = xx.xx.xx.xx   //服务端的IP地址
server_port = 7000          和服务端端口一致

[RDP]                   //远程桌面配置,具体的可以查看源代码给的readme
type = tcp
local_ip = 0.0.0.0     //没太弄懂  填0.0.0.0和127.0.0.1都可以
local_port = 5900      //随便填,但是不能和其他端口重合,两边服务器都把这些端口打开
remote_port = 6001      //这个端口是远程连接的用户所使用的端口


[ssh]                   //这个是用做ssh连接的
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000     远程连接的用户使用这个端口

设置好后启动

 ./frpc -c ./frpc.ini 

frp内网穿透 外网远程桌面和ssh连接校园网服务器_第7张图片
windows系统做客户端(还可以一个服务端对应多个客户端,因为上网账号不够,服务器不能上网,所有windows服务器就没设置成客户端。)不过设置和上面差不多。
下载适合windows系统的frp压缩包,配置其中的frpc.ini文件。
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第8张图片

[common]
server_addr = x.x.x.x     //服务端ip
server_port = 7000        //和服务端端口保持一致

[ssh80]   //这个名称不要和另外一个客户端的重合
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6080       //这个也不要重合

[RDP02]         //这个名称也不要和另外一个客户端的重合
type = tcp
local_ip = 0.0.0.0
local_port = 6002
remote_port = 6002

只要配置中的名称不和另一个客户端的名称重合,这样就可以一个服务端对应多个客户端了。

windows10运行frp指令
在frp文件夹下直接输入cmd打开命令提示符
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第9张图片
windows运行客户端参照文章

后台运行frp服务命令

参照文章

服务端: nohup ./frps -c frps.ini >/dev/null 2>&1 &

客户端: nohup ./frpc -c frpc.ini >/dev/null 2>&1 &

说明:>/dev/null 2>&1 &,表示丢弃。

systemctl控制启动

参照文章

sudo vim /lib/systemd/system/frps.service

写入

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/你的frp安装路径/frps -c /你的frp安装路径/frps.ini

[Install]
WantedBy=multi-user.target

服务端和客户端都可以这样写。只需要改ExecStart中frp的执行路径(注意frps和frpc)

然后就启动frps

sudo systemctl start frps

再打开自启动

sudo systemctl enable frps

重启应用:sudo systemctl restart frps
停止应用:sudo systemctl stop frps
查看应用的日志,输入:sudo systemctl status frps

注意:以上设置的端口在客户端和服务端都要打开。
ubuntu开端口的指令

sudo ufw allow 22   //tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口

外网测试

ssh连接和远程桌面连接都需要学校服务器在内网都能够使用ssh和远程桌面连接。这里就不细说了。
ssh连接
我用的是putty连接
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第10张图片

frp内网穿透 外网远程桌面和ssh连接校园网服务器_第11张图片
输入学校的服务器账号和密码,你就能通过阿里服务器登入内网服务器了。

远程桌面连接
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第12张图片
远程桌面输入ip:6001, 6001这是我设置的端口号,你也可以设置其他的,但是不要和其他端口号重合。
frp内网穿透 外网远程桌面和ssh连接校园网服务器_第13张图片
输入账号和密码就能登录

注意事项:
注意端口是否开启,关闭和重启防火墙都可能会对端口造成影响。(之前搞磁盘挂载,关闭重启了防火墙,导致远程连接失效,找了两个小时的原因,结果是3389端口没打开)

你可能感兴趣的:(ubuntu,ssh)