• frp_v0.37.1内网穿透,内网服务公网用不求人


    前言:

    公司内网无法访问,出差又需要用到公司内网进行办公,苦恼了好一阵。这时候想到了内网穿透,这就不得不提到几年前被安利的frp,一看GitHub竟然已经5年了,网上估计大把教程了。

    那么什么是frp呢。

    frp 是一个专注于内网穿透的高性能的反向代{过}{滤}理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

    中文文档请看:https://github.com/fatedier/frp/blob/dev/README_zh.md

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

    搭建

    首先我们要准备 公网IP服务器一台(必要),其他机器若干台(我管你多少台),虚拟机也可以。

    接着下载与机器cpu架构对应的frp

    5w1DHS.png

    接着我们在服务器的随便一个地方解压,这里我使用的华为云的机器所以下载的是frp_0.37.1_linux_arm64.tar.gz

    服务端配置及启动

    解压之后进目录修改服务端配置文件 frps.ini


    # 必要配置,初始化服务端连接端口 [common] bind_port = 6000 bind_udp_port = 6001 # 认证模式和秘钥 authentication_method = token authenticate_heartbeats = true authenticate_new_work_conns = false token = CPu2PS5teIdM #是否启用tcp复用,可以省略 tcp_mux = true # 允许开启的端口,可以限制在某个范围利于云平台开端口或其他管理 allow_ports = 20000-40000 # 日志,可以省略,省略之后直接打印在终端中。 log_file = ./frps.log log_level = info log_max_days = 3 disable_log_color = true

    配置完成之后启动


    ./frps -c frps.ini #frps服务端程序 # -c 加载配置文件

    客户端连接和启动

    frp releases包是包含服务端和客户端的,接着我手上是两台windows机器,所以按照x64 下载frp_0.37.1_windows_amd64.zip

    解压之后,我们开始编辑客户端配置

    编辑frpc.ini 文件


    # 连接服务器,核心部分。每个客户端都需要配置 [common] server_addr = www.wspby.top server_port = 6000 token = CPu2PS5teIdM   #这里一定要和服务端一致,否则报错。 # 日志,可以省略,省略之后直接打印在终端中。 log_file = ./frpc.log log_level = info log_max_days = 3 #是否启用tcp复用,可以省略 tcp_mux = true

    启动命令


    frpc.exe -c frpc.ini

    开始创建连接,这里科普下可以使用的连接类型type(来自https://www.zhuguodong.com/?id=560

    代{过}{滤}理类型

    tcp和udp:就是将普通的tcp端口或者udp端口映射到公网上,相当于你的设备直接向公网暴露了一个tcp端口,任何设备都可以尝试连接这个端口。这里就会有很大的安全风险。


    [pc_mstsc] type = tcp local_ip = 127.0.0.1 #这里疑似修改为其他地址并进行访问,这里不做测试 local_port = 3389 remote_port = 33999

    5ws9IA.png

    之后在防火墙开下端口就可以提供给任何人访问了。

    sftp:出于安全和防止攻击的考虑,frp提供了使用密钥验证的tcp,这就是frp的Secret TCP(stcp)模式。

    xtcp:stcp是使用了服务器进行中转,如果出现大流量的话会出现卡顿,所以就有了xtcp模式。在xtcp模式下,两个客户端是直接相连略过了服务端进行通信,这样就不会受服务器带宽限制。

    被连接端配置如下:


    [pc_stcp_mstsc]      # stcp type = stcp sk = 12345678 local_ip = 127.0.0.1 local_port = 3389 #基本一致 [pc_xtcp_mstsc]    # xtcp type = xtcp sk = 12345678 local_ip = 127.0.0.1 local_port = 3389

    连接端配置如下:


    [mstsc_vister_stcp] type = stcp role = visitor      #角色是访问者 sk = 12345678 bind_addr = 127.0.0.1   #可以随便写 bind_port = 33333 server_name = pc_stcp_mstsc  #这里需要对应中括号内的服务名! [mstsc_vister_xtcp] type = xtcp role = visitor      #角色是访问者 sk = 12345678       #需要与被连接端一致 bind_addr = 127.0.0.1    #可以随便写 bind_port = 44444 server_name = pc_xtcp_mstsc #这里需要对应中括号内的服务名!

    bind_addr可以随便写,在连接时地址为: %bind_addr%:%bind_port%

    在正确配置和启动之后开始测试

    5wspad.png

    测试成功。

    参考链接:

    https://www.zhuguodong.com/?id=560
    https://zhuanlan.zhihu.com/p/341551501
    https://sspai.com/post/52523
    还有其他忘了。。。

    其他问题以后补充

  • 相关阅读:
    Visual C++ 打印编程技术-内存设备环境
    MySQL存储引擎
    记录阿里云服务器docker安装wordpress
    记录dockerfile参数
    记录一次 在公网使用FRP内网穿透开源软件,通过SSH连接内网服务器
    记录一次docker安装zabbix5.0
    记录一次zabbix邮件告警搭建过程和问题处理
    记录一次yum-config-manager命令的使用
    记录一次解决zabbix5.0图形化界面文字乱码的问题
    记录一次查看本地端口10050被哪个IP地址访问
  • 原文地址:https://www.cnblogs.com/LangZiXiYan/p/15718648.html
Copyright © 2020-2023  润新知