申明:本人也是初学者小白,所会不过是代码复制粘贴,部分内容我自己琢磨的可能有错误,欢迎指正批评
作者:
雨云用户:longandlong,B站用户:老北京吨吨桶,uid:49296020,优快云用户:我不是BT男制作,本文欢迎转载,转载注明出处
前言:
本来一直想要不要做最新版的教学(主要懒,做这玩意基本没收益,教程基本就是我的备忘录),直到前两天域名被江苏反诈阻断,各种换域名的方式都秒阻断,当时怀疑旧教程的frp使用的tcp协议,流量经过运营商时被截取查看(后来发现应该是误封,可能因为使用的境外服务器导致的,致电反诈中心,提供备案号后,过了两天解封了),决定出个最新版的frp使用https协议的教程。
注意:使用tcp协议和https协议均无法查看访问者的IP,介意的使用http协议!
1)购买服务器,随便哪家都行,个人不建议🐧,我不清楚他们家是有缓存用户数据,还是有能绕开用户账号密码的方式查看用户数据内容的方法,亦或者其他方式,总之我吃过一回🐧的亏,被封服务器且无法退款,其他服务器厂商如🐜、TY的云服务器目前不清楚是否有这套机制,吃过类似亏的大佬们可以评论区留下厂商名字缩写,当然,如果是如:V那啥N等明显违法行为,厂商直接能检测的出的原因就不要说了。
我个人目前用的厂商为:雨云,链接:雨云 - 新一代云服务提供商原因为:哪怕使用美国线路,到我所在的江苏地区依旧能达到1-2mb/s速率的,其他包括所谓大厂境外所谓的50M,100M宽带,到了江苏地区速率分分钟降的200KB/S都没有,当然也可能是线路问题,雨云显示的速度:
之所以选境外服务器,是因为不需要备案(包括中国香港地区,可惜我买的时候香港服务器售罄),当然有条件最好备案,毕竟境内服务器延迟和速率要好很多,而且无备案有可能在江苏地区被阻断访问!使用我的优惠码MzEyMDc1可以获得一张首月5折优惠券
要求独立IP,2g内存以上,宽带根据自己所需要的服务,自行选择,系统选择centos 7.0以上,我的测试服务器为centos 7.7,完成后购买域名
(2)服务器centos设置:
先解析购买的域名,教程一大堆,就不增加篇幅了,不会请留言,我再出教程
SSH以管理员账号:root 登录服务器
服务端:
root登录先进入根目录:
cd /
然后把frp文件下载到根目录:
wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
wget报未找到命令,需要下载wget:
yum -y install wget
出现Cannot find a valid baseurl for repo: base,则是需要切换阿里源,具体方法参考:群晖安装虚拟机Centos7.*出现Cannot find a valid baseurl for repo: base解决方案
如果出现长时间未下载,则代表GitHub被封锁,可以下载下方压缩文件拖动到根目录:/

进入根目录
cd /
解压文件
tar -zxvf frp_0.60.0_linux_amd64.tar.gz
改名文件夹方便操作
cp -r frp_0.60.0_linux_amd64 frp
服务端,我们只需要修改frps.toml文件即可,我用的是FinalShell连接的服务器,可以直接修改文件,用其他客户端需要敲命令(这部分自己查vim的指令)

可以右击下载,打开要修改的文件,默认是这样的:

将下列代码复制进去后,按图片说明一项项修改
代码:
bindPort = 47000
vhostHTTPSPort = 443
vhostHTTPPort = 80
auth.token = "123456789asdfg"
webServer.addr = "192.168.10.17"
webServer.port = 7001
webServer.user = "name"
webServer.password = "password"
完成后点击保存将frps.toml文件拖回FinalShell连接的服务器的frp文件夹中,进入改目录:
cd /frp
测试运行一下
./frps -c frps.toml
出现下图代码就是安装成功
输入CTRL+C,退出测试,接下来设置自启动,在np++上添加一个空白文件,复制进去以下代码:
[Unit]
Description=frps service
After=network.target
[Service]
Type=simple
ExecStart=/此处改为你实际的路径/frps -c /此处改为你实际的路径/frps.toml
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
保存,命名为:frps.service,将frps.service文件拖入服务器:/lib/systemd/system文件夹中,输入以下命令启动frp服务端:
systemctl start frps
输入以下命令设置frp服务端自启:
systemctl enable frps
输入以下命令,查看frp服务端运行状态:
systemctl status frps.service
至此服务端设置完毕!
客户端
我客户端使用的是centos做为frp的客户端,docker端也能使用,具体docker安装请自行搜索
因为我客户端和服务器端的系统都是centos,所以下载方法和解压方法都是一样的,可以参考服务端下载解压改名的操作,区别在于客户端需要修改的文件是:frpc.toml
打开要修改的文件,按图片修改:
代码:
serverAddr = "X.X.X.X"
serverPort = 47000
auth.token = "123456789asdfg"
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
以上是TCP协议,接下来是https协议访问
要使用https,我们先要有证书,最好是泛域名证书(这样我们只需要上传一个泛域名证书即可让所有二级域名都能使用https协议),没有就向各大厂商免费申请二级域名证书,腾讯云一年能申请免费50个3个月的二级域名证书(骂归骂,这点腾讯云还是挺大气,阿里好像只有20个?)
为了方便操作,我们直接在frp目录中新建一个文件夹存放证书,打开finalshell中frp目录,右击空白处新建文件夹
输入文件夹名称,如果是二级域名证书,建议输入该证书对应的域名以防止混淆!
将证书(crt和key文件)上传至该文件夹内
接着我们按下面的代码修改frpc.toml文件
代码:
serverAddr = "X.X.X.X"
serverPort = 47000
auth.token = "123456789asdfg"
[[proxies]] #tcp格式
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22remotePort = 6000
[[proxies]] #https格式
name = "test-https"
type = "https"
localIP = "192.168.*.*"
localPort = 7400
customDomains = ["test.test.test"]
[proxies.plugin]
type = "https2http"
localAddr = "192.168.*.*:****"
crtPath = "/frp/test.test.test/test.test.test.crt"
keyPath = "/frp/test.test.test/test.test.test"
hostHeaderRewrite = "192.168.*.*"
requestHeaders.set.x-from-where = "frp"
在crtpath和keypath等号后面的目录一定要修改为自己的证书文件位置
接着输入自己的https://+二级域名+我们在服务端中vhostHTTPSPort中设置的端口号即可通过https访问我们内网中的web服务(演示中使用的是443端口,不需要加端口号,如果要使用443或者80端口,请确保服务端443和80端口没被占用,否则将报错,报错检查是否服务端安装了nginx并被启动了!)
当然,我们也能通过打洞的方式来保证安全的情况下访问我们SSH端口,此功能需要内网安装了frp客户端以及我们外网需要打洞访问的机器也安装客户端,而我们在外网的机器大部分情况下都是使用windows,需要windows的教程这篇就不继续了,以后看情况更新frp打洞
3857

被折叠的 条评论
为什么被折叠?



