frp内网穿透之(反向代理nginx)

通过公网 https 连接访问内网(局域网)本地http服务如下:

1.准备工作

​ 想要实现内网穿透功能首先我们需要准备:

  • 一台公网服务器(用作frps的服务端)
  • 一台需要做转发的内网服务器(用作frpc的客户端)

3、frp服务端安装及配置

3.1 下载frp服务端

​ 注意frp服务端是安装在公网服务器上的!!!

​ 服务端下载地址:Releases · fatedier/frp · GitHub

在这里插入图片描述

​ 可以看到有很多版本,我的外网服务器是Linux的,可以输入命令查看服务器架构版本:

arch

在这里插入图片描述

​ x86_64 直接下载.我下载的是frp_0.56.0_linux_amd64.tar.gz 后缀为 amd64 这个版本。可以手动下载到本地,然后通过scp命令传到服务器,也可以直接在外网服务器上下载。

 下载完成后解压,输入命令:

tar -zxvf frp_0.56.0_linux_amd64.tar.gz

​ 解压完成后cd进入目录:

cd frp_0.56.0_windows_amd64

​ 其中作为服务端,我们只需要关注 frps 和 frps.toml 文件。

3.2 frps配置

​ 其中 frps.toml 文件就是我们服务端的配置文件,我们需要根据自己情况稍作修改。输入命令:

vim frps.toml

 编辑配置如下:

bindPort = 8848
webServer.port = 8088
webServer.addr = "0.0.0.0"
webServer.user = "admin"
webServer.password = "admin"

 其中:

  • bindPort:客户端和服务端连接的端口,在配置客户端的时候要用到。
  • webServer.port:服务端可视化界面的端口,若使用7501端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7501。
  • webServer.addr:本地访问地址
  • webServer.user:打开服务端可视化界面的用户名,可自行设置。
  • webServer.password:打开服务端可视化界面的密码,可自行设置。
  • token:用于客户端和服务端连接的口令,可以自行设置,不用和我保持一样。

​ 注意:配置项并未介绍完,详情请参见官方文档。

3.3 frps启动

​ 输入启动命令,启动frp服务端:

# 方式一:正常启动
./frps -c ./frps.toml# 方式二:后台挂起启动
nohup /frp/frp_0.56.0_linux_amd64/frps -c /frp/frp_0.56.0_linux_amd64/frps.toml > /frp/frp_0.56.0_linux_amd64/frps.log 2>&1 &        

​ 如果没有报错,代表启动成功!如果无法访问 8088 服务端可视化界面,请检查防火墙是否开放所有所需端口。云服务器,配置规则记得也要开放

输入配置的账号密码,点击登录,进入仪表盘:

在这里插入图片描述

​ 此时frp的服务端我们就配置完毕了,接下来开始配置客户端。

4、frpc客户端配置及启动

(本人使用的是本地虚拟机。如果你使用的是windows系统,配置和启动方法一样。)

4.1 把服务端下载的 frp_0.56.0_linux_amd64.tar.gz 文件向虚拟机 Linux 中复制一份过来后,进行解压如下:

4.2 接下来我们来修改客户端 frpc.toml 配置文件

serverPort = 8848
serverAddr = "你的服务端IP 110.50.114.150"[[proxies]]
name = "web"
type = "tcp"
localIP = "192.168.110.25"
localPort = 8201
remotePort = 8888
  • serverPort:与远程绑定的端口相同
  • serverAddr:公网服务器 IP 访问地址
  • name:代理名称(随便填)
  • type:  代理类型
  • localIP:代理地址, 要转发到哪个地址(本地服务地址)
  • localPort:代理端口, 要转发到哪个端口(本地服务端口)
  • remotePort:  远程代理到公网的端口,服务端与客户端连接的桥梁 (此端口记得进行端口开放,避免连接不上)

输入启动命令,启动frp客户端 ,如下:

# 方式一
./frpc -c ./frpc.toml# 方式二
nohup /guorui/frp/frp_0.56.0_linux_amd64/frpc -c /guorui/frp/frp_0.56.0_linux_amd64/frpc.toml > /guorui/frp/frp_0.56.0_linux_amd64/frpc.log 2>&1 &# 如果是你是windows,进入文件所在目录进行启动。 启动方式如下:
frpc -c frpc.toml

​ 如控制台未报错,代表启动成功,默认80端口

 5. 使用Nginx 配置https协议的域名

5.1 具体阿里云域名购买和配置请参考我以前的文章,有讲解。自行翻阅,本文不讲,直接上代码!

 # nginx https 服务配置	server {listen 80;server_name yourdomain.com; #需要将yourdomain替换成证书绑定的域名。rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。location / {index index.html index.htm;}}server {listen 443 ssl;server_name yourdomain.com; #需要将yourdomain替换成证书绑定的域名。root html;index index.html index.htm;ssl_certificate cert/yourdomain.com.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。ssl_certificate_key cert/yourdomain.com.key; #需要将cert-file-name.key替换成已上传的证书私钥文件的名称。ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#表示使用的加密套件的类型。ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。ssl_prefer_server_ciphers on;location / {proxy_pass http://ip:8888;    # 上一步访问的地址(也就是客户端配置的远程访问地址)}}

5.2 访问成功结果如下:

访问nginx配置的域名地址:https://yourdomain.com/xxx/xxx/myMethod

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求m和n的最大公约数(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int remainder 1;int m 0;int n 0;int middle 0;//提示用户&#xff1b;printf("请输入整数m和n的值&#xff…

在不同操作系统中搭建Python编程环境

1 在不同操作系统中搭建Python编程环境 1.1 在Linux系统中搭建Python编程环境 1. 检查Python版本 在你的系统中运行应用程序Terminal&#xff08;如果你使用的是Ubuntu&#xff0c;可按Ctrl Alt T&#xff09;&#xff0c;打开一个终端窗口。为确定是否安装了Python&…

医保是如何报销的

《医保是如何报销的》 这是罗师兄的原创文章 预计5-6分钟读完 作者&#xff1a;罗师兄 地球号&#xff1a;luoyun515 很多时候大家听到医保报销比例80%&#xff0c;85%&#xff0c;90%等&#xff0c; 但真正报销后&#xff0c; 实际花费跟报销额度根本达不到这么高&#…

宏的使用(C语言详解)

在写一个代码生成可执行文件的过程需要经过编译和链接&#xff0c;编译又要经过三部&#xff1a;预处理&#xff0c;编译&#xff0c;汇编。 #define定义的变量和宏就是在预处理阶段会处理的。 一个简单的宏定义&#xff1a; #include<stdio.h>; #define Max(a,b) a>…

《Java面试自救指南》(专题三)数据库

文章目录 一条sql语句的查询流程有哪些数据库存储引擎&#xff0c;各自的区别数据库的三大范式事务的四大特性&#xff08;含隔离级别&#xff09;MySQL四种隔离机制的底层实现&#xff08;如何解决幻读 &#xff09;MySQL有哪几种锁&#xff0c;分别怎么实现数据库中有哪些索引…

ROS服务通信

ROS有两种通信方式&#xff1a;话题通信、服务通信。 话题通信是基于发布订阅模式的&#xff0c;即&#xff1a;一个节点发布消息&#xff0c;另一个节点订阅该消息。发布方和订阅方不相互影响&#xff0c;也就是发布方只负责发消息&#xff0c;订阅方只负责订阅消息。 服务通…

微软推出GPT-4 Turbo优先使用权:Copilot for Microsoft 365商业用户享受无限制对话及增强图像生成能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

夯实智慧新能源数据底座,TiDB Serverless 在 Sandisolar+ 的应用实践

本文介绍了 SandiSolar通过 TiDB Serverless 构建智慧新能源数据底座的思路与实践。作为一家致力于为全球提供清洁电力解决方案的新能源企业&#xff0c;SandiSolar面临着处理大量实时数据的挑战。为了应对这一问题&#xff0c;SandiSolar选择了 TiDB Serverless 作为他们的数据…

烧坏两块单片机,不知道原因?

没有看你的原理图&#xff0c;以下是造成烧毁芯片的几个环节&#xff1a; 1. 最大的可能性是你的单片机电机控制输出与电机驱动电路没有隔离。 我的经验&#xff0c;使用STM32控制电机&#xff0c;无论是直流电机脉宽调制&#xff0c;还是步进电机控制&#xff0c;控制电路与…

企业级开源路由系统VyOS-构建和使用

介绍 VyOS是一个基于Linux的企业级路由器操作系统&#xff0c;被许多公司和个人用来驱动物理网络设备&#xff0c;如路由器和防火墙。它有一个统一的命令行界面来管理其所有的网络相关功能&#xff08;和Juniper Junos操作很像&#xff09;。VyOS使用Debian GNU/Linux作为其基…

(学习日记)2024.04.01:UCOSIII第二十九节:消息队列实验(待续)

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

JavaScript代码小挑战

题目如下&#xff1a; 朱莉娅和凯特正在做一项关于狗的研究。于是&#xff0c;她们分别询问了 5 位狗主人他们的狗的年龄&#xff0c;并将数据存储到一个数组中&#xff08;每人一个数组&#xff09;。目前&#xff0c;她们只想知道一只狗是成年狗还是小狗。如果狗的年龄至少为…