欢迎光临
我们一直在努力

【Linux】手动部署并测试内网穿透

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux

目录

  • 一:🔥 原理
  • 二:🔥 准备工作
  • 三:🔥 测试内网穿透
  • 四:🔥 共勉

一:🔥 原理

🔬 原理就是让你需要访问的内网可以被其他内网访问到, 其实就是让内网经过一个公网服务器的转发,使得能够被访问。

这里我们需要用到 frp:

FRP(Fast Reverse Proxy) 是一款开源的反向代理工具,主要用于实现内网穿透。它通过在公网服务器和内网设备之间建立一个代理通道,使得处于内网中的设备能够被外部网络访问,同时也允许内网设备主动与外部网络通信。

实现步骤

  • 部署公网服务器端

    • 在公网服务器上下载并安装 FRP 文件。
    • 配置 FRP 的服务器端配置文件(frps.toml),设置监听端口、认证信息等参数。
    • 启动 FRP 服务器端程序,使其开始监听来自内网设备的连接请求。
  • 配置内网客户端

    • 在需要被访问的内网设备上下载并安装 FRP 文件。
    • 配置 FRP 的客户端配置文件(frpc.toml),指定内网服务的 IP 地址和端口,并将其映射到公网服务器的对应端口。
    • 启动 FRP 客户端程序,使其连接到公网服务器,并建立隧道。
  • 数据转发与通信

    • 当外部用户访问公网服务器的指定端口时,FRP 服务器会将请求转发到内网设备的对应 IP 和端口。
    • 同样,内网设备发送的数据也会通过 FRP 服务器转发到外部网络,从而实现双向通信。
  • 在这里插入图片描述

    二:🔥 准备工作

    frp 下载: https://github.com/fatedier/frp/releases/tag/v0.58.1

    在这里插入图片描述

    💻 安装自己机器对应的版本即可

    在这里插入图片描述

    下载好之后已经是编译好的可执行程序了

    在这里插入图片描述

    我的话使用的是 一台ubuntu虚拟机 和 ubuntu云服务器 + 一台windows虚拟机 做的实验

    此时配置服务端的 frps.toml

    vim frps.toml
    # 设置如下
    bindPort = 8888

    我们需要使用 -c 指定配置文件

    ./frps –c ./frps.toml

    在这里插入图片描述

    ⚙️ 配置 ubuntu客户端的 frpc.toml

    在这里插入图片描述 🔬 这里我们配置了 ssh服务 和 http服务,也是我们本篇博客要做的穿透实验

    serverAddr = "你的服务器地址"
    serverPort = 8888

    [[proxies]]
    name = "ssh-service"
    type = "tcp"
    localIP = "127.0.0.1"
    localPort = 22
    remotePort = 8081

    [[proxies]]
    name = "http-service"
    type = "tcp"
    localIP = "127.0.0.1"
    localPort = 80
    remotePort = 8082

    除了云服务器会做一次转发到例如绑定的 8081端口 实际上在你的本机上还会有一次转发,转发给22端口(ssh),由他来提供服务

    三:🔥 测试内网穿透

    我们做两个测试

    • ssh 远程登录

    启动服务器和客户端 在这里插入图片描述 在这里插入图片描述

    此时在我们的windows上面 xshell 新建一个会话 端口对应的就是服务器绑定的8081端口 在这里插入图片描述 此时我们就从windows上顺利的远程访问到我们的虚拟机ubuntu上了 在这里插入图片描述 内网穿透成功!!!

    • nginx 远程访问

    sudo yum install nginx # centos 安装
    sudo apt install nginx # ubuntu 安装

    #启动
    $ nginx
    #暂停
    # nginx –s stop

    nginx 首页默认 apt 安装之后, 首页是: /var/www/html/XXX

    在这里插入图片描述

    此时我们将编写好的html文件写入

    此时使用浏览器访问我们云服务器对应的 8082端口 就能够直接访问到我ubuntu虚拟机上部署的 nginx 服务了!!! 在这里插入图片描述 内网穿透再次成功!!!

    服务器和客户端都可以这样在后台启动

    nohup ./frpc –c ./frpc.toml &> /dev/null &
    nohup ./frps –c ./frps.toml &> /dev/null &

    • &> /dev/null: 这是重定向操作, 用于将命令的标准输出(stdout) 和标准错误(stderr) 都重定向到 /dev/null。 /dev/null 是一个特殊的设备文件, 向它写入的内容都会被丢弃, 读取它则会立即返回文件结束。 因此, 这个操作的作用是忽略命令的所有输出信息。

    四:🔥 共勉

    😋 以上就是我对 【Linux】手动部署并测试内网穿透 的理解, 觉得这篇博客对你有帮助的,可以点赞收藏关注支持一波~ 😉 在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 【Linux】手动部署并测试内网穿透
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址