zoukankan      html  css  js  c++  java
  • 使用 frp 搭建内网服务器(内网穿透)

    frp  原理:

    前提:需要有公网的服务器(例如阿里云)

    frp地址:https://github.com/fatedier/frp

    去到 release 页面下载对应的包就可以了。

    使用说明上面的页面已经说了,

    下面说比较关键的点,以及一些额外配置:

    1、添加端口监听,比如 ssh 的端口监听(客户端配置:frpc.ini)

    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    

      

    上面的 [ssh] 括号里面的 ssh 只是一个命名,命名的意思是,你可以随便写什么(不要写什么特殊字符就好,因为不一定支持)。

    type:类型,有 tcp、udp 等,最常用的是 tcp

    local_ip:客户端(内网服务器)监听的 ip

    local_port:客户端(内网服务器)监听的端口

    remote_port:公网服务器的端口

    配置了上面几个的效果是:

    我们访问公网服务器的 remote_port 端口的时候,对应的网络包会被转发到 内网服务器的 local_port 端口。

    比如,上面的配置:我们想要 ssh 连接内网的时候,需要在使用 ssh 命令的时候指定连接公网服务器的 6000 端口,

    ssh -oPort=6000 test@xxx.xxx.xxx.xxx

    我们想要新增端口监听也很简单,一般来说,按上面的格式复制粘贴到 frpc.ini 后面就可以了,好比如,内网有个 mysql 服务(默认端口 3306),我们想要通过公网的 3307 端口访问内网的 mysql,我们可以添加如下配置:

    [mysql]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 3306
    remote_port = 3307
    

      

    2、github 上面的文档没有给出常驻进程的方法,我们可以使用 supervisor 来实现

    supervisor 的安装就不说了,对应的配置文件如下:

    [program:frp]
    process_name=(program_name)s_%(process_num)02d
    command=/home/ruby/frp_0.20.0_linux_amd64/frpc -c /home/ruby/frp_0.20.0_linux_amd64/frpc.ini
    directory=/home/ruby/frp_0.20.0_linux_amd64
    autostart=true
    autorestart=true
    user=ruby
    numprocs=1
    redirect_stderr=true
    stdout_logfile=/var/log/frp.log

    当然,上面的相关路径需要根据实际情况修改

    使 supervisor 配置生效:

    sudo supervisorctl reread
    sudo supervisorctl reload
    sudo supervisorctl start frp:*
    

      

    这里有个需要注意的坑是,如果 supervisor 开启了 web 管理界面,谨慎点击 restart 来重启 frp 相关进程,因为不一定有权限,没有权限的情况下,可能会导致进程 stop 了,但是并没有 start,因为 supervisorctl 需要权限来运行 frp 的进程。这样一般情况下,是没有什么问题的,但是如果某一天,你改了一下 frp 配置,想在 supervisor web 管理界面重启 frp 进程,突然就发现再也连不上了,而内网服务器又不在旁边,那就只能等到可以真机操作的时候再重启了。

  • 相关阅读:
    JS-BOM操作-Location、history、常用弹窗、屏幕属性
    JS的基础DOM操作-选取父子级元素、动态生成元素、修改元素、Classlist
    setup
    循环请求接口,统一处理
    多个url文件下载
    扁平数据结构转Tree
    es6 解构赋值
    watch与computed与props
    v-model与.sync组件通信
    v-on="$listeners"和v-bind="$attrs"
  • 原文地址:https://www.cnblogs.com/eleven24/p/9170563.html
Copyright © 2011-2022 走看看