起因
家里有一台旧二手笔记本,想着应该给他动用起来,毕竟也卖不了两个钱,不如搭建些环境,做一做开发,刚好有一个域名是之前用来解析到自己github博客的,还有一台国外服务器做一些代理服务,这不就刚好可以内网穿透一下,完美实现三者价值,于是就有了这篇文章。
必备
- 一台闲置电脑
- 一个域名
- 一台云服务器 (如果不是国外的需要有备案)
开始
这里云服务器和电脑都以系统为CentOS 7为例
安装frp
云服务器
frp下载地址 这里只介绍linux的使用,选择最新的以linux_amd64.tar.gz结尾的包
也可以在服务器上使用wget下载
wget https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz
解压缩
tar tar -zxvf frp_0.59.0_linux_amd64.tar.gz
修改文件夹名字
mv frp_0.59.0_linux_amd64 frp
进入文件夹修改frp配置
cd frp
vim frps.toml
frps.toml
bindPort = 7000 #连接端口
vhostHTTPPort = 5080 #对外访问端口
auth.token = "password" #客户端连接密码,自定义
创建 frps.service 文件
vim /etc/systemd/system/frps.service
frps.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml
[Install]
WantedBy = multi-user.target
frps开机启动,启动frps
systemctl enable frps
systemctl start frps
查看frps是否启动成功
systemctl status frps
状态为running则代表启动成功
闲置电脑
电脑也下载并解压缩frp,修改frpc.toml
cd frp
vim frpc.toml
frpc.toml
serverAddr = "10.1.1.1" #服务器地址
serverPort = 7000 #连接端口,对应frps.toml的bindPort
auth.token = "password" #连接密码,对应frps.toml的auth.token
[[proxies]]
name = "alist" #服务名称
type = "http" #服务类型
localIP = "127.0.0.1" #服务地址
localPort = 5244 #服务端口
customDomains = ["blog.demohiiiii.top"] #服务域名地址
里面配置的是我博客的地址,有多个服务就写多个proxies,更多配置请参考文档
创建 frpc.service 文件
vim /etc/systemd/system/frpc.service
frpc.service
[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frpc -c /path/to/frpc.toml
[Install]
WantedBy = multi-user.target
frpc开机启动,启动frpc
systemctl enable frpc
systemctl start frpc
查看frpc是否启动成功
systemctl status frpc
状态为running则代表启动成功
获取Cloudflare API token
首先需要把域名托管到Cloudflare,具体操作可以参考我之前写的文章使用Cloud Flare搭建免费的docker仓库加速服务 进入API token管理页,选择创建令牌
选择编辑区域DNS的模板
添加区域读取权限,区域资源包括所有区域,点击继续,创建令牌
复制token
安装Caddy
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy
下载cloudflare dns插件
Platform选择Linux amd64,然后搜索框输入cloudflare
选中第一个插件,点击Download
将下载的文件传入服务器,替换Caddy
mv caddy_linux_amd64_custom /usr/bin/caddy
修改Caddyfile
vim /etc/caddy/Caddyfile
Caddyfile
将*.demo.com替换成你的域名
在yourtoken处输入刚刚从cloudflare获取的API token
(logging) {
log {
output file /var/log/caddy.log
format json
}
}
*.demo.com {
encode gzip
reverse_proxy localhost:5080
import logging
tls {
dns cloudflare yourtoken
}
}
Caddy开机启动,启动Caddy
systemctl enable caddy
systemctl start caddy
查看Caddy是否启动成功
systemctl status caddy
状态为running则代表启动成功
更多配置请参考Caddy文档
最后
访问之前frpc.toml里设置的域名,可以看到https访问成功
如果无法访问
- 请检查配置是否正确
- 云服务器的端口是否开放
- 域名是否解析正常