当前位置: 首页 > news >正文

Oracle Cloud Shell(甲骨文云Shell)+ FRP(反向代理)实现防火墙穿透,内网端口映,射公网

我们知道 “甲骨文云Shell” 有两种网络模式,一为:Public Network(公共网络),二为:Private Network(专用网络)

那么 “专用网络” 可以用于连接并且管理,本云账户主区域,虚拟VNC子网内得云服务器,而 “公共网络” 可以自由访问公网,但只能以C模式,因为其公网防火墙是被屏蔽IN方向得。

但是,人们仍旧可以让甲骨文云Shell,控制台运行的服务器端口被映射到公网,并且加以访问,毕竟人们要知道,甲骨文云Shell,控制台运行的服务器,可是足足分配了10G的内存,并且CPU双核并且性能非常强悍的。

而且甲骨文云Shell,控制台分配的公网IP还是 “静态IP”,就是它的IP地址几个月都不会发生任何改变非常之香气,只要不更换 “甲骨文云账户” 或者切换到其它的主区域,并且无限上下行流量,保底宽频大小上GE。

但我们需要准备以下几个工作:

1、准备一台具有公共IP且可以开放外网端口的服务器,可以是NAT/VPS,上行带宽口子越大越好

2、分析甲骨文云Shell,机器的公网IP地址、还有本机IP地址。

     2.1、本机IP地址,无法通过 ip a、ifconfig 命令来获取本机IP地址,关于网卡IP配置文件均不可以访问。

             可尝试以下方法:

             方法一:awk '/32 host/ { print f } {f=$2}' <<< "$(</proc/net/fib_trie)"

             方法二:nano showips.sh

#!/bin/bash

ft_local=$(awk '$1=="Local:" {flag=1} flag' <<< "$(</proc/net/fib_trie)")

for IF in $(ls /sys/class/net/); do
    networks=$(awk '$1=="'$IF'" && $3=="00000000" && $8!="FFFFFFFF" {printf $2 $8 "\n"}' <<< "$(</proc/net/route)" )
    for net_hex in $networks; do
            net_dec=$(awk '{gsub(/../, "0x& "); printf "%d.%d.%d.%d\n", $4, $3, $2, $1}' <<< $net_hex)
            mask_dec=$(awk '{gsub(/../, "0x& "); printf "%d.%d.%d.%d\n", $8, $7, $6, $5}' <<< $net_hex)
            awk '/'$net_dec'/{flag=1} /32 host/{flag=0} flag {a=$2} END {print "'$IF':\t" a "\n\t'$mask_dec'\n"}' <<< "$ft_local"
    done
done

exit 0

          2.2、获取公网IP地址,这种方法比较多,可以显示来源客户端IP地址的工具有很多,比如人们使用 perf、perf3 的客户端/服务器模式来测试公网IP地址。

3、由于不能使用 rz/sz 这类型的工具,但人们可以采用 scp 命令或把资源传到自己的HTTP服务器上面使用 wget/curl 命令来下载工具。

4、推测甲骨文云运行 Cloud Shell Console 的母鸡服务器,应该是采用的标准版本的 BBR+FQ 拥塞控制算法,所以如果线路质量极差的情况下,另一端可以考虑采用 “锐速、BBR+”,并且对TCP内核协议栈参数进行调优。

本文实战的甲骨文云 Shell 控制台主区域是韩国首尔,本来以为是可以自带流媒体解锁 Netflix、Disney+,然而错亿了,所以人们可以尝试其它主区域的 Cloud Shell 控制台能不能解锁流媒体。

现在开始部署FRP工具。

1、甲骨文云 Shell 控制台上部署FRP工具的客户端模式 

开源项目:liulilittle/frp: Fast reverse proxy supports UDP/TCP tunnel proxy. (github.com)

下载官方编译好的ELF二进制程序,甲骨文云 Shell 控制台服务器是 AMD_X86_64 指令集处理器平台:

https://github.com/liulilittle/frp/releases/download/1.0.0.0/frp-linux-x86_64.zip

ZIP压缩包内自带三个文件:

frp 工具ELF二进制程序(默认带X可执行权限)

frpc.ini 客户端配置

frps.ini 服务器配置 

修改客户端模式配置 frpc.ini

[app]
alignment=4096
mode=client
ip=反向代理服务器IP地址
port=反向代理服务器端口号
backlog=511
fast-open=true
turbo.lan=true
turbo.wan=true
connect.timeout=10
inactive.timeout=72
protocol=websocket
websocket.host=frp.org
websocket.path=/tunnel

[http]
type=tcp
local-ip=185.207.153.31
local-port=80
remote-port=80

protocol 目前可选两个协议:tcp、websocket

2、具有公网IP的运行反向代理服务器程序的VPS/VDS机器

服务器指令集是X86_64就下X86_64,是AARCH64(ARM64)就下AARCH64的压缩包,解压以后配置 frps.ini 文件。

[app]
alignment=4096
mode=server
ip=::
port=7000
backlog=511
fast-open=true
turbo.lan=true
turbo.wan=true
connect.timeout=10
inactive.timeout=72
protocol=websocket
websocket.host=frp.org
websocket.path=/tunnel

运行FRP反向代理工具程序

如果本地配置文件只有 frpc.ini、frps.ini 则FRP程序运行时自动选择配置文件,但如果目录下这两个文件都有那么运行的时候需要手动执行命令 frp -c 配置文件路径。

参考命令:frp -c frpc.inii、frp -c frps.ini

FRP可以识别当前目录下的默认配置文件命:frp.ini、frpd.ini、frpc.ini、frps.ini

一切准备就绪以后,我们来实战上网访问的效果,速度及效果非常给力,测试本地环境: 

甲骨文云韩国首尔 Cloud Shell Console + 甲骨文云韩国首尔ARM64 2GE + 中国大陆成都移动

 

 

 

 

 

 

相关文章:

  • (附源码)php新闻发布平台 毕业设计 141646
  • 非常详细的Maven安装与配置教程
  • git常用的几个命令
  • 卷积计算公式 神经网络,卷积神经网络应用举例
  • 配置nginx动静分离全步骤
  • sql note 链接查询
  • Zookeeper leader选举源码分析(超详细)
  • 南大通用GBase 8a MPP Cluster大规模并行计算技术介绍
  • Hive的原理概述与安装
  • 单片机开发——宠物自动饮水器方案
  • 面试官:你说你用过Dubbo,那你说说看Dubbo的SPI
  • 【Java】多线程面试总结
  • Python 深拷贝和浅拷贝的区别
  • 05_Nacos-config配置中心介绍
  • 2022年9月深圳NPDP产品经理认证,【进入了解】
  • [PHP内核探索]PHP中的哈希表
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • JavaScript-Array类型
  • JavaScript学习总结——原型
  • Java新版本的开发已正式进入轨道,版本号18.3
  • laravel5.5 视图共享数据
  • Promise初体验
  • 从零开始在ubuntu上搭建node开发环境
  • 从重复到重用
  • ------- 计算机网络基础
  • 利用DataURL技术在网页上显示图片
  • 排序算法学习笔记
  • 如何选择开源的机器学习框架?
  • 栈实现走出迷宫(C++)
  • 找一份好的前端工作,起点很重要
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​TypeScript都不会用,也敢说会前端?
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (四)c52学习之旅-流水LED灯
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net 调用php,php 调用.net com组件 --
  • .Net 知识杂记
  • .NET6 命令行启动及发布单个Exe文件
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @Validated和@Valid校验参数区别
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [Android] Amazon 的 android 音视频开发文档
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [C#7] 1.Tuples(元组)
  • [COI2007] Sabor
  • [CTF]php is_numeric绕过
  • [Java算法分析与设计]--线性结构与顺序表(List)的实现应用
  • [JMS 3] ActiveMQ实现简单的helloworld
  • [pytorch入门] 6. 神经网络
  • [RoarCTF 2019]Easy Calc
  • [UWP]了解模板化控件(6):使用附加属性
  • [Windows] Win11 常用快捷键