阿里云ECS服务器使用frp实现内网穿透

使用内网穿透的原因

在实验室内网机器上部署了一个服务,希望能够通过公网的ip访问到这个服务,能进行演示。

采用的工具

常见的内网穿透工具如下:

ngrok(https://ngrok.com/) 是一个广泛使用的内网穿透工具,它可以将本地的服务暴露到公网,并提供一个临时的公共 URL。ngrok 支持多种操作系统,具有简单易用的命令行界面。

localtunnel(https://localtunnel.github.io/www/ )是一个基于 Node.js 的内网穿透工具,它能够将本地服务暴露到公网,并为其分配一个临时的公共域名。localtunnel 使用简单,适合快速共享本地开发环境。

Pagekite(https://pagekite.net/ )是一个开源的内网穿透工具,它可以将本地服务映射到公网,并提供自定义域名的功能。Pagekite 支持跨平台,适用于各种操作系统。

Remot3.it(https://www.remot3.it/ )是一个支持多种协议的内网穿透工具,可以将本地服务暴露到公网,并提供一个访问 URL。Remot3.it 支持远程访问和管理多种设备和服务。

除上面以外,还有NATAPP、花生壳、nps、EarthWorm等。

本文采用的是frp,因为感觉是frp好像是比较好用的一类哈哈。

你可以通过 frp 的官方网站(https://github.com/fatedier/frp获取更多详细的信息和文档。)

服务器和客户端的设备环境

frps: 阿里云服务器ECS Ubuntu

fprc:实验室服务器 Ubuntu

连接方式

配置服务端

在云服务器中

通过wget下载某一版本的frp文件

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

解压文件

tar -zxvf frp_0.32.1_linux_amd64.tar.gz

用cd进入到frp_0.32.1_linux_amd64目录中。因为云服务器做的是server端,可以删除frpc和frpc.ini两个client端的文件内容。之后vim编辑frps.ini的内容
修改frps.ini内容为

[common]
bind_port = 7000 #与客户端进行通信的接口
token = 789 #客户端连接时的token认证,随意设置,与后面frpc.ini中设置为相同值即可

之后在阿里云ECS服务器中打开端口。

  1. 进入安全组页面。

    1. 登录ECS管理控制台
    2. 在左侧导航栏,选择网络与安全 > 安全组。
    3. 在顶部菜单栏左上角处,选择地域。
  2. 找到目标安全组,在操作列中,单击配置规则。

  3. 在入方向中手动添加即可,端口号是特定的话就自行输入。我配置了两个端口,一个是7000/7000,一个是15053/15053(是我实验室机器服务的端口),具体可以查看下面的连接
    配置安全组规则

设置完成后就可以在服务端启动

# 前台启动(调试的时候可以前台启动)
./frps -c ./frps.ini   
# 后台启动(调试完成后没问题了,可以就采用后台启动)
nohup ./frps -c ./frps.ini > frps.log 2>&1 &

配置客户端

在本地机器中

首先还是下载和解压

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

然后进入cd到frp目录,客户端的配置也可以先将frps和frps.ini文件删除,然后配置frpc.ini

[common]
tls_enable = true             #必须设置,不然运行frpc的时候会报错login to server failed: EOF
server_addr = xxx.xxx.xxx.xxx # 服务器的公网服务器ip
server_port = 7000            # 与服务端bind_port一致
token = 789                   #客户端连接时的token认证,随意设置,与前面frps.ini中设置为相同值即可
#公网通过ssh访问内部服务器
[ssh]
type = tcp               # 连接协议
local_ip = 127.0.0.1     # 内网服务器ip
local_port = 15053       # 本地的服务端口号
remote_port = 15053      # 公网中对应此服务的端口号,可以随意设置,只要是前面阿里云服务器里开放的端口即可

保存后启动服务即可(上面这样采用127.0.0.1的方式不需要考虑本地宿主机的ip和端口以及宿主机内部署服务的端口,设置好后,通过公网就能够直接连接)

# 前台启动(调试的时候可以前台启动)
./frpc -c ./frpc.ini   
# 后台启动(调试完成后没问题了,可以就采用后台启动)
nohup ./frpc -c ./frpc.ini > frpc.log 2>&1 &

frpc和frps以及本地的服务都启动之后,即可通过公网的接口使用内网部署的服务啦!

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值