Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

关于云服务流量费比较

By: Anonymous
5 March 2024 at 13:12

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

使用云服务时,一个常被忽视的成本就是流出费。这指的是将数据从云服务提供商的发送到公共互联网的费用。

这里整理了常用服务的流量费用,可以快速了解不同云服务的流量费用差异,这不仅是单纯 VPS 比较,而是各类的云服务都拿出来比,像是存储类的以及 CDN 类的都有放进来。

如果超出了流量,每家供应商收取的 1TB 数据流出费用如下:

小提醒: 实际价格可能因地区和其他本文未列出的因素而有所不同。为方便比较,这里选择了最靠近北弗吉尼亚(美国)或法兰克福(德国)的区域,并根据统一的使用情况假设估算出这些价格。请务必查看供应商的定价页面以获取最新信息。

数据流出是指数据离开某个网络,更确切地说,是数据离开你的云服务提供商网络进入公共互联网。这可能是从云服务商到用户的数据传输,或是从一家云服务商到另一家的数据传输。

云服务商通常根据从其网络流出的数据量按 GB (1 GB等于1024 MB)或 TB (1 TB等于1024 GB) 计费收取每月数据传输费用。

从云服务商的角度来看,有两种数据传输类型:

实际操作中,可能是这样的:

要下载文件,用户设备需要从云服务商网络请求数据,而云服务商则需要将数据发送给用户(或内容分发网络等中间商)。这就会产生数据流出费用。

云服务商之所以收取数据流出费,是因为从其网络传输数据需要成本。他们需要为传输数据所需的基础设施和带宽付费。

不过,数据流出费也可能是为了阻止某些使用场景,比如跨云服务商大量传输数据。

大多数云服务商都提供一定的免费流出数据量,比如整个账户每月 100GB 的免费流量,或者每台服务器每月 1TB 的免费流量。

因此,根据你的使用情况和选择的云服务商,你可能完全不用为数据流出付费。

在尝试降低数据流出费用时,可以考虑以下几个因素:

Backblaze 的带宽费用算法颇有趣,每个月给数据量的三倍大小当作免费带宽,没记错的话因为 Cloudflare 是 Backblaze 的官方合作伙伴,两边的传输费用不计费,如果数据是可以公开的,可以通过这个方式免费链接出来;如果真的走一般的流量输出,收费是 US$0.01/GB (所以换算后是 US$10/TB)。

三家常被摆在一起的 VPS (LinodeDigitalOceanVultr) 的带宽也都是 US$10/TB。

以前没注意到的是 OVH CloudScaleway 的带宽费用是免费的?另外 Hetzner 虽然要收费但也很低?有机会可以测试看看,看一下质量如何?

一键脚本自动优选Cloudflare_IP解析到免费域名下

By: wayen
12 January 2024 at 01:40

一键脚本自动优选Cloudflare_IP解析到免费域名下

发表于|更新于|实用教程
|字数总计:830|阅读时长:4分钟|阅读量:

说明

之前有人免费提供解析Cloudflare_IP的域名,但很快就被DNS污染了,因此此教程适合自己使用不建议分享。实现的原理很简单,第一使用CloudflareSpeedTest程序进行测速,选出质量高的IP地址;第二使用免费ddns将域名解析到优选的IP;第三使用cron定时执行任务。脚本适用amd64、arm64、arm架构的Linux服务器,安卓手机Termux使用需要做一定的修改,请点击目录直接查看内容。

Dynv6

需要借助Dynv6来获取免费域名和ddns,hostname是注册的二级域名,token位于网站首页左上角Documentation-> APIs页面内,空格之后的不要。两项复制之后在脚本执行后按提示输入即可。

自定义

echo "0 0 * * * timeout 10m $path/bestip.sh > /dev/null 2>&1" | crontab -
双引号内的内容是定时执行命令,为每日0时。
$path/CloudflareST -f $path/ip.txt -tl 200 -sl 6 -dn 5 -dt 10 -o "bestip"
CloudflareST的使用可参考,以上为选择时延小于200ms的IP进行测试,每个测试10秒限制6mb/s以上,得到5个合格IP。
ipv6=$(grep -oE "\b([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4}\b" $path/bestip | head -1)
如果对ipv6有需求,请将ip.txt改为ipv6.txt,并将脚本内的ipv4改为ipv6。

脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/sh

check_() {
# 检查服务器架构
architecture=$(uname -m)
case $architecture in
x86_64)
platform="amd64"
;;
aarch64)
platform="arm64"
;;
arm*)
platform="armv7"
;;
*)
echo "脚本不支持 $architecture"
exit 1
;;
esac
}

first_() {
# 下载测速工具并定时每日0点执行
mkdir -p $path && cd $path
latest_release=$(curl -s https://api.github.com/repos/XIU2/CloudflareSpeedTest/releases/latest | grep "tag_name" | awk '{print $2}' | tr -d '",')
download_url="https://github.com/XIU2/CloudflareSpeedTest/releases/download/$latest_release/CloudflareST_linux_$platform.tar.gz"
curl -LO $download_url || exit 1
tar -xvf CloudflareST_linux_$platform.tar.gz && rm CloudflareST_linux_$platform.tar.gz && chmod +x CloudflareST
echo "0 0 * * * timeout 10m $path/bestip.sh > /dev/null 2>&1" | crontab -
read -p "请输入 hostname:" hostname
read -p "请输入 token:" token
}

start_() {
# 测速并更新IP
cat <<EOF > $path/bestip.sh
#!/bin/sh

$path/CloudflareST -f $path/ip.txt -tl 200 -sl 6 -dn 5 -dt 10 -o "bestip"
ipv4=\`grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" $path/bestip | head -1\`
curl -Ls "http://dynv6.com/api/update?hostname=$hostname&token=$token&ipv4=\$ipv4"
EOF
chmod +x $path/bestip.sh && timeout 10m $path/bestip.sh
}

path="/opt/CloudflareST"
check_
first_
start_
exit

Termux

手机使用不必设置定时,mkdir bestip && cd bestip后执行脚本即可。之后每次执行cd bestip && ./bestip.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

first_() {
# 下载测速工具
latest_release=$(curl -s https://api.github.com/repos/XIU2/CloudflareSpeedTest/releases/latest | grep "tag_name" | awk '{print $2}' | tr -d '",')
download_url="https://github.com/XIU2/CloudflareSpeedTest/releases/download/$latest_release/CloudflareST_linux_arm64.tar.gz"
curl -LO $download_url || exit 1
tar -xvf CloudflareST_linux_arm64.tar.gz && rm CloudflareST_linux_arm64.tar.gz && chmod +x CloudflareST
read -p "请输入 hostname:" hostname
read -p "请输入 token:" token
}

start_() {
# 测速并更新IP
cat <<EOF > bestip.sh
#!/bin/sh

./CloudflareST -tl 200 -sl 6 -dn 5 -dt 10 -o "bestip"
ipv4=\`grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" bestip | head -1\`
curl -Ls "http://dynv6.com/api/update?hostname=$hostname&token=$token&ipv4=\$ipv4"
EOF
chmod +x bestip.sh && ./bestip.sh
}

first_
start_
exit
文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

如何在Alpine上安装Cloudflare_tunnel

By: wayen
3 August 2023 at 22:29

如何在Alpine上安装Cloudflare_tunnel

发表于|更新于|实用教程
|字数总计:255|阅读时长:1分钟|阅读量:

说明

Tunnel支持Windows/Mac/Debian/RedHat/Docker,你可以在Alpine上使用Docker安装,但Alpine并不见得总是适合Docker。当机器内存过小,或一些其他原因不能使用Docker时,你可以手动安装Tunnel。

安装过程

首先你要下载Tunnel的运行程序,然后让它保持后台运行,这在其他系统中通常只是一行命令。其他相同操作请参照Cloudflare_tunnel内网穿透

下载运行程序

点击下载cloudflared-linux-amd64,如果你的服务器架构不同,请自行选择,但不要下载安装包。

1
2
3
chmod +x cloudflared-linux-amd64
mv ./cloudflared-linux-amd64 cloudflared
mv ./cloudflared /usr/bin/

添加后台运行

通常会在Tunnel选择系统页面看到一长串的字母,比如cloudflared.exe service install eyJhI***,将${token}替换为eyJhI***即可。

1
2
3
4
5
6
7
8
9
10
11
12
echo '#!/sbin/openrc-run

command="/usr/bin/cloudflared"
command_args="tunnel --no-autoupdate run --token ${token}"
command_background="yes"
pidfile="/run/cloudflared.pid"

depend() {
need net
}' >> /etc/init.d/cloudflared
rc-service cloudflared start
rc-update add cloudflared default
文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

Cloudflare: Quota limit exceeded

By: wayen
26 July 2023 at 14:23

Cloudflare: Quota limit exceeded

发表于|更新于|实用教程
|字数总计:76|阅读时长:1分钟|阅读量:

说明

刚刚在用域名给Tunnel授权时提示Quota limit exceeded. You can create no more than 50 tokens (Code: 1001),换了个域名仍然不成功。这是因为Cloudflare的API令牌数量超过了数量50的限制,删除掉不使用的就好了。

解决方法

https://dash.cloudflare.com/profile/api-tokens

文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

通过Cloudflare_tunnel实现远程SSH

By: wayen
24 July 2023 at 15:31

通过Cloudflare_tunnel实现远程SSH

发表于|更新于|实用教程
|字数总计:281|阅读时长:1分钟|阅读量:

说明

搭建Cloudflare_tunnel完成后似乎可以内网穿透了,但如果还要使用远程SSH仍需要几个步骤,本教程将介绍通过Cloudflare_tunnel实现远程SSH三种方法。

搭建Tunnel

给自己的SSH控制端也搭建Tunnel,可以使用代理命令<file path>/cloudflared access ssh --hostname ssh.xml.wiki通过SSH工具连接。

添加认证程序

首先打开工作台,点击左侧Access下的Applications创建应用。类型选择Self-hosted
09
然后本页按照下图填写内容,其他保持默认即可。
10
在添加规则页面,Policy name随便填写,具体的规则可按照下图填写,其他保持默认即可。
11
最后一页请如下图选择SSH,其他保持默认即可。
12
别忘记在Tunnel中的Public Hostname创建SSH规则,之后访问网站进行邮箱验证码登录即可。
08

SSH over WEB

简单来讲就是使用工具将SSH转为Web,再由Tunnel进行内网穿透。

ttyd

下载ttyd,默认监听7681端口,可通过参数-p指定。

1
2
chmod +x ttyd
./ttyd login

sshwifty

另见。使用Tunnel可不用配置SSL证书。

文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

Cloudflare_tunnel内网穿透

By: wayen
23 July 2023 at 20:06

Cloudflare_tunnel内网穿透

发表于|更新于|实用教程
|字数总计:340|阅读时长:1分钟|阅读量:

说明

借助Cloudflare_tunnel可以实现访问没有公网的主机服务,也可以安全保护自己代理公网端口,甚至在没有标准端口的Nat_vps上白嫖CDN。不需要花费一分钱的内网穿透,只需你添加一张信用卡即可。

教程

首先进入工作台,任意填写你的团队名称,选择Free Plan添加付款方式即可。
然后点击左侧Access下的Tunnels,创建一个Tunnel。
04
05
接着你可以选择自己的操作系统,以Onecloud为例选择Debianarm32bit,到页面下方复制左侧的命令到SSH窗口回车即可。下一步输入自己的Tunnel名称,点击保存。
06
之后填写自己想要穿透的内网端口。Subdomain是二级域名前缀,不要填解析过的;Path是网页路径,没有需求留空;Type选择http,URL是localhost+端口号。
07
最后在SSH窗口输入cloudflared tunnel login会输出一个网址,复制到浏览器打开,选择使用的域名授权即可。

远程SSH

服务中选择Type时请不要选择SSH,直接使用是无效的,你必须在SSH控制端同样安装Tunnel,或者在工作台新建一个SSH应用登录认证后使用。当然,最简单的办法就是把SSH通过Web分享出来再由Tunnel代理。
教程

文章作者: wayen
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Wayen

评论
数据库加载中

❌
❌