frp+nginx内网穿透

背景:自己有台内网Linux主机,希望被外网访问(ssh、http、https);

准备工作

  1. 内网Linux主机-c,可以访问c主机和外网的主机-s(windows/linux)
  2. 官网下载nginx到s:https://nginx.org/en/download.html
  3. github上下载windows版frp到s:https://github.com/fatedier/frp/releases
  4. github上下载linux版frp到c:https://github.com/fatedier/frp/releases

s端配置步骤

  1. 配置nginx:
#443端口https请求反向代理
server {
#监听端口
listen 443 ssl;
server_name localhost; #ssl自签证书请参考我另一篇文章 https://www.cnblogs.com/zhoux123/p/14753126.html
ssl_certificate server.crt;
ssl_certificate_key server.key; ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; location / {
#反向代理地址
proxy_pass http://localhost:8088;
}
}
  1. 配置frps.ini
[common]
#日志输出路径:默认控制台
#log_file = ./frps.log #日志输出等级:trace, debug, info, warn, error(默认info)
#log_level = trace #s端和c端建立连接绑定的端口,默认7000
bind_port = 7000 #此端口上的http请求将会转发到c端
vhost_http_port = 8088
  1. 启动nginx服务
  2. 启动c端frps服务:./frps -c ./frps.ini,日志如下
2021/05/11 22:35:24 [I] [service.go:192] frps tcp listen on 0.0.0.0:7000
2021/05/11 22:35:24 [I] [service.go:235] http service listen on 0.0.0.0:8088
2021/05/11 22:35:24 [I] [root.go:209] frps started successfully

c端配置步骤

  1. 配置frpc.ini
[common]
#日志输出路径:默认控制台
#log_file = ./frpc.log
#日志输出等级:trace, debug, info, warn, error(默认info)
#log_level = trace
#s端地址
server_addr = 192.168.137.1
#s端和c端建立连接绑定的端口,默认7000
server_port = 7000 [ssh]
type = tcp
local_ip = 127.0.0.1
#默认22端口,termux为8022
local_port = 8022
remote_port = 6000 [http]
type = http
#s端的http请求将会转发到此端口
local_port = 8080
#s端地址,可同时设置多个,英文逗号隔开
custom_domains = localhost,127.0.0.1,192.168.137.1
  1. 启动c端frpc服务:./frpc -c ./frpc.ini,日志如下:
2021/05/11 22:41:43 [I] [service.go:304] [02c28f30442a89bd] login to server success, get run id [02c28f30442a89bd], server udp port [0]
2021/05/11 22:41:43 [I] [proxy_manager.go:144] [02c28f30442a89bd] proxy added: [ssh http]
2021/05/11 22:41:43 [I] [control.go:180] [02c28f30442a89bd] [http] start proxy success
2021/05/11 22:41:43 [I] [control.go:180] [02c28f30442a89bd] [ssh] start proxy success

验证

找一台可以访问s主机的电脑验证:

  1. 验证ssh:ssh root@192.168.137.1 -p 7000
  2. 验证http:http://192.168.137.1:8088
  3. 验证https:https://192.168.137.1https://192.168.137.1:443

尊重原创,转载请标明出处,谢谢

frp+nginx内网穿透的更多相关文章

  1. 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公

    当前情况下,经常会有需要到公司电脑进行一些操作,比如连接内网OA,数据库或者提交文档.为了减少外出,将使用frp进行内网穿透的方法进行一个说明. 前提条件 1. 一台拥有公网 IP 的设备(如果没有, ...

  2. 基于frp的内网穿透实例4-为本地的web服务实现HTTPS访问

    原文地址:https://wuter.cn/1932.html/ 一.想要实现的功能 目前已经实现将本地的web服务暴露到公网,现想要实现https访问.(前提:已经有相应的证书文件,如果没有就去申请 ...

  3. frp实现内网穿透

    frp实现内网穿透 目标 通过外网访问内网设备,本文中实现通过手机的移动流量,可以访问到树莓派设备 设备准备 需要被访问的设备(本文中使用Raspberry Pi`).公网IP设备(本文中使用阿里云 ...

  4. 使用frp进行内网穿透,实现ssh远程访问Linux服务器

    搭建一个完整的frp服务链需要: VPS一台(也可以是具有公网IP的实体机) 访问目标设备(就是你最终要访问的设备) 简单的Linux基础(如果基于Linux配置的话) 我这里使用了腾讯云服务器作为服 ...

  5. frp 用于内网穿透的基本配置和使用

    frp 用于内网穿透的基本配置和使用 今天是端午节,先祝端午安康! frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便 ...

  6. 分享下超实用的用skura frp做内网穿透的经验

    操作目的: 使无公网ip的主机能被外网访问,实现ssh对服务器的远程管理 硬件准备: 1.服务端:skura frp主机(skura frp 免费提供,有待创建) 2.客户端:接在无线路由器(内网)上 ...

  7. 使用FRP做内网穿透

    Github地址:https://github.com/fatedier/frp 什么是FRP? frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 h ...

  8. 如何使用 frp 实现内网穿透

    这有一个专注Gopher技术成长的开源项目「go home」 背景 作为一名程序员,家里多多少少会有一些落了灰的电脑,如果把闲置的电脑变成服务器,不仅有良好的配置,还能用来做各种测试,那就再好不过了. ...

  9. 基于frp的内网穿透实例1-通过SSH访问内网机器

    原文地址:https://wuter.cn/1804.html/ 老母鸡终于到了,作为一个能运行linux系统的四核1G硬件,它还是比较小巧的. FRP 全名:Fast Reverse Proxy.F ...

随机推荐

  1. 小甲鱼零基础入门学习python--课后作业

    [小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.Easy ...

  2. tar cf XXX.tar /tmp /var 日志保存

    tar cf XXX.tar /tmp /var 检测tar tf XXX.tar /tmp /var  

  3. 10.7 netstat:查看网络状态

    netstat命令 用于显示本机网络的连接状态.运行端口和路由表等信息. netstat命令的参数选项及说明 -r 显示路由表信息,该功能类似于前面学过的route 和ip route-g 显示多播功 ...

  4. .NET平台系列12 .NET未来之开源.NET Core

    系列目录     [已更新最新开发文章,点击查看详细] 微软于2014年11月推出了.NET Core 1.0..NET Core的目标是从我们在过去12年中对.NET Framework的构建.交付 ...

  5. 解决mysql无法远程连接的问题

    前言 最近开发中遇到一个问题,mysql在服务器本地可以登录,但是远程通过3306端口却不可以.这个问题困扰了我一周之久,终于在今天解决了.在解决的过程中试了很多的方法,遂记录下来,希望能给大家一些提 ...

  6. Go语言流程控制01--选择结构之if

    package main import "fmt" /* 字符串比大小 比首字符在字符集中出现的序号,首字符相同则比较第二个字符,以此类推 go的编译器默认使用UTF8字符集 在U ...

  7. deeplearning模型库

    deeplearning模型库 1. 图像分类 数据集:ImageNet1000类 1.1  量化 分类模型Lite时延(ms) 设备 模型类型 压缩策略 armv7 Thread 1 armv7 T ...

  8. TensorFlow实现多层感知机函数逼近

    TensorFlow实现多层感知机函数逼近 准备工作 对于函数逼近,这里的损失函数是 MSE.输入应该归一化,隐藏层是 ReLU,输出层最好是 Sigmoid. 下面是如何使用 MLP 进行函数逼近的 ...

  9. 嵌入式Linux设备驱动程序:编写内核设备驱动程序

    嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...

  10. 『动善时』JMeter基础 — 39、JMeter中如果(If)控制器详解

    目录 1.什么是逻辑控制器 2.如果控制器介绍 3.如果控制器的使用 (1)测试计划内包含的元件 (2)如果控制器界面内容 (3)HTTP请求界面内容 (4)运行结果 4.如果控制器中表达式的写法 ( ...