使用阿里云ECS服务器和frp配置SSH反向代理

简介: 校园网、公司内网中的设备一般是没有公网ip的,所以没办法用SSH直接连接。但是平时VSCode远程连接调调代码啥的都是通过SSH来连接的,平时不在学校或者公司的时候会很麻烦。虽然说VPN、向日葵花生壳之类的方法都能解决这个问题,但是这些方法不是麻烦就是贵或者不安全。frp只需要一台有公网ip的服务器就能实现外网SSH访问,相对来说比较简单。

简介

校园网、公司内网中的设备一般是没有公网ip的,所以没办法用SSH直接连接。但是平时VSCode远程连接调调代码啥的都是通过SSH来连接的,平时不在学校或者公司的时候会很麻烦。虽然说VPN、向日葵花生壳之类的方法都能解决这个问题,但是这些方法不是麻烦就是贵或者不安全。frp只需要一台有公网ip的服务器就能实现外网SSH访问,相对来说比较简单。

具体步骤

准备工作

  1. 内网需要访问的设备A(linux或win10)
  2. 云服务器B(本人使用了阿里云的服务器CentOS6,不同云服务器应该都差不多,最大的区别应该是在安全组默认配置上面,只要能够有固定的公网ip就行)
  3. 个人电脑,平时没办法再内网使用的设备B


下载解压fpr

在A和B中下载fpr,github的下载链接为:https://github.com/fatedier/frp/releases。下载最新版本就行了。以frp_0.44.0_linux_arm64.tar.gz为例。  


进入对应地址并解压,在linux中解压命令为:

tar -zxvf frp_0.44.0_linux_arm64.tar.gz

A中删除frps为前缀的三个文件,B中删除frpc为前缀的三个文件。

配置fpr

对于B,进入到 frp_0.44.0_linux_arm64 目录中,使用vim打开frps.ini文件,并修改为:

[common]
server_addr = 127.0.0.1
server_prot = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

其中server_port为B输出到A的端口,而remote_port为C输入到B的端口。

对于A,打开frpc.ini文件,并修改为:

[common]
server_addr = xx.xx.xx.xx
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

其中xx.xx.xx.xx为服务器B的地址。

启动服务

最简单的情况就是可以直接启动服务了,首先启动云服务器B的服务,进入 frp_0.44.0_linux_arm64 目录,并输入(建议使用nohub、tmux、screem其中之一来维持服务在后台运行):

./frps -c ./frps

然后启动A,也是一样的步骤:

./frpc -c ./frpc

访问方法

在C的cmd中输入命令:

ssh -p 6000 A_user_name@xx.xx.xx.xx

并输入A的密码,就能成功访问服务器A了。

可能的问题

  1. 连接超时,验证一下安全组server port和remote port对应的端口有没有打开
  2. 客户端拒绝访问,可能是A没有启动sshd(linux服务器一般没有这个问题),如果在win10碰到了这个问题,在电脑的 设置->应用 中添加openssh,然后在管理员权限下的cmd开启sshd,命令是```net start sshd```.

最后

其实一开始我的目标是反代再通过端口转发直接通过云服务器和内网的跳板访问内网服务器的,这样比较方便也安全,但是最终反代之后似乎是不能将反代的端口再转发所以失败了。虽然配置很方便,但是实际使用非常的不优雅!

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
网络安全 开发工具 git
配置本地环境以管理Git多账户SSH连接的方法
通过以上步駟设置后, 您可以轻松管理多個 Git 账户并且根据不同项目需求切换 SSH 密匙进行版本控制操作。
161 20
|
4月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
210 14
|
3月前
|
网络安全 开发工具 git
GitHub 多账户 SSH 配置指南
本文介绍了如何在同一台电脑上配置多个 GitHub 账户的 SSH 密钥。内容包括:检查现有密钥、生成新的 SSH 密钥、配置 SSH config 文件、将公钥添加到 GitHub、验证 SSH 连接、设置 Git 用户信息、创建工作区目录、使用不同账户克隆仓库,以及为每个仓库配置独立的用户信息等步骤。通过这些操作,可以实现在不同项目中使用不同的 GitHub 账户进行提交和管理。
255 0
|
5月前
|
Ubuntu 应用服务中间件 网络安全
关于一些轻量云服务器SSH断连的疑问
在使用2H2G配置的轻量级Ubuntu 22.04服务器时,按照Solana官网教程安装环境,执行`[cargo install]`命令(特别是安装avm和anchor包时),出现SSH连接中断且无法重新登录的问题。推测可能是低配服务器资源耗尽导致SSH进程被终止,即便CPU使用率下降也无法恢复连接,需重启服务器并等待约30分钟才能恢复正常。此现象或与服务器性能限制有关,期待更多测试与解释。
|
5月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
207 24
|
6月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
225 10
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
501 2
|
11月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?
|
Shell Linux 网络安全
Linux怎样在使用ssh 链接时就指定gcc 的版本
Linux怎样在使用ssh 链接时就指定gcc 的版本
142 7

热门文章

最新文章