首页
实用链接
图床推荐
友链
关于
Search
1
彻底卸载Cloudflare Tunnel(解决 cloudflared service uninstall 报错问题)
483 阅读
2
从零开始注册Hugging Face账号到部署网页应用
102 阅读
3
Debian 11.2 搭建 Typecho 个人博客教程
90 阅读
4
紫电猫8.8元随身WIFI刷Debian系统教程
88 阅读
5
Linux配置frps与frpc的四种隧道并设置开机启动
87 阅读
默认分类
教程
随笔
软件开发
笔记
登录
/
注册
Search
标签搜索
Datawhale
AI+X
Fun-Transformer
#Datewhale组队学习
隧道
Debian
Transformer
教程
随身wifi
frp
frpc
frps
内网穿透
Linux
toml
我的世界
Minecraft
MySQL
单片机
OLED
Simuoss
累计撰写
20
篇文章
累计收到
12
条评论
首页
栏目
默认分类
教程
随笔
软件开发
笔记
页面
实用链接
图床推荐
友链
关于
搜索到
2
篇与
的结果
2024-08-17
彻底卸载Cloudflare Tunnel(解决 cloudflared service uninstall 报错问题)
问题引入Cloudflare 是一家国际知名的互联网基础设施服务的公司。对国内用户来说,很多人用 Cloudflare 的免费服务来给网页带上 https (比如本站),又或者是用 Cloudflare Tunnel(Cloudflare Argo Tunnel) 来穿透本地网页到公网。但是,由于众所周知的原因,国内访问 Cloudflare 服务通常不是很通畅,而在配置 Cloudflare Tunnel 时也偶尔会因为各种原因失败,需要重新安装。这时,cloudflared 会提示如下:这是由于 cloudflared 没有完全清理安装文件导致的。如何解决在执行卸载指令之后,执行指令清除 cloudflared 的所有配置文件:sudo cloudflared service uninstall sudo rm /etc/systemd/system/cloudflared*这时再重新执行安装指令即可。切换到HTTP2连接有时候在隧道创建成功后,Cloudflare 后台会显示隧道状态是 degraded (退化状态),这可能是由于新版的Cloudflare隧道“强制”使用QUIC进行连接,而国内的网络接入服务商对UDP协议支持很不好造成的。可以通过以下方式设置默认使用HTTP2连接。编辑配置文件:sudo vi /etc/systemd/system/cloudflared.service在 ExecStart 一行的启动指令里添加如下参数:--protocol http2此时启动指令应该是类似 ExecStart=/usr/bin/cloudflared --no-autoupdate --protocol http2 tunnel run --token <your_token> 的形式。重新启动服务sudo systemctl daemon-reload sudo systemctl restart cloudflared #由于网络环境原因可能启动不成功,多执行几次本句参考链接:遇事不决,量子力学!搞定Cloudflare Tunnels无法建立隧道的问题【便笺】配置Cloudflare隧道默认使用HTTP2Cloudflare Tunnel 中文文档Cloudflared service not removed after uninstall
2024年08月17日
483 阅读
0 评论
2 点赞
2024-08-11
Linux配置frps与frpc的四种隧道并设置开机启动
前言对于个人爱好者而言,国内的绝大多数家庭宽带都没有公网IP,即使能要到动态公网IP,也需要配置DDNS服务,比较麻烦。但是购买云服务器,又面临着算力较低,开销较大的问题。所以,在家中配置一台高性能服务器,并购买一台低配置大带宽的云服务器做端口转发,甚至是全端口转发,是一件性价比较高的实现方式。在开设穿透上,我们这里使用 FRP。frp 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。此外,还可以通过 xtcp 实现 P2P 通信。下载预编译包这一步对于服务端和用户端都一样,没有区别,因为预编译包里面同时包含frps和frpc选择合适的平台与系统打开 FRP的Github Releases界面。一般推荐直接下载最新版(截止本文撰写是0.59.0版本)。可以看到,图中有很多版本的Release包,都是frp_版本_系统_平台的命名格式。通常来讲,云服务商提供的服务器,直接选择frp_0.59.0_linux_amd64.tar.gz即可。系统自然不必说,常见的ubuntu、centos、debian等等都属于Linux。平台的对应关系:|平台|意义||:-:|:-:||arm|32位的arm芯片,通常用在机顶盒、手机等等设备,目前比较少见||arm64|64位的arm芯片,通常用在机顶盒、高端路由器,手机等等设备,比如高通骁龙、联发科天玑等等||amd64|【最常见】64位的x86架构芯片,Intel和AMD在2003年以后的芯片都选这个||arm_hf|带有硬件浮点单元的32位arm芯片||mips|32位的mips芯片,通常用在一些路由器、医疗和工控设备里||mips64|64位的mips芯片,通常用在一些路由器、医疗和工控设备里|下载预编译包到本地并解压可以直接在远端服务器上使用curl下载(以frp_0.59.0_linux_amd64.tar.gz为例):curl -L https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz如果你选择了别的版本,可以直接改动后面的文件名。如果远程服务器下载缓慢,也可以在本地下载好后,使用(s)ftp协议或其他方式上传至远程服务器。这里推荐使用自带ftp协议的ssh终端,如 MobaXterm下载好后,解压文件:tar -xzvf frp_0.59.0_linux_amd64.tar.gz-x:表示解压。 -z:表示文件是 gzip 格式的(.gz)。 -v:表示显示解压的文件列表(可选)。 -f:指定文件名。在服务端搭建frps服务修改配置文件进入frp文件目录:cd frp_0.59.0_linux_amd64用vim文本编辑器修改 frps.toml 配置文件vi frps.toml注意,对于初学者来说,vim编辑器可能比较难以使用,使用方式可以参照这篇文章:vim使用教程图文教程(零基础超详细)。如果还是觉得难以使用,推荐Windows用户下载MobaXterm,并在连接到服务器后,用右侧的sftp文件界面来修改toml文件内容。清除原先内容,复制以下内容到文件并保存:bindPort = 7000 # frp服务的端口。最基础的服务有这一行就够了,后面的都可以不要。需要注意如果你有防火墙,防火墙也需放开该端口 # 服务面板可查看frp服务状态信息,无论开启还是关闭都不影响服务正常使用。想要关闭就把后面四行用#号注释掉 webServer.addr = "0.0.0.0" # 后台管理地址,默认是127.0.0.1,如果是公网访问则改成0.0.0.0 webServer.port = 7500 # 后台管理端口 webServer.user = "admin" # (可选)后台登录用户名 webServer.password = "admin" # (可选)后台登录密码 # 身份认证。如果不配置这一项,那么任何想连接至你的服务器的frpc请求都会被同意。不过不开启这个配置起来简单一些。 #transport.tls.force = true # 服务端将只接受 TLS链接 #auth.method = 'token' # 客户端访问验证方式 #auth.token = "54321" # 客户端访问验证密码,frpc要与frps一致 # 自定义的监听的端口,所有对服务器该端口访问将被转发到本地内网,做了反向代理可不处理防火墙放行 #vhostHTTPPort = 8000 #vhostHTTPSPort = 45443保存退出。这时,输入./frps -c ./frps.toml即可运行服务,如果正常运行,就先按ctrl+c关闭程序,因为我们后面要配置后台运行和开机启动。设置开机启动在这里,我们使用 systemd 来将frps注册为系统服务。systemd 是一个用于 Linux 操作系统的系统和服务管理器。它是大多数现代 Linux 发行版中用于启动和管理系统服务的主要工具。systemd 负责管理系统启动、服务运行、系统资源分配以及进程和日志管理等。在多数主流的 Linux 发行版中,systemd 已经成为默认的系统管理工具。使用以下指令创建frps.service服务文件并编辑:sudo vim /etc/systemd/system/frps.service这里会提示你输入密码,因为此目录有root等级权限。如果没有提示输入密码,证明你用了root用户直接操作日常人物,这是不好的。如果你想用我前面提到的sftp工具直接修改,那你需要在Session里面重新开一个具有root权限的stfp会话,因为左边自带的stfp没有root权限,不能直接修改这个路径的文件。所以尽量还是学一下 vim 吧:vim使用教程图文教程(零基础超详细)。如果还是觉得难以使用,推荐Windows用户下载MobaXterm写入内容,注意修改frp文件路径:[Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动命令,改为实际存放frps的路径 ExecStart = /path/to/frps -c /path/to/frps.toml # 自动重启设置 Restart = always # 适用于重启策略的额外设置 RestartSec = 5s [Install] WantedBy = multi-user.target注意修改你的frps路径。如果你想修改自动重启配置,可参照下面的细则调整配置文件(一般没有必要,可以直接跳过):Restart: - no:默认值,不会自动重启服务。 - always:无论服务的退出状态如何(正常退出或崩溃),systemd 都会自动重启服务。 - on-failure:只有在服务因非零退出状态或超时而失败时,systemd 才会重启服务。 - on-abnormal:只有在服务异常退出(如段错误、崩溃等)时,systemd 才会重启服务。 - on-success:仅当服务正常退出(退出码为0)时,systemd 才会重启服务。 - on-abnormal:只有在服务异常退出(如段错误、崩溃等)时,systemd 才会重启服务。 RestartSec:定义在服务重启之前等待的时间。这里设置为 5 秒。保存文件。随后,依次执行以下命令(如有启动失败,评论区联系):启动frpsudo systemctl start frps停止frpsudo systemctl stop frps重启frpsudo systemctl restart frps查看frp状态sudo systemctl status frps设置为开机自启sudo systemctl enable frps恭喜你,你已经完成了服务端的搭建工作,随后该服务会在系统开机时自启,无惧重启了。在用户端搭建frps服务修改配置文件进入frp文件目录:cd cd frp_0.59.0_linux_amd64用vim文本编辑器修改 frpc.toml 配置文件vi frpc.toml注意,对于初学者来说,vim编辑器可能比较难以使用,使用方式可以参照这篇文章:vim使用教程图文教程(零基础超详细)。如果还是觉得难以使用,推荐Windows用户下载MobaXterm,并在连接到服务器后,用右侧的sftp文件界面来修改toml文件内容。清除原先内容,复制以下内容到文件,理解你的每一项配置并按需修改和删除:transport.tls.enable = true # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true serverAddr = "47.76.92.71" # 服务端ip,改成你的 serverPort = 7000 # 服务端端口,和之前配置frps.toml时候一致 #auth.method = 'token' # 客户端访问验证方式,如果你前面开启了访问验证,这里需要和之前配置frps.toml时候一致 #auth.token = '54321' # 客户端访问验证密码,如果你前面开启了访问验证,这里需要和之前配置frps.toml时候一致 # TCP隧道配置方式(如MySQL、Minecraft等等服务) [[proxies]] name = "thisclient.mc" # 客户端服务名,建议写成“xxx.xxx”的形式好分辨 type = "tcp" # 通讯方式 localIP = "127.0.0.1" # 客户端的ip(本机就写127.0.0.1,局域网下其他主机也可以写其它局域网IP) localPort = 25565 # 客户端服务端口(比如MC的默认端口是25565,MySQL是3306) remotePort = 13306 # 映射到服务端端口(服务器需放行。注意有些服务可能要求端口一致,但大部分不需要) # UDP隧道配置方式(如语音服务、MC基岩版) [[proxies]] name = "mc-bedrock" type = "udp" # 注意这里变了 localIP = "127.0.0.1" localPort = 19132 # MCBE的默认端口 remotePort = 39132 # 走TCP通道的HTTP流量,穿透网站用,但这种方式需要在网站后面加端口号 [[proxies]] name = "test-http" type = "tcp" localIP = "127.0.0.1" # 需要暴露的服务的IP localPort = 80 # 将本地80端口的服务暴露在公网的6060端口 remotePort = 6060 # 暴露服务的公网入口 # SSH隧道,远程连接用 [[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 # ssh隧道默认端口是22 remotePort = 6000 #customDomains = ["xxx.xxx.xxx.xxx"] #如果想用域名访问,就在这里改 # HTTP隧道代理方式,穿透网站用,远程端口可以不是80并且不需要在访问时加端口号 [[proxies]] name = "web" type = "http" localPort = 80 #customDomains = ["域名"] # HTTPS隧道代理方式,需要注意配置证书 [[proxies]] name = "web-80" type = "https" localPort = 45443 #customDomains = ["cloud.your-service.com"]保存退出。这时,输入./frpc -c ./frpc.toml即可运行服务,如果正常运行,就先按ctrl+c关闭程序,因为我们后面要配置后台运行和开机启动。设置开机启动客户端设置开机启动方法与服务端一致,唯一不同的是创建的文件名和配置文件的frpc路径不同。所以相同的内容读者可以自行跳过在这里,我们使用 systemd 来将frpc注册为系统服务。systemd 是一个用于 Linux 操作系统的系统和服务管理器。它是大多数现代 Linux 发行版中用于启动和管理系统服务的主要工具。systemd 负责管理系统启动、服务运行、系统资源分配以及进程和日志管理等。在多数主流的 Linux 发行版中,systemd 已经成为默认的系统管理工具。使用以下指令创建frpc.service服务文件并编辑:sudo vim /etc/systemd/system/frpc.service这里会提示你输入密码,因为此目录有root等级权限。如果没有提示输入密码,证明你用了root用户直接操作日常人物,这是不好的。如果你想用我前面提到的sftp工具直接修改,那你需要在Session里面重新开一个具有root权限的stfp会话,因为左边自带的stfp没有root权限,不能直接修改这个路径的文件。所以尽量还是学一下 vim 吧:vim使用教程图文教程(零基础超详细)。如果还是觉得难以使用,推荐Windows用户下载MobaXterm写入内容,注意修改frp文件路径:[Unit] # 服务名称,可自定义 Description = frp client After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动命令,改为实际存放frpc的路径 ExecStart = /path/to/frpc -c /path/to/frpc.toml # 自动重启设置 Restart = always # 适用于重启策略的额外设置 RestartSec = 5s [Install] WantedBy = multi-user.target注意修改你的frpc路径。如果你想修改自动重启配置,可参照下面的细则调整配置文件(一般没有必要,可以直接跳过):Restart: - no:默认值,不会自动重启服务。 - always:无论服务的退出状态如何(正常退出或崩溃),systemd 都会自动重启服务。 - on-failure:只有在服务因非零退出状态或超时而失败时,systemd 才会重启服务。 - on-abnormal:只有在服务异常退出(如段错误、崩溃等)时,systemd 才会重启服务。 - on-success:仅当服务正常退出(退出码为0)时,systemd 才会重启服务。 - on-abnormal:只有在服务异常退出(如段错误、崩溃等)时,systemd 才会重启服务。 RestartSec:定义在服务重启之前等待的时间。这里设置为 5 秒。保存文件。随后,依次执行以下命令(如有启动失败,评论区联系):启动frpsudo systemctl start frpc停止frpsudo systemctl stop frpc重启frpsudo systemctl restart frpc查看frp状态sudo systemctl status frpc设置为开机自启sudo systemctl enable frpc恭喜你,你已经完成了客户端的搭建工作,随后该服务会在系统开机时自启,无惧重启了。至此,我们就完成了所有服务的搭建。如果对过程有什么问题,或者出现了报错,请在下方评论留言联系。
2024年08月11日
87 阅读
0 评论
4 点赞