在学校做了一个deep learning项目通过web提供服务,验收阶段需要给甲方测试,但是学校是内网甲方无法访问,于是搜索内网穿透,解决方案非常多,身边同学推荐花生壳,经实测花生壳体验版速度慢,流量受限(每月1G)且不够稳定,正式版只能按年购买费用较贵,考虑到甲方测试至多只需一个月,花生壳正式版成本太高,本着给导师省钱的原则,选择了外网ip+frp的方案。

frp全称fast reverse proxy,是一个开源反向代理,只需一个公网ip即可实现内网穿透。网上方案多采用阿里云提供公网ip(稳定还不耗自己电啊),搜了一下阿里云学生购买一个月只需9.5,不够可以接着续。按照多数技术博客还需购买一个域名,查了一下域名也不贵,阿里云提供的最便宜每年8,但是大学学的网络原理告诉我只通过ip理论上也能访问网站,于是搜索无域名frp内网穿透,果不其然,又给导师省了一根鸡腿

判断方案可行后便开始行动,阿里云的学生优惠配置较低,用来做内网穿透也绰绰有余了。系统版本选择的Ubuntu系统,其实CentOS和windows也都可以。有轻量应用服务器和云服务器ECS两种可供选择,配置大同小异,没仔细比较,直接选择了轻量应用服务器。

有了公网ip之后就需要在阿里云和内网主机上分别下载frp并进行配置了,frp通过github下载系统对应版本,目前最新的版本是v0.28.1,我的两台电脑都是Ubuntu,都用的 frp_0.28.1_linux_amd64.tar.gz ,下载后解压

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

解压出下列文件:

其中 c 表示客户端文件,s 表示服务端文件

服务端(阿里云)配置

删掉无关客户端文件:

rm -f frpc
rm -f frpc.ini
rm -f frpc_full.ini

vim修改frps.ini(配置比较简单直接修改frps.ini即可,无需修改frps_full.ini)

[common]
bind_port = 7000
vhost_http_port = 80

说明:

bind_port :frp客户端和服务端连接的端口,默认即可,也可自己设置

vhost_http_port :反向代理http主机端口,80为默认,直接通过ip即可访问,若使用其他,例如8080,则需通过 xx.xx.xx.xx:8080访问(阿里云ip)

若使用https:vhost_https_port = 10443

其他配置可以通过frp的文档查看

保存后,启动运行(进入frp路径执行)

前端开启,关闭ssh连接就会失效
./frps -c ./frps.ini后台开启,关闭ssh连接仍然运行
nohup ./frps -c ./frps.ini &

若通过前者开启,显示下列信息即开启成功:

[service.go:146] frps tcp listen on 0.0.0.0:7000
 [service.go:188] http service listen on 0.0.0.0:80
 [root.go:204] Start frps success

若通过后者开启,信息会自动保存到frp路径下的 nohup.out 文件中,内容与上面一致

开启之后,还需在阿里云后台防火墙设置中开启相应端口

否则,客户端在连接时会出错

[W] [control.go:113] login to server failed: dial tcp xxx.xxx.xxx.xxx:7000: connect: connection timed out dial tcp xxx.xxx.xxx.xxx:7000: connect: connection timed out

轻量应用服务器设置如下:

添加使用到的新端口

云服务器ECS需添加安全组规则,详细可参考:

https://blog.csdn.net/a568713197/article/details/87897342

客户端(内网主机)配置

删除无关服务端文件

rm -f frps
rm -f frps.ini
rm -f frps_full.ini

vim修改frpc.ini

[common]
server_addr = 阿里云ip
server_port = 7000[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = 阿里云ip

说明:

server_port 应与服务端配置中的 bind_port 一致

[web]为模块名可自定义

local_port 应与内网主机web监听端口一致

custom_domains填映射到阿里云ip的域名,没有域名直接填阿里云ip即可

类似方式启动客户端后显示:

[service.go:224] login to server success, get run id [xxxx], server udp port [0]
[proxy_manager.go:137] [xxxx] proxy added: [web]
[control.go:144] [web] start proxy success

服务端也会有连接成功提示

[service.go:356] client login info: ip [内网主机ip:端口号] version [0.28.1] hostname [] os [linux] arch [amd64]
[http.go:92] [xxxx] [web] http proxy listen for host [阿里云ip] location [] group []
[control.go:398] [xxxx] new proxy [web] success
[proxy.go:84] [xxxx] [web] get a new work connection: [内网主机ip:端口号]

之后便可直接在浏览器中通过阿里云ip访问内网web服务

利用阿里云和frp实现无域名内网穿透相关推荐

  1. 黑群晖6.21无公网IP无域名内网穿透教程

    黑群晖6.21无公网IP无域名免费内网穿透教程 鼓捣黑群晖的起因,由于生了二胎,照片视频大量数据没有存储.闲来无事,准备解决大量照片存储问题.在咸鱼收了一块二手硬盘6T红盘. 但是问题来了,家里没有台 ...

  2. 阿里云搭建frp服务实现本地内网穿透

    如果使用我的链接购买阿里云服务器,我将免费提供帮忙搭建阿里云的frp服务. 背景 利用阿里云搭建frp服务,本地frp客户端来实现内网穿透,来达到访问没有公网ip的远程机器 frp服务端搭建 首先我们 ...

  3. 使用frp端口映射实现内网穿透(SSH、HTTP服务)

    使用frp端口映射实现内网穿透(SSH.HTTP服务) 一.下载 通过内网穿透的原理和实现方式的学习我们已经明白了内网穿透的原理,想要实现内网穿透就需要让内网实现与具有公网IP的设备进行绑定. 我们这 ...

  4. 使用frp搭建自己的内网穿透

    背景 微信开发等场景需要使用公网地址,但开发者本地通常没有公网IP,需要搭建内网穿透来方便调试.通常可以使用花生壳.Ngrok.frp等.花生壳需要实名认证, 需要6块钱,且使用别人服务器有一定的安全 ...

  5. frp点对点udp方式内网穿透ssh,不走服务器流量

    frp点对点udp方式内网穿透ssh,不走服务器流量 (2019 年 5 月 30 日) frp ssh 安全连接和服务器安全设置 (2019 年 5 月 29 日) frp 控制台监控dashboa ...

  6. frp 后台地址_FRP内网穿透配置教程及配置分享

    前言 随着全球IPv4地址耗尽,新装电信宽带一般也只给分配内网IP,不开放外网IP了,但是随时智能设备的越来越普及,像电脑.NAS.树莓派.摄像头等网络设备需要远程控制时较为麻烦,幸好有大佬开发了这款 ...

  7. frp ---- golang编写的内网穿透工具简介

    官网: https://gofrp.org/ frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 ...

  8. FRP的UDP协议内网穿透方案/穿透多个内网机器/账户无效问题

    目录 一 使用场景 二 到Github下载frp 三 解压到/usr/local/frp目录 四 配置云服务器端frps.ini 五 启动frp服务并保持frp服务开机启动和保持启动 六 配置内网环境 ...

  9. FRP+Docker+windows搭建内网穿透,实现外网访问家里的Windows

    准备:云服务器或者vps,作用:做数据转发1. frp是啥?具体可以看这里:https://gofrp.org/docs/concepts/简单来说,大家如果不求甚解,只需要知道下面这些就行:frp是 ...

最新文章

  1. 批处理文件中判断是否64位系统
  2. asp.net发布网站(转)
  3. 一文读懂人类信息存储进化史
  4. Learning to Rank算法介绍:RankSVM 和 IR SVM
  5. serial driver 2
  6. Workbox.strategies v3.x 中文版
  7. “定价还是太低了?” 16999元的华为Mate X开售秒没
  8. 一线互联网架构师设计思想解读开源框架!全套教学资料
  9. [HttpClient]HTTPClient PostMethod 中文乱码问题解决方案(2种)
  10. 从B站 (哔哩哔哩) 泄露的源码里发现了B站视频推荐的秘密
  11. 51单片机之矩阵键盘
  12. Dell台式计算机BIOS放电,戴尔BIOS设置电池维修笔记本电脑电池BIOS设置图形方法...
  13. Win11自动生成文件目录
  14. arduino eeg脑电模块_手把手教你EEG脑电数据预处理-原理篇
  15. xshell 免费版申请
  16. 郝夫曼(Huffman)树及其应用
  17. 网络推广员的工作职责,如何做好网络推广员
  18. CREATE DATABASE guestbook DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  19. SAS统计初学1-卡方检验
  20. (摘)消除眼睛疲劳的方法

热门文章

  1. 迅睿CMS网站搬家迁移服务器和变更域名的方法(实战方法)
  2. JavaScript 事件对内存和性能的影响
  3. 含泪整理Redis相关面试题大全
  4. CFhM xjb training 题解
  5. 季节性营销来了如何爆单?赛盈分销夏日大促已开启,这四大选品趋势一定要知道
  6. 手机添加office365邮箱帐号
  7. RGB通道和YCBCR通道相互转换——MATLAB实现
  8. (干货分享)差分电路原理解析
  9. ATM柜员机模拟程序
  10. 代码随想录训练营第25天|216.组合总和 Ⅲ、17.电话号码的字母组合