阿里云服务器+Frp+Proxifier工具进行内网穿透

news2024/11/27 14:33:35

阿里云服务器+Frp+Proxifier工具进行内网穿透

  • 为什么进行内网穿透?
  1. 什么叫内网穿透?

首先我们对内网和外网这两个名词做个解释:

内网:是内部建立的局域网络或办公网络,例如家庭内部网络,公司内部网络

外网简单来说就是随时随地可以访问的网络,例如互联网

内网穿透简单来说就是将内网外网通过隧道打通,让内网的数据外网可以获取。比如常用的办公室软件等,一般在办公室应用,通过拨号上网,没有公网IP,这样办公软件只有在办公室本地的局域网之内才能访问,用了内网穿透方案后,这些基于内网访问的办公室软件就可以在外网家里访问了。

  1. 哪些情况需要内网穿透?

 当我们想把内网的一些资源暴露在公网上时,可以使用内网穿透功能。比如公司的内网服务器,部署了平时需要开发的项目,但是回到家中无法访问,就可以使用内网穿透,将公司内网的接口映射到一台公网的服务器上,用这台公网服务器做转发即可实现在家中也能外网访问。

(1)企业远程办公,远程访问OA系统,以及其他办公软件。

(2)开发人员远程调试,远程访问内网服务器,数据库等。

(3)文件远程共享

  • 如何进行内网穿透?

1、Frp工具介绍

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议.

2、如何安装配置Frp?

  1. 准备工作:想要实现内网穿透功能首先我们需要准备:
  • 一台公网服务器(用作frp的服务端)这里我是用的是阿里云免费试用版本Linux服务器。
  • 一台需要做转发的内网服务器(用作frp的客户端)也就是我们经常要访问的那台内网服务器。
  • 自己的一个个人电脑,且个人电脑中已经安装了一些支持Linux系统远程(ssh)连接的工具例如(Xshell)。

frp的服务端

8.138.*.*(这是我的阿里云服务器公网IP)

具备公网IP

frp的客户端

192.162.130.111

公司内网IP

个人电脑

192.168.1.2

家庭WiFi网络

  1. frp的服务端安装配置

下载frp安装包:Releases · fatedier/frp · GitHub

        我们选择对应操作系统的安装包,我这里云服务器系统为CentOS7,可以输入命令查看服务器架构版本,所以我选择下载对应的Linux版本安装包。

         x86_64 直接下载 frp_0.51.2_linux_amd64.tar.gz 后缀为 amd64 这个版本即可。可以手动下载到本地,然后通过Xshell传到服务器,也可以直接在外网服务器上下载。

        在服务器上/user/local目录下创建frp目录

        cd /usr/local/frp

        进入到创建的frp目录直接执行一下在线下载命令

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

等待下载完成。

下载完成后在解压到当前目录就行,输入命令:

tar -zxvf frp_0.51.3_linux_amd64.tar.gz

解压完成后cd进入目录:cd frp_0.42.0_linux_amd64

查看当前目录下的文件,其中作为服务端,我们只需要关注 frps 和 frps.ini 文件。我这里已经把frpc 和 frpc.ini 文件删了。

进行服务端frp的配置:vim frps.ini

默认只有一个端口设置。一般没有特殊需求无需修改。也可以增加一些简单配置

[common]

bind_port = 7000

dashboard_port = 7501

dashboard_user = root

dashboard_pwd = root@123

token = frp@123

bind_port

客户端和服务端连接的端口,在配置客户端的时候要用到。

dashboard_port

服务端可视化界面的端口,若使用7501端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7501。

dashboard_user

打开服务端可视化界面的用户名,可自行设置。

dashboard_pwd

打开服务端可视化界面的密码,可自行设置。

token

用于客户端和服务端连接的口令,可以自行设置,不用和我保持一样,但需要记住,配置客户端的时候会用到。

配置完成后进行frps启动:

前台启动,在当前目录执行:./frps -c frps.ini,退出后程序也随即退出。

后台启动,在当前目录执行:nohup ./frps -c ./frps.ini &

启动后通过以下命令查看是否启动成功:ps aux | grep frp

但是大多数情况下我们希望服务端程序能够开机自启动不需要每次手动启动。所以需要将程序启动加入到系统服务中。具体如何设置这里不再赘述直接将启动脚本贴上;

[Unit]

Description=FRP

After=frps.service

[Service]

Type=simple

ExecStart=/usr/local/frp/frp_0.51.3_linux_amd64/frps -c /usr/local/frp/frp_0.51.3_linux_amd64/frps.ini

KillSignal=SIGQUIT

TimeoutStopSec=5

KillMode=process

PrivateTmp=true

StandardOutput=syslog

StandardError=inherit

[Install]

WantedBy=multi-user.target

  1. frp的客户端安装配置

前期的安装包下载解压与服务器端相同,首先删掉frps、frps.ini两个文件,然后再进行配置,vi ./frpc.ini

[common]

server_addr = 8.138.*.*   #公网服务器ip

server_port = 7000       #与服务端bind_port一致

#公网通过ssh访问内部服务器

[ssh]

type = tcp                 #连接协议

local_ip = 192.162.130.111  #内网服务器ip

local_port = 22             #ssh默认端口号

remote_port = 6000         #自定义的访问内部ssh端口号

配置完成后进行frpc启动:

前台启动,在当前目录执行:./frpc -c frpc.ini,退出后程序也随即退出。

后台启动,在当前目录执行:nohup ./frpc -c ./frpc.ini &

启动后通过以下命令查看是否启动成功:ps aux | grep frp

也需要增加系统服务实现开机自启动。

注意!!!:由于我们使用的是阿里云的服务器,服务器默认开启的端口可能不包含我们使用的7000,6000,6001端口,因此我们需要在阿里云服务器上进行手动开放对应端口。

进入到阿里云服务控制台,选择网络安全里的安全组,点击管理规则进入到以下界面。

服务器只对流量进来的端口有限制,所以我们只需要在入的方向增加我们对应想要开启的端口即可。

以上都结束以后便可以在私人笔记本上通过Xshell连接到公网服务器上,然后通过公网服务器便可以跳转到内网服务器上了。

这里也需要注意;ssh 跳转时要使用外网服务器的IP,同时指定使用remote_port = 6000 端口。

输入内网服务器的密码,便可以远程访问了。

  • 怎么实现本地工具通过穿透直连内网?

到这一步,我们只是实现了远程ssh 访问。更多情况下我们希望可以直接将私人笔记本中访问流量转发请求到内网服务器上。

这时候我们就需要使用另外一个工具了Proxifier。

Proxifier 是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持Xp,Vista,Win7,支持socks4,socks5,http,https代理协议,支持TCP,UDP协议,可以指定端口,指定IP,指定程序等运行模式,兼容性非常好。

Proxifier 的下载安装我这里就不再赘述,自行网上百度。

  1. 在使用Proxifier前需要在内网服务器上开启socks5端口6001 。这个端口我们在前面云服务上也已经提前开启了。

[plugin_socks5] 

type = tcp

local_ip = 192.168.*.* 

local_port = 6001 

remote_port = 6001 

plugin = socks5

plugin_user = abc

plugin_passwd = abc

  1. Proxifier上配置代理服务

增加代理服务器IP为阿里云公网IP,端口为在内网服务器frp客户端上配置的6001,用户名密码在配置中已经配置了,直接填上就行。

配置好代理服务以后需要配置代理规则,在Action选项里选择我们配置好的代理服务器。根据自己需要配置代理转发规则,不清楚的自己百度。

以上都完成以后,我们便可以直接在自己连接在家庭WiFi上的笔记本上直连内网目标机器了。例如访问内网服务器上的数据库,我们可以在笔记本上数据库连接软件上直接输入目标机器的内网IP端口就可以了。也可以在Xshell软件上直接输入目标IP,便可直接连接,方便快捷,不需要再先连接到阿里云服务器之后再通过ssh root@192.168.130.111 连接了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何通过AI视频智能分析技术,构建着装规范检测/工装穿戴检测系统?

众所周知,规范着装在很多场景中起着重要的作用。违规着装极易增加安全隐患,并且引发安全事故和质量问题,例如,在化工工厂中,倘若员工没有穿戴符合要求的特殊防护服和安全鞋,将有极大可能受到有害物质的侵害…

9.18日学习记录

1.VS2019Qt获取电脑设备名称 &#xff08;1&#xff09;添加网络模块network VS2019 Qt 怎么添加Qt模块&#xff1f;_vs 2019 qt widget应用程序泵设置 qt module_令狐掌门的博客-CSDN博客 &#xff08;2&#xff09;关键代码&#xff1a; #include <QHostInfo> QSt…

中小企业生产信息化系统哪个好用?选亿发制造业管理系统提供商

中小型制造企业虽然规模相对较小&#xff0c;但同样是市场经济的重要组成部分。要在这个竞争环境中脱颖而出&#xff0c;智能化生产管理系统成为中小型制造企业不可或缺的工具。让各部门之间的数据无缝衔接&#xff0c;实现工厂的整体协调性和工作效率的大幅提升。 让我们从几个…

【go语言】条件,选择,循环和特殊语句

if语句 a:10 if a>20{fmt.Printf("a大于20") }else if a<10{fmt.Printf("a小于10") }else{fmt.Printf("a大于等于10&#xff0c;a小于等于20") }go语言的if语句和C语言的if语句的差不多&#xff0c;需要注意的是else 和else if要写在括号…

首批Sui教育资助计划获奖者公布,超过30万美元奖金已发放

我们非常高兴地宣布Sui教育资助计划的第一批获奖者&#xff0c;该资助计划旨在支持那些有兴趣培养下一代创新者的开发者。本轮共有9个团队获得了超过30万美元的资助&#xff0c;所选提案包括开发新手营、课程、游戏化学习任务、开发者教育工具和技术workshops等。 Sui教育资助…

手机弱网测试工具:Charles

我们在测试app的时候&#xff0c;需要测试弱网情况下的一些场景&#xff0c;那么使用Charles如何设置弱网呢&#xff0c;请看以下步骤&#xff1a; 前提条件&#xff1a; 手机和电脑要在同一局域网内 Charles连接手机抓包 一、打开Charles&#xff0c;点击代理&#xff0c;…

Java笔记一

D:\java_dev\Java\jdk-20 创建 E:\javawork Hello World! E:\javawork-----新建HelloWorldApp.java 记事本打开文件 一&#xff1a; 在HelloWorldApp.java输入代码 public class HelloWorldApp{public static void main (String args[]){​ System.out.println(“H…

城市级数字孪生底座平台具有新内涵

关键词&#xff1a;数字孪生、数字孪生系统、数字孪生发展、城市数字孪生 **数字孪生城市是新型智慧城市建设新模式。**智慧城市建设模式是不断发展演化的&#xff0c;与上一阶段智慧城市建设相比&#xff0c;**内容形式上&#xff0c;**数字孪生城市建设更加注重城市全实体要…

Rust中的结构体

专栏简介&#xff1a;本专栏作为Rust语言的入门级的文章&#xff0c;目的是为了分享关于Rust语言的编程技巧和知识。对于Rust语言&#xff0c;虽然历史没有C、和python历史悠远&#xff0c;但是它的优点可以说是非常的多&#xff0c;既继承了C运行速度&#xff0c;还拥有了Java…

人工智能的未来:从 Jetson 到 GPT,沙龙见闻与洞察

前言 在当今数字化时代&#xff0c;人工智能正以惊人的速度改变着我们的生活和工作方式。从智能语音助手到自动驾驶汽车&#xff0c;从智能家居到医疗诊断&#xff0c;人工智能技术已经广泛渗透到各个行业&#xff0c;并为其带来了巨大的变革和创新。越来越多的行业专家、学者…

MQTT服务器搭建

本次搭建的MQTT服务器是emqx提供的服务器 1、下载 https://www.emqx.com/en/downloads/broker 从官网下载5.2.0版本emqx-5.2.0-windows-amd64.zip 下载完成直接安装 2、配置&#xff0c;修改端口号 mqtt默认端口号 常规的用法&#xff0c;我们一般使用和开放这两个端口&am…

037:vue项目监听页面变化,动态设置iframe元素高度

第037个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Element-ui 标签页el-radio-button左边框不显示问题

想实现一个tab切换的功能 看tabs组件挺相似的直接拿来用 默认是下边的效果 分开点 发现右边的白的按钮左边框没了 选中右边 左边按钮的边框正常 emmmm 选择按钮后查看样式 发现他有个border-left:0 去掉之后显示正常 在代码里添加border属性后显示正常了 但又出现新的问题…

二、飞线或者路线的实现(TubeBufferGeometry:管道缓冲几何体)

在做three大屏的时候我们经常会遇到绘制发光路线和指向的情况&#xff0c;那么就需要使用到管道&#xff08;TubeBufferGeometry&#xff09;这个API。先看看他能达到的几种效果。 一、效果图 1平面效果 2飞线效果 二、那么我们直接看代码&#xff0c;一共有6步。 定义数据 l…

作业错题一

1、内联函数的错题 首先&#xff0c;对内联函数的定义不清楚&#xff0c;同时对内联函数的原理有点模糊&#xff0c;还有一些注意的点忽略了&#xff1b; this指针的理解也出现错误&#xff01; 下一题是构造函数和析构函数的错误&#xff1a; 构造函数时先定义先构造&#…

无法删除目录(设备或资源忙)

文章目录 无法删除目录&#xff08;设备或资源忙&#xff09;问题原因解决方案步骤一&#xff1a;首先找到挂载的位置步骤二&#xff1a;取消挂载步骤三&#xff1a;查看挂在情况 无法删除目录&#xff08;设备或资源忙&#xff09; 问题 原因 网络共享挂载导致无法删除 解决…

Java Gradle

目录 1. Gradle简介 1.1 什么是Gradle 1.2 Gradle优点 1.2.1 自动化构建 1.2.2 Gradle相当于构建工具的进化版 1.2.3 对于Gradle优点&#xff0c;官网是这么说的 1.3 Grade 的版本说明 2. Groovy语言基础 2.1 基础语法 2.2 String 与 GString 2.2.1 String 2.2.2 插…

最新SSL证书申请源码,支持API接口,支付在线充值

最新SSL证书申请源码&#xff0c;支持API接口&#xff0c;支付在线充值 目前测试还不需要授权&#xff0c;以后更新版就不知道了 SSL证书保证网络安全的基本保障。向您介绍我们的在线生成SSL证书系统 支持在线生成SSL证书系统&#xff0c;用户登录可在线申请SSL&#xff0c;…

Nacos内核设计之一致性协议(上)

Nacos一致性协议 Nacos技术架构 先简单介绍下Nacos的技术架构 从而对nacos有一个整体的认识 如图Nacos架构分为四层 用户层、应用层、核心层、各种插件 再深入分析下nacos一致性协议的发展过程及原理实现 为什么nacos需要一致性协议 Nacos是一个需要存储数据的一个组件 为了实…

4k、VR与万兆光网

“全光万兆”对VR意义重大。 pico4的分辨率 PICO 4 的单眼分辨率是 2160 2160&#xff0c;整体分辨率高达 4320 2160。这是一款高性能的 VR 一体机&#xff0c;采用了 2.56 英寸的 Fast-LCD 屏幕&#xff0c;最高可实现 90Hz 刷新率&#xff0c;还有 1200 PPI 和 20.6 PPD 的…