阿里云叫边缘安全加速 ESA,其实就是CDN,内容分发,叫法不同罢了(看官网介绍之前叫DCDN),核心亮点就是免费了,而且目前没有所谓的流量限制,给我一种cloudflare的感觉,但是以阿里的尿性,我又不相信。
(更多…)分类: 教程技术
一点技术储备
-
【转载】使用nftables配置端口转发
由于Debian 12版本以后已经弃用了iptables,默认使用nftables,在 Linux 中,
nftables
是一种用于管理防火墙的现代框架,可以实现灵活且高效的网络包过滤和端口转发。以下是使用nftables
配置端口转发的基本步骤。流量走向:
客户端 --> GFW --> A服务器 --> B服务器(落地) --> YouTube --> 返回客户端
A服务器IP:2.2.2.2 端口:2222
B服务器IP:6.6.6.6 端口:6666实现目的:把本机A服务器IP 2.2.2.2 上的 2222 端口流量转发到B服务器IP 6.6.6.6 的 6666 端口上
A服务器
以下都在A服务器上操作,也就是转发服务器,白话就是线路好的服务器
首先在服务器上开启内核转发:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
使其生效:
sysctl -p
1. 安装 nftables
确保系统已经安装
nftables
。在大多数 Linux 发行版中可以通过以下命令安装(Debian12 已默认自带,不用额外安装):apt install nftables # 对于 Debian/Ubuntu
yum install nftables # 对于 CentOS/RHEL2. 启用并启动 nftables
确保
nftables
服务已启用并运行:systemctl enable nftables
systemctl start nftables3. 创建或编辑配置文件
编辑
nftables
配置文件,通常位于/etc/nftables.conf
,或者创建一个新的配置文件。以下是一个端口转发的配置示例:
#!/usr/sbin/nft -f
flush ruleset
# 创建一个名为 "fowardaws" 的表,用于转发流量
table ip fowardaws {
# 在 prerouting 链中配置 DNAT(目的地址转换)
chain prerouting {
# 设置该链的类型为 NAT(网络地址转换),并在 prerouting 阶段生效
type nat hook prerouting priority -100; # priority -100 表示较早匹配规则
# 将本机也就是中转机2222端口流量转发到落地机IP(6.6.6.6)的6666端口上
tcp dport 2222 dnat to 6.6.6.6:6666
udp dport 2222 dnat to 6.6.6.6:6666
# 上述两行规则会将访问本机 2222 端口的 TCP/UDP 流量重定向到指定的远程服务器端口
}
# 在 postrouting 链中配置 SNAT(源地址转换)
chain postrouting {
# 设置该链的类型为 NAT,并在 postrouting 阶段生效
type nat hook postrouting priority 100; # priority 100 表示在路由后生效
# 使用 masquerade(伪装)机制,将流向(目的机器的ip) 的流量的源地址转换为本机的出站 IP 地址
ip daddr 6.6.6.6 masquerade
# masquerade 的效果是隐藏本地 IP,使目标服务器看到的是中转机的外网 IP,而非局域网 IP
}
}4. 加载配置
保存文件后,通过以下命令加载配置:
nft -f /etc/nftables.conf
5. 验证规则
使用以下命令查看当前
nftables
规则是否正确加载:nft list ruleset
prerouting
链:用于修改进入主机的数据包,适合端口转发。postrouting
链:用于修改发出主机的数据包,通常用于地址伪装 (SNAT)。
B服务器(落地)
B服务器也就是落地服务器,在B服务器上安装个Shadowsocks就好了,注意端口使用上面转发的6666端口。
安装SS可使用姥爷的一键脚本:
https://github.com/yeahwu/v2ray-wss客户端
本来B服务器上安装的SS的IP和端口是,IP 6.6.6.6,端口 6666
既然使用了转发,那么客户端只要把IP和端口换成A服务器IP,和转发端口2222,就可以使用了。
参考:
-
【转载】realm一键转发脚本
realm一键转发脚本用于转发流量,对于流量无法直接到达目的地的,或者说线路不好的可以试一下,中专的这台机器线路好应该问题不大。
脚本界面预览:
欢迎使用realm一键转发脚本 ================= 1. 部署环境 2. 添加转发 3. 添加端口段转发 4. 删除转发 5. 启动服务 6. 停止服务 7. 重启服务 8. 检测更新 9. 一键卸载 10. 更新脚本 0. 退出脚本 ================= realm 状态:已安装 realm 转发状态:启用
realm一键转发脚本 realm转发一键脚本:
国内或v6 only可用(推荐)
curl -L https://host.wxgwxha.eu.org/https://github.com/wcwq98/realm/releases/download/V1.3/realm.sh && chmod +x realm.sh && sudo ./realm.sh
或
curl -L https://github.com/wcwq98/realm/releases/download/V1.3/realm.sh -o realm.sh && chmod +x realm.sh && sudo ./realm.sh
或
curl -L https://raw.githubusercontent.com/wcwq98/realm/refs/heads/main/realm.sh -o realm.sh && chmod +x realm.sh && sudo ./realm.sh
默认配置文件(脚本在首次部署环境时会自动添加)
[network] no_tcp = false #是否关闭tcp转发 use_udp = true #是否开启udp转发 #参考模板 # [[endpoints]] # listen = "0.0.0.0:本地端口" # remote = "落地鸡ip:目标端口" [[endpoints]] listen = "0.0.0.0:1234" remote = "0.0.0.0:5678"
如需其他更多配置请参考官方文档:https://github.com/zhboner/realm
-
隧道中转方法
在nodeseek看到的这个隧道中转方法,感觉还可以,自用按流量计费,ssh测速延迟很低,目前运行一切正常,记录一下。
下载教程开始:
GOST官方文档https://gost.run 二进制文件:https://github.com/go-gost/gost/releases
- 点二进制文件找到Assets找出自己的服务器架构,一般来说都是x86和amd就是这个:https://github.com/go-gost/gost/releases/download/v3.0.0-nightly.20241122/gost_3.0.0-nightly.20241122_linux_amd64.tar.gz
- 下载二进制文件(中转和落地都要下载)
sudo wget https://github.com/go-gost/gost/releases/download/v3.0.0/gost_3.0.0_linux_amd64.tar.gz
如果错误输入 apt install wget -y 试试
- 解压给执行权限
sudo tar -xf gost_3.0.0_linux_amd64.tar.gz
sudo chmod +x gost
隧道中转教程
假如我是搭建了个ss节点中转鸡IP:1.1.1.1落地鸡:2.2.2.2
端口:中转鸡开放了:8080 落地开放了:4444,ss搭建的端口上555555- 中转机:
./gost -L tcp://0.0.0.0:8080 -L udp://0.0.0.0:8080 -F relay+tls://[2.2.2.2]:4444
- 落地机:
./gost -L relay+tls://:4444/127.0.0.1:555555
最后把原来的2.2.2.2 IP换成1.1.1.1,把5555端口改成8080
最后,请不要把该教程的内容使用在非法用途上,否则后果自负,本文仅仅是技术研究讨论,我仅仅是加速ssh,提高链接速度,切勿对号入座。
参考链接
-
peertube的对象存储设置方法
peertube在两个月前就安装好了,传过几个视频,发现很快服务器的存储空间就没了,没办法,必须得用对象存储,上传的只是一个视频文件,然后peertube会对视频进行切片处理,这样不通分辨率的视频导致文件会很大,所以必须使用对象存储。
我刚开始使用对象存储的方法是官方文档里的,按照要求设置发现不行,可能是安装方式不一样,这个方法无效。看log发现不对,然后就搁置了好久。
就开始搜索docker的配置方法,找到一篇文章,发现也是docker安装的,这下对味儿了,最后文章结论是他成功了。
peertube的对象存储支持aws的s3和BackBlaze的b2(aws的s3太贵了,建议使用b2)
peertube的对象存储 peertube配置-对象存储
下面是我的配置
PEERTUBE_OBJECT_STORAGE_ENABLED=true PEERTUBE_OBJECT_STORAGE_ENDPOINT=s3.us-west-004.backblazeb2.com PEERTUBE_OBJECT_STORAGE_REGION=us-west PEERTUBE_OBJECT_STORAGE_PROXY_PROXIFY_PRIVATE_FILES=true PEERTUBE_OBJECT_STORAGE_CREDENTIALS_ACCESS_KEY_ID=b2的id PEERTUBE_OBJECT_STORAGE_CREDENTIALS_SECRET_ACCESS_KEY=b2的密钥 PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BUCKET_NAME=桶名 PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_PREFIX=streaming-playlists/ PEERTUBE_OBJECT_STORAGE_STREAMING_PLAYLISTS_BASE_URL=https://桶名.s3.us-west-004.backblazeb2.com PEERTUBE_OBJECT_STORAGE_UPLOAD_ACL=public PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BUCKET_NAME=桶名 PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_PREFIX=web-videos/ PEERTUBE_OBJECT_STORAGE_WEB_VIDEOS_BASE_URL=https://桶名.s3.us-west-004.backblazeb2.com
把这个文件内容加入到.env 文件内容底部,重启peertube容器就好了。
转移本地文件到对象存储,这个可以按照官方的教程走,转移后会删除服务器本地的文件,但是我发现有些视频还是没删除,暂时未知。但是视频的请求都是来自远程的b2链接。
转移文件到对象存储
安装 PeerTube CLI
安装node
检查 node
node --version # Should be >= 16.x
检查安装
有就不需要安装,没有的话执行下方的安装
sudo npm install -g @peertube/peertube-cli
绑定到 peertube 上
peertube-cli auth add -u 'PEERTUBE_URL' -U 'PEERTUBE_USER' --password 'PEERTUBE_PASSWORD'
不详细介绍了,域名,账户,密码 然后就算绑定了。
转移文件
cd /var/www/peertube-docker docker compose exec -u peertube peertube npm run create-move-video-storage-job -- --to-object-storage -v [videoUUID]
进入目录这里就是你当时使用docker安装peertube的目录
最后
文件执行时长取决于你本地视频的多少和你服务器和对象存储之间的连接带宽大小,总之需要一会儿。
参考连接
-
rssbot安装教程
rssbot用来在telegram订阅一些自己喜欢的频道或者博客,这样就不会错过一些有趣的内容,喜欢的话直接点击查看,很方便,下面介绍一下安装方法,我的安装环境是Debian 11.
(更多…) -
【转载】Docker 配置 Mastodon Sidekiq 多线程
今早在群里收到报错,nofan 的 timeline 延迟近半小时不动,跑 Sidekiq 看了一下,队列里超过 4000 条待处理任务,简单看了一下日志,大部分是 bgme.me 的未响应报错。当笔记本自己记录。
(更多…)