【Linux】腾讯云服务器,使用FRP内网穿透,端口映射,远程访问内网主机、代理内网

2023-05-16

FRP内网穿透

  • 一、需求分析
    • 1.1 情况
    • 1.2 需求
    • 1.3 解决方案
  • 二、云服务器开放端口访问
    • 2.1 进入控制台
    • 2.2 配置防火墙
  • 三、安装FPR
    • 3.1 限定
    • 3.2 云服务器(服务端)安装FPR
    • 3.3 局域网内机器(客户端)安装FPR
  • 四、访问
  • 五、设置frps和frpc服务开机自启动
    • 5.1 设置云服务器端开机自启动
    • 5.2 设置局域网机子frpc开机自启动
  • 六、复杂配置

一、需求分析

1.1 情况

有一台具有公网ip的腾讯云服务器–Linux CentOs7.6版本
有一台实验室局域网内的服务器(ununtu 1604版本),局域网IP为192.168.0.202,这台服务器能访问外网,但外网无法穿透找到该机器

1.2 需求

我家里有一台电脑(即不在实验室局域网内),想访问局域网内的机器

1.3 解决方案

搭建FPR服务,通过腾讯云服务器间接访问局域网内的机器

二、云服务器开放端口访问

这里我们先开放7000端口(frp服务端口)和6000端口(映射局域网机器的22端口)

2.1 进入控制台

进入控制台,点击购买的服务器->管理
在这里插入图片描述

2.2 配置防火墙

如果想从外网访问服务器的某个端口,我们需要为这个端口设置添加规则

  1. 点击防火墙按钮,添加规则
    在这里插入图片描述
  2. 开放6000端口和7000端口,例如6000端口如下
    在这里插入图片描述

三、安装FPR

3.1 限定

首先在这里,我们称

  1. 腾讯云服务器运行的为服务端
  2. 局域网内机子运行的为客户端
    第三大节为简易配置,简易配置成功后如需要可看第六大节复杂配置

3.2 云服务器(服务端)安装FPR

PS: 在之前我使用的也是frp,但frp存在一个问题,那就是无法设置IP黑名单或白名单,这就使得公网上任意主机都能访问到映射的主机,查看记录可以看到经常有成百上千的尝试连接,有点危险,并且如果使用frp提供的socks代理将会更危险,将会暴露整个内网所有机子,当一些主机设置弱口令密码时将会很容易攻破,因此博主用java重新写了一个内网穿透工具,可点击博客介绍或GitHub仓库查看,这个工具拥有frp常用的映射、代理功能,并且还有一个防火墙管理网站,可以设置一些ip白名单,每次换了地点只需要登陆下网站添加到IP白名单即可,十分方便,使用了的话还麻烦给个star哦

当然你也可继续安装frp

  1. 点击链接,下载最新版的frp包
    我下载的是
    在这里插入图片描述
  2. 将下载的文件上传至服务器
  3. 执行tar -zxvf frp_0.38.0_linux_amd64.tar.gz解压
  4. 执行 cd frp_0.38.0_linux_amd64/进入文件夹
  5. 启动运行
    在安装好的目录内
    执行./frps -c ./frps.ini前台启动命令
    在这里插入图片描述
    后期可以ctrl+c 终止程序,再执行nohup ./frps -c ./frps.ini & 后台保持启动

3.3 局域网内机器(客户端)安装FPR

  1. 安装方法与云服务器一致
  2. 将下载的文件上传至服务器
  3. 执行tar -zxvf frp_0.38.0_linux_amd64.tar.gz解压
  4. 执行 cd frp_0.38.0_linux_amd64/进入文件夹
  5. 执行vi frpc.ini更改相关配置如下
    在这里插入图片描述
  6. 启动运行
    #在安装好的目录内
    执行./frpc -c ./frpc.ini前台启动命令
    在这里插入图片描述
    后期可以ctrl+c 终止程序,再执行nohup ./frpc -c ./frpc.ini & 后台保持启动

四、访问

现在就可以通过云服务器公网IP+6000端口访问局域网内机器的22号ssh端口
在这里插入图片描述

五、设置frps和frpc服务开机自启动

切勿直接复制粘贴,注意是frps还是frpc

5.1 设置云服务器端开机自启动

  1. 执行sudo vim /etc/systemd/system/frps.service创建服务,编辑如下
[Unit]
Description=frps daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frp_0.38.0_linux_amd64/frps -c /root/frp_0.38.0_linux_amd64/frps.ini		# 编辑的时候一定要删除注释 这里更改为自己安装frps的绝对路径
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
  1. 开启自启动
    执行如下指令
#启动frps
systemctl daemon-reload
systemctl start frps
#设置为开机启动
systemctl enable frps

5.2 设置局域网机子frpc开机自启动

  1. 执行sudo vim /etc/systemd/system/frpc.service创建服务,编辑如下
[Unit]
Description=frpc daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/home/intleo21/frp_0.38.0_linux_amd64/frpc -c /home/intleo21/frp_0.38.0_linux_amd64/frpc.ini		# 编辑的时候一定要删除注释 这里更改为自己安装frpc的绝对路径
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
  1. 开启自启动
    执行如下指令
#启动frpc
sudo systemctl daemon-reload
sudo systemctl start frpc
#设置为开机启动
sudo systemctl enable frpc

六、复杂配置

以下配置中密码和公网IP都使用XX进行了代替,复制使用时请注意修改

  1. 远程服务端frps.ini

    [common]
    # frp监听的端口,默认是7000
    bind_port = 7000
    # 授权码,请自定义更改
    token = XXXXX
    # 这个token之后在客户端会用到
    
    # frp管理后台端口,请按自己需求更改
    dashboard_port = 7500
    # frp管理后台用户名和密码,请改成自己的
    dashboard_user = admin
    dashboard_pwd = XXXXX
    enable_prometheus = true
    
    # frp日志存放位置、日志等级及日志存储最大天数
    log_file = /var/log/frps.log
    log_level = info
    log_max_days = 7
    
    
  2. 客户端的frpc.ini文件

    [common]
    # 远程服务器ip,远程frp服务端口以及远程登录密码
    server_addr = 119.XX.XX.119
    server_port = 7000
    token = XXXXX
    
    # 日志存放位置、日志等级及日志存储最大天数
    log_file = /var/log/frpc.log
    log_level = info
    log_max_days = 7
    
    # 将本地机的22端口映射至远程20022端口 中括号内[ssh]只作为标识,可自定义
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 20022
    
    # 将本机的5901端口映射至远程25901端口
    [vnc]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 5901
    remote_port = 25901
    
    # 将本机所在局域网内的192.168.0.129机子的5901端口映射至远程55901端口
    [tsj-vnc]
    type = tcp
    local_ip = 192.168.0.129
    local_port = 5901
    remote_port = 55901
    # 代理本机所在的内网,即若用户设置代理为公网IP+端口即可访问本机所在内网,使用的是socks5代理协议,plugin_user及后面的可设置可不设,但不设的风险较大
    [socks5_proxy]                                                                                                                                                                   
    type = tcp                                                                                                                                                                       
    remote_port = 7890                                                                                                                                                               
    plugin = socks5
    plugin = socks5
    plugin_user = name
    plugin_passwd = password
    use_encryption = true
    use_compression = true
    
    
  3. 重启frp服务
    服务端
    sudo systemctl restart frps.service
    客户端
    sudo systemctl restart frpc.service

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Linux】腾讯云服务器,使用FRP内网穿透,端口映射,远程访问内网主机、代理内网 的相关文章

  • npm的基本使用

    npm的下载 npm的下载其实就是把node js 百度下node官网 下载好了那么npm就附带下载好了 检查是否下载好 window 43 r 后输入cmd打开终端 xff0c 在终端中输入node v xff1b npm v 他们会输出
  • 从 (a==1&&a==2&&a==3) 成立中看javascript的隐式类型转换

    几天上班看到一个题目就是 if a 61 61 1 amp amp a 61 61 2 amp amp a 61 61 3 console log 34 a等于什么才会输出这一句话呢 xff1f 34 当a为什么的时候输出 xff1a a等
  • Bootstrap实用功能总结

    导航栏 xff1a navbar 导航栏容器可以包含以下几个常用组成 xff1a 1 品牌LOGO xff08 navbar brand xff09 2 导航菜单 xff08 navbar nav xff09 3 导航文本 xff08 na
  • 微信小程序的AJAX初次体验

    GET请求 微信小程序用GET传送数据 微信小程序通过 wx request发送ajax请求 wx request url app globalData pubSiteUrl 43 39 user information get infor
  • vue总结系列 ------ 组件之间的传值

    原因 半年前开始学Vue学到了今天 xff0c 也没有机会好好整理一下自己的知识点 xff0c 因为上公司的项目不是依赖于Vue xff0c 还是在用JQ 和文件之间来传递代码 xff0c 所以其实在对vue的学习成面上来讲对我的帮助并不大
  • vue总结系列 --- 插槽slot

    前因 这个是我这个系列的第二篇 这一篇文章我也修改过三次 xff08 2019 9 10 xff09 我是想以vue官方文档为基础 xff0c 来进行理解 xff0c 有人说有官方文档 xff0c 还要写自己的文章干嘛 xff0c 我的用意
  • vue总结系列 --- 生命周期

    前言 在总结其他的时候发现还是应该先复习vue的生命周期 xff0c 所以就先把生命周期先复习完了 经过一系列的视频 xff0c 文档我把我的总结写一下生命周期分为3个阶段 xff1a 创建 xff0c 更新 xff0c 和销毁 我们看图说
  • vue总结系列 ---- 响应式原理

    检测变化 vue是数据驱动的视图框架DOM是通过数据映射的 xff0c 只有数据改变 xff0c DOM才改变 那么数据是怎么来的呢 xff1f 1 来自父元素的属性 xff08 prop xff09 2 来自组件的自身状态 xff08 d
  • Object.defineProperty()的学习了解

    背景 最近在总结vue系列的时候是看到响应原理的时候 看到一个新的知识点也就是我们的标题Object defineProperty 的时候 xff0c 好了话不多说 xff0c 我们来看看这个是怎么使用的 开始 strong Object
  • vue总结系列 ----- 单向数据流

    可能很多人都以为vue的双向绑定其实是错误的 xff0c vue真正的是单向数据流 xff0c vue的双向绑定只不过是语法糖 我的理解是 xff1a model层 xff1a data对象中的数据 xff0c 或后台传过来的数据 view
  • vue总结系列 ---- 在组件上的v-model单向数据流

    背景 目前是在复习vue原理的过程中 xff0c 前端负责人知道我最近在复习vue xff0c 跟我说要我看组件上的v model 我一听本来是不想放在心上的 xff0c 刚好那天晚上没什么事干想看一下 xff0c 毕竟负责人 xff0c
  • ES6 函数扩展

    参数默认值 也就是说现在ES6对函数中的参数添加了默认值 我们在ES5种的处理 function Fn a b b 61 b 34 nodeing 34 return a 43 b console log Fn 34 hello 34 这样
  • ES6 对象扩展

    对象简写 对象中又分了属性和方法的简写 在es5中 xff0c 有这样一种写法 var name 61 34 xiaoqiang 34 var age 61 12 var obj 61 name name age age 在es6中 xff
  • Bootstrap基础学习笔记

    网格系统 row定义一行 col均分列数 xff0c 最多一行12列 每列左右间隙各15px col 1到12 定义在所有屏幕下的列宽 col sm md lg xl 1到12 定义在指定屏幕下该列占据的列宽 xff0c sm 屏幕 gt
  • ES6 Symbol用法

    Symbol用法 什么是Symbol Symbol是es6中一种新增加的数据类型 xff0c 它表示独一无二的值 es5中我们把数据类型分为基本数据类型 xff08 字符串 数字 布尔 undefined null xff09 和引用数据类
  • img标签中的src在绝对引用的时候的问题

    昨天晚上我一个朋友目前在培训 xff0c 他在群里问了下img标签如何绝对路径引用 xff0c 我当时就笑了这个就是培训机构的老师 xff0c 就大概看了一下就告诉我朋友那里错了 xff0c 但是却出来不 xff0c 我就想自己写一个dem
  • 在vue-cli中使用vue-router的学习笔记

    以前不会vue cli的时候学过router xff0c 当时的写法和在vue cli中的写法还是有一些不一样的 xff0c 但是我以后应该还是会用vue的单文件写小程序啊什么的所以我就吧我学习的过程全部记录下来 router创建 那么问题
  • js中bind()使用详情

    前言 最近在在搞React的时候有用到bind 的时候 xff0c 因为他的用法其实我还一直不是特别的清楚 xff0c 所以今天我把bind 他的用法和我遇到的结合起来这样来写一个博客 xff0c 这样应该可以加深自己的印象同时可以来跟好的
  • var let const 详细区别

    用了ES6已经有一段事件了 xff0c 也看了很多文档 xff0c 以前觉得不用写一个文档总结 xff0c 但是经过一段时间的接触以后 xff0c 认为自己还是有必要去吧他们的区别详详细细的总结一下 块级作用域 白话一点就是在 中就是一个块
  • Git 速查表

    配置 git config global user name 34 lt 姓名 gt 34 设置提交者姓名 git config global user email 34 lt 邮箱 gt 34 设置提交者邮箱 这个有什么用呢 xff1f

随机推荐

  • async比Promise好在什么地方

    什么是Promise xff1f Promise是ES6中的异步编程解决方案 xff0c 在代码中表现为一个对象 xff0c 可以通过构造函数Promise来实例化 xff0c 有了Promise对象 xff0c 可以将异步操作以同步的流程
  • css面试题----css测试9

    每个星期6都会去去看张鑫旭直播写一些小demo然后再去吧写每天学习到的东西 xff0c 心得记下来 xff0c 并且会长期去完成这个任务 IT这个东西真的是要去强迫自己学学习一些好的东西 xff0c 多去优化代码 xff0c 而不是去停滞不
  • css面试题----DOM基础测试34

    这个其实是上上个星期张鑫旭直播的内容 xff0c 我吧我不会的内容总结一下 xff0c 从而来分享给大家 题目 第一问 document querySelectorAll 39 a 39 第二问 1 有bug当有这个href属性但没属性值
  • fon in 和 for of 的区别

    for 循环 其实他一般情况下是根据数组 xff0c 类数组的length的属性值去循环 for in 一般的作用是枚举把key枚举出来 xff0c 但是当我们枚举数组 xff0c 或者字符串的时候会把原型上的方法枚举出来 Object p
  • 词云图wordcloud学习笔记

    词云图 也叫文字云 是对文本中出现频率较高的 关键词 予以视觉化的展现 词云图过滤掉大量的低频低质的文本信息 使得浏览者只要一眼扫过文本就可领略文本的主旨 github https github com amueller word clou
  • ++a-a++解析

    有题目当a为1的时候 43 43 a a 43 43 为多少答案为0 我们再输出a这个时候a等于3 为什么呢 xff1f 运算顺序 前置递增 减 大于 数字运算和后置递增 减 大于 比较 布 大于 逻辑 或 且 大于 赋值 好当我们把运算顺
  • sync修饰符的使用

    为什么使用sync 再vue中官网的介绍 xff1a 我们可能需要对一个 prop 进行 双向绑定 不幸的是 xff0c 真正的双向绑定会带来维护上的问题 xff0c 因为子组件可以修改父组件 xff0c 且在父组件和子组件都没有明显的改动
  • vue中 methods computed watch filters区别

    在vue中事件 xff0c 计算属性 xff0c 帧听器 xff0c 过滤器的区别 其实共同点 xff1a 修改数据 事件methods和计算属性computed 作用 xff1a 对数据进行逻辑运算 区别 计算属性是基于它们的响应式依赖进
  • 前端面试题----js基础测试35

    得分 这个题目总共8分的我只有3分 xff0c 但是说实话我写这个题目的时候信心爆棚 xff0c 我觉得我自己应该是写出来的的 xff0c 但是可惜 解析 第一题 正解 xff1a 1 encodeURI 函数假设参数是完整的 URIs x
  • 前端面试题----DOM测试35

    得分 这个题目8分我5分 重新复习 HTML lt form id 61 34 loginForm 34 action 61 34 account login 34 method 61 34 POST 34 gt lt p gt 账号 xf
  • 前端小测---css基础测试10

    得分 总共8分得了6分有一个背景样式没处理好 重点 无js使用details和summary组合动画处理 xff0c 使用max height 0来过渡 HTML lt div class 61 34 container 34 gt lt
  • 前端小测试---- 图片上传

    得分 8分我自己得了4分 第一问 xhr onprogress和xhr upload onprogress的区别 xff1a 这两个都能显示进度百分比 xff0c 但是 xff0c 前者显示的是服务器返回的数据 xff0c 后者是发送给服务
  • js 部分代码注释规范

    普通注释 单行 单行注释 文字和 有一个空格 多行 多行注释 1 总是再多行注释的结束符前留一个空格 使星号对齐 2 不要把注释写再多行注释的开始符 xff0c 和结束符所在行 文档注释 Core模块提供最基础 最核心的接口 文档说明 64
  • js代码优化

    原文 xff1a https dmitripavlutin com unlearn javascript bad coding habits 一 xff1a 不要使用隐式类型转换 大多数运算符 43 61 61 不包括 61 61 61 再
  • Python爬虫基础(一) —— 基本爬虫库的使用

    文章目录 使用urllib库使用request模块发送请求1 使用urlopen urlopen data参数urlopen timeout参数 2 Request 3 高级用法验证代理Cookies 使用error模块处理异常1 URLE
  • Django使用websocket实现实时消息推送和聊天

    websocket简介 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议 WebSocket 使得客户端和服务器之间的数据交换变得更加简单 允许服务端主动向客户端推送数据 在 WebSocket
  • word 使用域对公式进行编号

    需要的快捷键 xff1a alt 43 F9 切换为域代码编辑模式 ctrl 43 A 选中所有再点F9进行域更新 在公式最后面加 1 再回车 xff0c 生成靠右的编号 点中1 的右侧 xff0c 插入 gt 文档部件 gt 域 gt 如
  • 【Linux】(一)深度学习环境多用户共用,配置共用cuda anaconda pycharm,vnc4server创建多用户虚拟xfce桌面

    深度学习环境共用配置 系列文章 一 写在前面问题方法简介 首次配置说明1 新建用户2 安装cuda3 安装anaconda3及pycharm 1 上传安装文件 2 安装anaconda3 3 安装pycharm 4 安装VNC服务所需资源5
  • 【Java】购买腾讯云服务器,并部署Spring boot项目,再到部署自己的个人博客,域名备案,安全连接配置

    云服务器部署 一 购买腾讯云服务器二 简单配置2 1 进入控制台2 2 配置防火墙2 3 配置访问密码 三 远程ssh登录连接服务器四 云服务器安装软件4 1 安装JDK4 2 安装MySql4 2 安装Redis 五 Spring boo
  • 【Linux】腾讯云服务器,使用FRP内网穿透,端口映射,远程访问内网主机、代理内网

    FRP内网穿透 一 需求分析1 1 情况1 2 需求1 3 解决方案 二 云服务器开放端口访问2 1 进入控制台2 2 配置防火墙 三 安装FPR3 1 限定3 2 云服务器 服务端 安装FPR3 3 局域网内机器 客户端 安装FPR 四