15 四月, 2024

thumbnail

内网穿透搭建与解析-FRP穿透-Docker神器


  1. frp是啥?
    要是你都不知道,那你点一下浏览器左上角的左边箭头,拜拜您呢。
    哈哈。开玩笑的。

...
....
.....
.......
..........
......小白科普-很重要:

1:我只是做一个``知识科普-不劝不黑**:穿透这个最简单的办法就是:直接找圈主**@神雕**直接买穿透一年好像是20-40块把.分服务,买个.专业版海纳斯(HI-NAS)也就一百多基本等于永久的.-性价比高的不要不要的`

2:要是你自己买一个云服务器,例如腾讯云,没有专业技能和了解以及一定的动手能力你都玩不明白,而且这玩意一年大几百,若是只是作为这个穿透那就不划算了.最起码搭配上nginx反向代理,和跑一些服务才划算,不过这个国内的服务器把,哎咳咳,懂得都懂。

3:你有想法自己搭建试试看,或者只是了解一下原理也挺不错,这将是你迈出的一大步。
...
....
....
....好了接下来上淫才.不对嘴嫖了-是硬菜。。。
..
....
.......
........
..........
...........
..............

  • 具体可以看这里:https://gofrp.org/docs/concepts/
    -
  • 简单来说,大家如果不求甚解,只需要知道下面这些就行:
    -
  • frp是fast reverse proxy的缩写,是一个专注于内网穿透的高性能的反向代理应用
  • frp项目的作者是中国人!
  • frp支持 TCP、UDP、HTTP、HTTPS 等多种协议,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
  • frp是go语言写的,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。
  • frp有服务端(frps,s指service,通常搭建在有公网IP的设备上)和客户端(frpc,c指client,通常搭建在内网设备上)
基本原理:frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。    内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。    用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。

  1. 为什么要用 frp ?
    因为利用它,我们可以把原来不能在互联网上访问的内网服务,以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

这样,你就可以在任何有网的情况下访问到你家里的设备上搭建的服务了!(相当于你自己在家搭建了一台服务器)

  1. 相关地址
    GitHub地址:https://github.com/fatedier/frp(60.1k star)

官方文档地址:https://gofrp.org/docs/concepts/

  1. 效果展示
    见视频。

在任何有网的地方通过域名访问内网服务:

  1. 搭建环境
    服务器:腾讯香港轻量应用服务器一台本期搭建用的是腾讯轻量云服务器,(最好是选非大陆(香港)的服务器)
    系统:Debian 10或者11(DD脚本 非必需DD用原来的系统也OK,教程都是用Debian或者Ubuntu搭建~)
    安装好Docker、Docker-compose
    【有兴趣留言我下期再科普】域名一枚,并做好解析到服务器上(域名购买、域名解析 )
    【有兴趣留言我下期再科普】安装好Nginx Proxy Manager(反向代理的一个玩意可以实现端口隐藏,全域名访问)

  2. 搭建方式(服务端 frps)
    安装系统(腾讯云轻量应用服务器)

腾讯云轻量服务器最大的特点就是"轻量",相比CVM,更适合小白上手,这边我们之间选择Docker基础镜像,就可以省去后面安装Docker的步骤(如果你非要用国内的服务器,这边装的Docker镜像还会帮你配置好国内镜像源,让你加速访问docker镜像资源)。

登陆(腾讯云轻量应用服务器)

7.1 服务器前期配置
服务器初始设置,参考:

新买了一台服务器"必须"要做的6件小事

保护好你的服务器!

这边由于我们用的是腾讯云轻量应用服务器,系统默认就帮我们创建了名字是lighthouse的用户,系统后台也有防火墙(默认就开了几个常用的端口)

对小白用户来说,可以不用再去管繁琐的服务器安全的配置,大大降低了服务器防护的门槛。

  sudo -i # 切换到root用户    apt update -y  # 升级packages    apt install wget curl sudo vim git -y  # Debian系统比较干净,安装常用的软件

注意:VPS的内存如果过小,建议设置一下SWAP,一般为内存的1-1.5倍即可,可以让系统运行更流畅

设置SWAP可以用脚本:

wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

选择18,然后输入你想要扩容的数值即可。

7.2 安装Docker(使用腾讯云轻量应用服务器可跳过这一部分)

7.2.1 非大陆服务器Docker安装

  wget -qO- get.docker.com | bash    docker -v  #查看docker版本    systemctl enable docker  # 设置开机自动启动

7.2.2 非大陆服务器Docker-compose安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose    sudo chmod +x /usr/local/bin/docker-compose    docker-compose --version  #查看docker-compose版本

7.2.3 国内服务器安装docker

curl -sSL https://get.daocloud.io/docker | sh    docker -v  #查看docker版本    systemctl enable docker  # 设置开机自动启动

7.2.4 国内服务器安装docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose    chmod +x /usr/local/bin/docker-compose    docker-compose --version  #查看docker-compose版本

7.3 创建安装目录

创建一下安装的目录:

sudo -i    mkdir -p /root/data/docker_data/frps    cd /root/data/docker_data/frps

这边frp其实不需要用docker安装,直接到GitHub上下载你系统对应的软件包解压就可以使用,不过配置后台自动运行会麻烦一些,这边为了简单起见,直接用 编译好的docker镜像,采用docker的方式来安装frp的服务端和客户端,这样后台运行,重启啥的可能会更方便一些,配置也更简单一些。

源码安装可以参考GitHub:https://github.com/fatedier/frp

Docker方法安装:

  cd /root/data/docker_data/frps    touch frps.ini    vim docker-compose.yml

英文输入法下,按 i

  version: '3.3'  services:      frps:          restart: always          network_mode: host          volumes:              - './frps.ini:/etc/frp/frps.ini'          container_name: frps          image: snowdreamtech/frps

按一下 esc,然后:wq 保存退出,之后,

docker-compose up -d

Ok,这样我们就搭建好了frp的服务端了,不过,现在我们frps.ini里面啥也没有,需要我们来配置一下,这边贴一个配置文件给大家参考,满足基本使用。

                                                           ini    [common]    #frp 监听端口,与客户端绑定端口    bind_port= 5443  kcp_bind_port = 5443      #dashboard用户名    dashboard_user= gugu    #dashboard密码    dashboard_pwd= passwd    #dashboard端口,启动成功后可通过浏览器访问如http://ip:9527    dashboard_port= 9527    #设置客户端token,对应客户端有页需要配置一定要记住,如果客户端不填写你连不上服务端    token = 8ad3d1x429a2d
cd /root/data/docker_data/frps    vim frps.ini

然后粘贴上面的内容,之后在英文输入法下,按一下esc,然后:wq 保存退出。

最后,重启一下frps服务即可

`
docker-compose restart

`
好了,这边frp服务端我们就已经搞定了。(如果有更高级的需求,可以自行参考官方文档来添加内容。)

接下来如果你是腾讯云服务器,还需要去打开防火墙。

7.5 打开服务器防火墙并访问网页
后续会用到很多端口,一一打开有点麻烦 直接全部开启端口

腾讯云打开方法如下:

这边我们填8099 确定即可(如果你在dockercompose文件里换了8081,这边就需要填8081,以此类推)

这边我们是全开,就这样填:

因为IP+端口方式,记起来很麻烦,建议再搞搞一个域名,容易记,看起来也更正规一点。这样可以做https,会让网页更安全。

而且xyz后缀的域名一年就10块钱左右,可以年抛。

如果想要长期使用,还是建议买com后缀的域名,更加正规一些.

域名购买这玩意很简单,不多说了,实在不懂百度把。-或着问问有空我看到回回复。

我们接着往下看!

**8. 搭建方式(客户端 frpc)

其实核心是一样的,只不过修改一下配置文件。

这边贴一个docker-compose.yml文件和frpc.ini的文件

                                         YAML    version: '3.3'  services:      frpc:          restart: always          network_mode: host          volumes:              - './frpc.ini:/etc/frp/frpc.ini'          container_name: frpc          image: snowdreamtech/frpc
                                                    INI    # frpc.ini  [common]  server_addr = 43.132.202.152  server_port = 5443  token = 8ad3d1x429a2d    [ssh]  type = tcp  local_ip = 127.0.0.1  local_port = 222  # 这个自定义,之后再ssh连接的时候要用  remote_port = 6000     [qb]  type = tcp  local_ip = 127.0.0.1  local_port = 8092  remote_port = 6001    [jellyfin]  type = tcp  local_ip = 127.0.0.1  local_port = 32771  remote_port = 6002    [NAS]  type = tcp  local_ip = 127.0.0.1  local_port = 5000  remote_port = 6003    [nextcloud]  type = tcp  local_ip = 127.0.0.1  local_port = 4433  remote_port = 6004    [RDP]  type = tcp  local_ip = 127.0.0.1  local_port = 3389  remote_port = 7001      [vnc]  type = tcp  local_ip = 127.0.0.1  local_port = 5900  remote_port = 5900  use_encryption = true  use_compression = true

得了,怪累的,就说到这里把,小白可以大概了解一下运行原理,。
有其他想了解的可以给我留言。

                                   都看到这里了不点个`赞`你就过分了




欢迎投稿(技术分享、原创教程)至本站机器人: blog#mige.eu.org
 

Subscribe by Email

Follow Updates Articles from This Blog via Email

No Comments

About

搜索此博客