参阅文档
视频:B站
准备工作
- 一台轻量级云服务器,可所以腾讯云、阿里云、华为云等云厂商的,主要是能够获得一个公网IP;
- 一个内网服务器,比方旧电脑或许旧手机改装的;
- 配合 frp 来完结内网穿透
云服务器
咱们以阿里云服务器为例,购买一个轻量级的云服务器 ECS,然后在上面装置 docker,装置教程后续会增加一个链接到这儿。
装置好 docker 今后呢,咱们要在云服务器上装置 frp 的服务端。过程如下:
- 登录云服务器的 Workbench
- 创立寄存目录:
sudo mkdir /etc/frp
- 创立 frps.ini 配置文件:
sudo vim /etc/frp/frps.ini
- 然后履行
docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
frps.ini
内容如下:
[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = admin
dashboard_pwd = spoto1234
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 7080
vhost_https_port = 7081
# 身份验证
token = 12345678
这儿说一下这些配置项的效果:
- bind_port:frp 服务器的监听端口,后续设置 frp 客户端(内网中转服务器),需求公网IP 端口拜访 frp 服务;
- dashboard_port:面板端口,是 frp 办理后台的一个端口,能够通过它来拜访 frp 的办理页面;
- dashboard_user:登录 frp 的账号;
- dashboard_pwd:登录 frp 的暗码:
- vhost_http_port:在有域名绑定的情况下,拜访一些页面的端口
- vhost_https_port:同上
- token:身份验证,如果没有这个验证的话,所有的 frp 客户端多能够连接你的服务端
记录:
- 服务端 frps 拜访地址:你的IP:7500/static/#/
内网服务器
AidLux 对外开放的 ssh 端口是 9022.
这儿运用的是旧的安卓手机上装置的 AidLux 软件,里边的 Linux 是 debian,然后 apt 的源是华为云的。不过在我将要在这个上面装置 docker 的时分,发现没有 yum,所以这儿我又得先装置一下 yum。
然后不出意外的话,意外呈现了,华为云的源缺少了一个 python 的啥东西,所以我需求先给 apt 换一个阿里云的源。
PS:个人认为阿里云的源资源是比较齐的
那怎么换呢?参阅以下过程:
- 备份 apt 配置文件:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 修改 apt 配置文件:
vim /etc/apt/sources.list
- 替换里边的华为云地址为阿里云地址:实际上便是将域名上的
huaweicloud
替换为aliyun
即可 - 然后保存退出后,更新软件列表:
sudo apt-get update
- 最终更新软件包:
sudo apt-get upgrade
完结上述操作后,再履行 sudo apt install yum
就能够成功装置 yum 了。
装置 docker
比较艰辛,最靠谱的仍是官网,参阅 debian 装置 docker ,现在装置成功今后,报错了:
root@localhost:/home# docker version
Client: Docker Engine - Community
Version: 23.0.1
API version: 1.42
Go version: go1.19.5
Git commit: a5ee5b1
Built: Thu Feb 9 19:46:28 2023
OS/Arch: linux/arm64
Context: default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
这是因为咱们没有发动 docker 的原因,在 debian
中要发动 docker,需求的指令是:service docker start
。
手动装置 frp
离大谱了,现在只有企业版的 aidlux 能够支撑装置 docker,精确的来说是让 docker 在手机上跑起来,个人版现在还不支撑,而在手机上跑 docker 也是一个百年难题,所以运用 docker 来装置 frp 客户端的操作只能停下来,另辟蹊径了。
ecs 的 ssh 限制只能是 22;
终究选择抛弃运用 docker 的方法,手动在服务端和客户端来配置 frp,最终一试,不可就算了。
-
在客户端咱们现已装置了 0.38.0 的 arm64 的 linux 版本
-
在
home
目录下新建一个frp
目录,然后进入到frp
目录 -
再拉取 frp 的装置包:
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_arm64.tar.gz
-
对装置包进行解压
tar xvf frp_0.38.0_linux_arm64.tar.gz
-
进入到解压出来的目录中去,设置_客户端指令_
frpc
环境变量-即将 frps 放到 path 目录下:cp frpc /usr/bin/
-
然后树立寄存配置文件的目录:
mkdir /etc/frp
-
再将配置文件复制到对应的目录:
cp frpc.ini /etc/frp
-
修改对应的配置文件:
vim /etc/frp/frpc.ini
-
最终一步把
frpc.service
的systemd
文件复制到/etc/systemd/system/
目录下,这样咱们就能够通过systemctl
来设置发动和敞开自发动了-
发动:
systemctl start frpc
-
重启:
systemctl restart frpc
-
开机自发动:
systemctl enable frps
-
中止:
systemctl stop frps
-
查看状况日志:
systemctl status frps
-
- 咱们的
frpc.ini
配置文件的内容会改变一下
[common] # server_addr为FRPS服务器IP地址 server_addr = 你的 ip 地址 # server_port为服务端监听端口,bind_port server_port = 7000 # 用户 user = admin # 身份验证 token = 你的自定义 token [ssh] type = tcp local_ip = 127.0.0.1 local_port = 9022 remote_port = 2289 [http] type=tcp local_ip = 127.0.0.1 local_port = 30818 remote_port = 2288 # [ssh] 为服务名称,下方此处设置为,拜访frp服务段的2288端口时,等同于通过中转服务器拜访127.0.0.1的22端口。 # type 为连接的类型,此处为tcp # local_ip 为中转客户端实际拜访的IP # local_port 为方针端口 # remote_port 为远程端口
- 咱们也能够暂时进行发动,在解压后的 frp 目录里履行
./frpc -c /etc/frp/frpc.ini
,会有对应的日志透出
-
-
而云服务器是 amd64 架构的,所以这儿需求装置 0.38.0-amd64 的 frp
-
在
home
目录下新建一个frp
目录,然后进入到frp
目录 -
再拉取 frp 的装置包:
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
-
对装置包进行解压
tar xvf frp_0.38.0_linux_amd64.tar.gz
-
进入到解压出来的目录中去,设置_服务端指令_
frps
环境变量-即将 frps 放到 path 目录下:cp frps /usr/bin/
-
然后树立寄存配置文件的目录:
mkdir /etc/frp
-
再将配置文件复制到对应的目录:
cp frps.ini /etc/frp
-
修改对应的配置文件:
vim /etc/frp/frps.ini
-
最终一步把
frps.service
的systemd
文件复制到/etc/systemd/system/
目录下,这样咱们就能够通过systemctl
来设置发动和敞开自发动了-
发动:
systemctl start frps
-
重启:
systemctl restart frps
-
开机自发动:
systemctl enable frps
-
中止:
systemctl stop frps
-
查看状况日志:
systemctl status frps
-
- 咱们的
frps.ini
配置文件的内容仍是不变的,在保存之后紧接着进行下一步 - 咱们也能够暂时进行发动,在解压后的 frp 目录里履行
./frps -c /etc/frps.ini
,会有对应的日志透出
-
这儿弥补一下阐明:
frps 这最终一个 s 代表 server 服务端,所以咱们在服务端履行的是 frps 指令;
而 frpc 里的 c 便是 client 客户端,所以要在客户端履行 frpc 指令
当服务端 frps 和客户端 frpc 都发动时,翻开咱们的 frp 控制台,上面有链接,就能够看到下面的状况了:
这个时分咱们去拜访公网的 2288 端口就能够连到咱们的内网服务器了,而运用 ssh 链接公网的 2289 也能够连到内网服务器的指令行(这儿如果提示输入暗码,记得输入内网服务器暗码)。