- 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 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。
- 为什么要用 frp ?
因为利用它,我们可以把原来不能在互联网上访问的内网服务,以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
这样,你就可以在任何有网的情况下访问到你家里的设备上搭建的服务了!(相当于你自己在家搭建了一台服务器)
- 相关地址
GitHub地址:https://github.com/fatedier/frp(60.1k star)
官方文档地址:https://gofrp.org/docs/concepts/
- 效果展示
见视频。
在任何有网的地方通过域名访问内网服务:
搭建环境
服务器:腾讯香港轻量应用服务器一台本期搭建用的是腾讯轻量云服务器,(最好是选非大陆(香港)的服务器)
系统:Debian 10或者11(DD脚本 非必需DD用原来的系统也OK,教程都是用Debian或者Ubuntu搭建~)
安装好Docker、Docker-compose
【有兴趣留言我下期再科普】域名一枚,并做好解析到服务器上(域名购买、域名解析 )
【有兴趣留言我下期再科普】安装好Nginx Proxy Manager(反向代理的一个玩意可以实现端口隐藏,全域名访问)
搭建方式(服务端 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
得了,怪累的,就说到这里把,小白可以大概了解一下运行原理,。
有其他想了解的可以给我留言。
都看到这里了不点个`赞`你就过分了