网络代理和转发工具全面技术分析

1. iptables

底层技术

  • 工作层级: Linux内核netfilter框架
  • 处理方式: 数据包在内核态直接处理,零拷贝
  • 实现机制: 基于规则链和表的包过滤系统
  • 数据流: 网卡 → 内核netfilter钩子 → 直接修改包头 → 转发

性能指标

  • 延迟: ~0.05ms
  • 吞吐: 接近线速(40Gbps+)
  • CPU占用: 极低
  • 内存占用: 几乎无额外开销

优劣势

优势: 最高性能,零额外延迟,硬件加速支持 ❌ 劣势: 只支持L3/L4转发,无协议转换,配置复杂


2. brook

底层技术

  • 实现语言: Go语言
  • 网络模型: goroutine per connection
  • 加密: 自定义AES-256-CFB + 混淆
  • 架构: C/S架构,支持多种代理模式

性能指标

  • 延迟: ~0.3-0.8ms
  • 吞吐: ~2-6 Gbps
  • CPU占用: 中等
  • 内存占用: ~20-100MB

优劣势

优势: 开发维护简单,跨平台,内置加密混淆 ❌ 劣势: GC延迟抖动,协议相对单一,性能中等


3. caddy

底层技术

  • 实现语言: Go语言
  • 定位: Web服务器 + 反向代理
  • 特色: 自动HTTPS,插件化架构
  • HTTP版本: 原生支持HTTP/1.1、HTTP/2、HTTP/3

性能指标

  • 延迟: ~0.5-2ms (HTTP处理开销)
  • 吞吐: ~1-4 Gbps
  • CPU占用: 中高(HTTP解析开销)
  • 内存占用: ~50-200MB

优劣势

优势: 自动TLS证书,配置简单,Web功能强大 ❌ 劣势: 主要面向HTTP,非HTTP代理功能有限


4. ehco

底层技术

  • 实现语言: Go语言
  • 专门用途: 网络中继和流量转发
  • 特色: 支持WebSocket隧道,多种传输层
  • 架构: 轻量级转发器

性能指标

  • 延迟: ~0.2-0.6ms
  • 吞吐: ~3-8 Gbps
  • CPU占用: 低
  • 内存占用: ~10-50MB

优劣势

优势: 轻量级,专注转发,支持WebSocket隧道 ❌ 劣势: 功能相对简单,生态不如主流工具


5. gost

底层技术

  • 实现语言: Go语言
  • 架构: 链式代理架构,多级转发
  • 协议支持: HTTP/SOCKS/SS/V2Ray/Trojan等全协议
  • 特色: 插件系统,配置文件支持

性能指标

  • 延迟: ~0.5-1.2ms
  • 吞吐: ~1-5 Gbps
  • CPU占用: 中高
  • 内存占用: ~30-150MB

优劣势

优势: 协议最全,链式转发,功能丰富,配置灵活 ❌ 劣势: 性能中等,资源占用较高,复杂性高


6. socat

底层技术

  • 实现语言: C语言
  • 架构: 单进程,epoll多路复用
  • 定位: 通用数据中继工具
  • 特色: 支持各种socket类型和协议

性能指标

  • 延迟: ~0.1-0.3ms
  • 吞吐: ~3-8 Gbps
  • CPU占用: 低
  • 内存占用: ~5-20MB

优劣势

优势: 轻量稳定,资源占用低,协议支持丰富 ❌ 劣势: 单线程瓶颈,功能相对基础,无高级代理功能


7. realm

底层技术

  • 实现语言: Rust
  • 异步框架: tokio异步运行时
  • 内存管理: 零成本抽象,编译时内存安全
  • 网络库: 高性能异步网络栈

性能指标

  • 延迟: ~0.2-0.5ms
  • 吞吐: ~8-15 Gbps
  • CPU占用: 低
  • 内存占用: ~10-50MB

优劣势

优势: 高性能,内存安全,资源占用低 ❌ 劣势: 功能简单,生态较新,开发难度高


8. v2ray

底层技术

  • 实现语言: Go语言
  • 架构: 模块化设计,路由分流
  • 协议: VMess/VLESS/Shadowsocks等
  • 特色: 强大的路由和分流功能

性能指标

  • 延迟: ~0.8-2ms
  • 吞吐: ~1-4 Gbps
  • CPU占用: 中高(加密和路由开销)
  • 内存占用: ~50-200MB

优劣势

优势: 功能强大,路由灵活,协议先进,抗封锁能力强 ❌ 劣势: 配置复杂,性能开销大,学习成本高


9. iperf3

底层技术

  • 实现语言: C语言
  • 用途: 网络性能测试工具
  • 测试模式: TCP/UDP带宽测试
  • 架构: 客户端-服务器模式

性能指标

  • 延迟: 测试工具,不适用
  • 吞吐: 能测试到线速
  • 作用: 网络性能基准测试

优劣势

优势: 标准测试工具,结果准确,功能专业 ❌ 劣势: 仅用于测试,非生产转发工具


10. haproxy

底层技术

  • 实现语言: C语言
  • 架构: 事件驱动,单进程多线程
  • 定位: 专业负载均衡器
  • 特色: 高级负载均衡算法,健康检查

性能指标

  • 延迟: ~0.1-0.5ms
  • 吞吐: ~10-40 Gbps
  • CPU占用: 低-中
  • 内存占用: ~20-100MB

优劣势

优势: 专业LB功能,性能极高,稳定性好,企业级 ❌ 劣势: 主要面向HTTP/TCP LB,代理功能有限


11. wstunnel

底层技术

  • 实现语言: Rust
  • 特色: WebSocket隧道专用工具
  • 用途: 通过WebSocket传输TCP/UDP流量
  • 场景: 穿越防火墙和代理

性能指标

  • 延迟: ~0.5-1.5ms (WebSocket开销)
  • 吞吐: ~2-6 Gbps
  • CPU占用: 中(WebSocket编解码)
  • 内存占用: ~15-60MB

优劣势

优势: WebSocket伪装好,穿透能力强 ❌ 劣势: WebSocket开销,功能单一


12. shadowsocks

底层技术

  • 实现语言: 多种(Python/C/Go/Rust)
  • 加密: 多种对称加密算法
  • 协议: SOCKS5代理 + 加密传输
  • 特色: 简单高效的加密代理

性能指标(以ss-rust为例)

  • 延迟: ~0.3-0.8ms
  • 吞吐: ~3-10 Gbps
  • CPU占用: 低-中
  • 内存占用: ~10-50MB

优劣势

优势: 简单高效,加密强度好,多语言实现 ❌ 劣势: 功能单一,易被检测,协议相对简单


13. tinyPortMapper

底层技术

  • 实现: 轻量级端口映射工具
  • 用途: 简单的端口转发和映射
  • 特色: 极简设计,资源占用最小

性能指标

  • 延迟: ~0.1-0.4ms
  • 吞吐: ~5-12 Gbps
  • CPU占用: 极低
  • 内存占用: ~2-10MB

优劣势

优势: 极简轻量,性能好,资源占用最小 ❌ 劣势: 功能极其有限,无高级特性


14. prometheus node exporter

底层技术

  • 实现语言: Go语言
  • 用途: 系统监控指标收集
  • 架构: HTTP服务器,暴露metrics接口
  • 作用: 监控系统性能指标

性能指标

  • 延迟: 监控工具,不适用
  • 资源占用: ~10-30MB
  • 作用: 配合Prometheus做监控

优劣势

优势: 标准监控工具,指标全面 ❌ 劣势: 仅用于监控,非转发工具


综合性能排序

纯转发性能 (高到低)

  1. iptables: 接近线速
  2. haproxy: 10-40 Gbps
  3. realm: 8-15 Gbps
  4. tinyPortMapper: 5-12 Gbps
  5. socat: 3-8 Gbps
  6. ehco: 3-8 Gbps
  7. shadowsocks: 3-10 Gbps
  8. brook: 2-6 Gbps
  9. wstunnel: 2-6 Gbps
  10. gost: 1-5 Gbps
  11. v2ray: 1-4 Gbps
  12. caddy: 1-4 Gbps

功能丰富度 (高到低)

  1. gost: 全协议支持,链式转发,配置最灵活
  2. v2ray: 路由分流,多协议,功能强大
  3. caddy: Web服务器功能,自动HTTPS
  4. haproxy: 专业负载均衡,健康检查
  5. brook: 基础代理功能,简单易用
  6. shadowsocks: 加密代理,简单高效
  7. ehco: 转发专用,WebSocket支持
  8. wstunnel: WebSocket隧道专用
  9. socat: 通用数据中继
  10. realm: 基础转发
  11. tinyPortMapper: 极简端口映射
  12. iptables: 基础包转发

资源占用 (低到高)

  1. iptables: 几乎无开销
  2. tinyPortMapper: 2-10MB
  3. socat: 5-20MB
  4. realm: 10-50MB
  5. shadowsocks: 10-50MB
  6. ehco: 10-50MB
  7. wstunnel: 15-60MB
  8. brook: 20-100MB
  9. haproxy: 20-100MB
  10. gost: 30-150MB
  11. caddy: 50-200MB
  12. v2ray: 50-200MB

VPN业务选型建议

高性能场景

推荐组合: iptables + realm + 监控

  • iptables做纯转发
  • realm处理需要代理的流量
  • prometheus监控性能

复杂代理场景

推荐: gost (继续使用)

  • 协议支持最全面
  • 链式转发无可替代
  • 配置灵活,功能丰富

特定场景优化

  • WebSocket隧道: wstunnel
  • 负载均衡: haproxy
  • Web代理: caddy
  • 简单转发: socat/realm
  • 监控: prometheus + node_exporter

不建议用于生产

  • iperf3: 仅测试工具
  • tinyPortMapper: 功能过于简单
  • prometheus node exporter: 仅监控工具

WordPress使用nginx反向代理并且开启SSL,导致前台样式丢失,后台无法登录的解决办法

如题,使用nginx对WordPress进行反向代理,最终出现了两个情况。

网站首页能正常访问,但是样式丢失,浏览器查看网络情况,发现样式请求的依然是http资源。
管理后台无法访问,提示重定向次数太多。
解决方法如下
一、强制开启SSL
找到WordPress所在目录,如【/www/wwwroot/192.168.1.135】,修改wp-config.php,加入如下代码,注意填写自己的域名。

$_SERVER[‘HTTPS’] = ‘on’;
define(‘FORCE_SSL_ADMIN’, true);
define(‘FORCE_SSL_LOGIN’, true);
define(‘WP_HOME’, ‘https://xxxxx.com’);
define(‘WP_SITEURL’, ‘https://xxxxx.com’);
此时网站前台能正常访问,样式正常。管理后台能访问,但是丢失样式。

接着进行第二部操作。

二、强制跳转https
找到WordPress所在目录,修改wp-includes目录下的functions.php文件。
找到以下代码(大概在第8行)

require( ABSPATH . WPINC . ‘/option.php’ );
在下方添加以下代码:

add_filter(‘script_loader_src’, ‘agnostic_script_loader_src’, 20,2); function agnostic_script_loader_src($src, $handle) { return preg_replace(‘/^(http|https):/’, ”, $src); }
add_filter(‘style_loader_src’, ‘agnostic_style_loader_src’, 20,2); function agnostic_style_loader_src($src, $handle) { return preg_replace(‘/^(http|https):/’, ”, $src); }
修改后重启WordPress,一切正常。

Cloudflare搭建DDNS(脚本版)

自建DDNS解决动态IP服务器访问问题
  • 把域名接入cloudflare

  • 获取Global API Key

  • 设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)

  • 下载 DDNS 脚本

  • 修改 DDNS 脚本并补充相关信息

  • 设置定时任务

把域名接入cloudflare

打开cloudflare,登陆账号添加网站按照提示操作

获取Global API Key

访问 https://dash.cloudflare.com/profile在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来 ,在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来

1
设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)

添加一条A记录,例如:hkt.test.com,Proxy status设置成DNS only

2
下载 DNNS 脚本
curl https://raw.githubusercontent.com/aipeach/cloudflare-api-v4-ddns/master/cf-v4-ddns.sh > /root/cf-v4-ddns.sh && chmod +x /root/cf-v4-ddns.sh
修改 DDNS 脚本并补充相关信息
vim cf-v4-ddns.sh
# incorrect api-key results in E_UNAUTH error
# 填写 Global API Key
CFKEY=

# Username, eg: user@example.com
# 填写 CloudFlare 登陆邮箱
CFUSER=

# Zone name, eg: example.com
# 填写需要用来 DDNS 的一级域名
CFZONE_NAME=

# Hostname to update, eg: homeserver.example.com
# 填写 DDNS 的二级域名(只需填写前缀)
CFRECORD_NAME=
设置定时任务

首次运行脚本,输出内容会显示当前IP,进入cloudflare查看 确保IP已变更为当前IP

./cf-v4-ddns.sh

定时任务

crontab -e
*/2 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1

# 如果需要日志,替换上一行代码
*/2 * * * * /root/cf-v4-ddns.sh >> /var/log/cf-ddns.log 2>&1

Amazon Route 53如何实现自动故障转移和恢复

Amazon Route 53 中,你可以使用 健康检查(Health Checks)+ 失效转移(Failover Routing) 方式来实现自动故障转移和恢复。以下是详细步骤:


📌 1. 创建健康检查

步骤

  1. 登录 AWS 控制台,进入 Route 53 控制面板。
  2. 在左侧导航栏,选择 Health Checks(健康检查)
  3. 点击 Create health check(创建健康检查)
  4. 填写健康检查信息:
    • 名称:填写一个唯一的名称,例如 MyServerHealthCheck
    • Monitor Endpoint(监测端点)
      • 选择 IP 地址,输入要监测的服务器 IP
      • 端口号(例如 80443
      • 选择健康检查类型
        • HTTP / HTTPS(建议选择 HTTPS 以提高安全性)
    • Failure Threshold(失败阈值):设置触发故障的次数(默认 3 次)。
    • Request Interval(请求间隔):建议 30s(默认)。
    • Invert Health Check Status(反转健康检查状态)(可选):如果希望状态反向,可以选中。
  5. 配置 SNS 通知(可选):
    • 你可以启用 SNS 以在服务器宕机或恢复时收到通知。
  6. 点击 Create(创建)

🔹 ✅ 这样,Route 53 会定期检查服务器 IP 是否正常工作。如果该 IP 宕机,健康检查会标记为 unhealthy(不健康)。


📌 2. 配置 DNS 记录进行自动故障转移

  1. Route 53 控制台,进入 你的域名
  2. 选择 Record Sets(记录集),点击 Create Record Set(创建记录集)
  3. 配置 A 记录(IPv4)或 AAAA 记录(IPv6),针对每个 IP 设置如下:
    • Name(名称):留空或填写子域名(如 www)。
    • Type(类型):A(IPv4)或 AAAA(IPv6)。
    • Alias(别名):No。
    • TTL(缓存时间):建议 60 秒(短 TTL 可加快故障切换)。
    • Routing Policy(路由策略)
      • 选择 Failover(故障转移)。
    • Failover Record Type(故障转移记录类型)
      • 对于 主 IP(例如 192.168.1.1),选择 Primary(主)。
      • 对于 备用 IP(例如 192.168.1.2),选择 Secondary(备用)。
    • Associate with Health Check(关联健康检查)
      • 选中 Yes,并选择 之前创建的健康检查
  4. 重复上述步骤,为所有服务器 IP 添加健康检查和故障转移设置。

📌 3. 故障转移逻辑

  • 正常情况:Route 53 会解析所有 健康(healthy) 状态的 IP。
  • 某个 IP 宕机:Route 53 自动从解析列表中移除该 IP,并将流量转移到其他健康 IP。
  • IP 恢复:Route 53 自动重新解析该 IP,让它恢复上线。

📌 4. 其他优化(可选)

使用 Weighted Routing(加权路由)

如果你想让流量分配到多个 IP,但仍然具有故障转移功能,可以使用 加权路由(Weighted Routing)+ 健康检查

  • 配置 每个 IP 的权重,如 30%、30%、40%
  • 仍然关联 健康检查,宕机时 Route 53 自动调整流量分配

✅ 总结

  1. 创建 Route 53 健康检查,监控服务器 IP 是否存活。
  2. 在 DNS 解析中设置故障转移(Failover Routing),主服务器宕机时自动切换到备用 IP。
  3. 当 IP 恢复后,Route 53 会自动重新解析,让其恢复上线。

这样,你就可以实现 自动下线宕机 IP,并在服务器恢复后 自动上线。🚀

rockylinux8 批量替换文件夹下面所有html的文件的指定网址

Rocky Linux 8 上,可以使用 sed 命令批量替换指定网址,并配合 find 命令处理所有 HTML 文件。

示例命令:

find /path/to/directory -type f -name "*.html" -exec sed -i 's|旧网址|新网址|g' {} +

命令解析:

  • find /path/to/directory -type f -name "*.html"
    • 查找 /path/to/directory 目录下所有 .html 文件。
  • -exec sed -i 's|旧网址|新网址|g' {} +
    • 使用 sed 进行 就地修改(-i),将 旧网址 替换为 新网址
    • s|旧网址|新网址|g:替换所有匹配的内容。
    • {} 代表 find 结果的文件名,+ 使 find 传递多个文件,提高效率。

示例

假设你要替换 /var/www/html 目录下所有 HTML 文件里的 http://old.example.comhttps://new.example.com,命令如下:

find /var/www/html -type f -name "*.html" -exec sed -i 's|http://old.example.com|https://new.example.com|g' {} +

如果你需要更强大的替换功能,可以用 perl

find /var/www/html -type f -name "*.html" -exec perl -pi -e 's|http://old.example.com|https://new.example.com|g' {} +

注意:

  • 建议先备份文件,以防替换出错:
    cp -r /var/www/html /var/www/html_backup
    
  • sed 可能对一些特殊字符(如 /&)敏感,可以用 | 代替 / 作为分隔符,避免转义符 \

如果有更复杂的需求,可以告诉我具体情况,我帮你优化命令。 😊

Linux 查看网卡实时网速以及 nload 命令详解

1.使用 nload 工具查看

复制代码
安装工具

yum install -y epel-release #先安装epel软件库
yum install -y nload #再安装nload

# 查看所有网卡实时网速
sudo nload -m

# 查看指定网卡实时网速
sudo nload eth0 -m
复制代码

 

nload 默认分为上下两块:
上半部分:Incoming也就是进入网卡的流量
下半部分:Outgoing,也就是从这块网卡出去的流量

参数详情表

参数 描述
Curr 当前流量
Avg 平均流量
Min 最小流量
Max 最大流量
Ttl 总和流量

 

 

注:小写代表bit,大写代表byte

Bit(比特)是存储单元;Byte(字节)是计量单位,查看网络时常用Byte

1Byte=8Bit
比如:网速计算
我们常说的家庭网速为10M,100M,其值为带宽,转换为Byte为
下载速度从理论上来说,应该是带宽的八分之一
10M=1280kb/s 100M=12800kb/s=12.5Mb/s

 

参考地址:https://blog.csdn.net/m0_58292366/article/details/125145915

 

 

2.通过 ifconfig 实时查看

watch -n 1 ifconfig

 

3.通过脚本查看

复制代码
#!/bin/bash

awk 'BEGIN{
OFMT="%.3f";
devf="/proc/net/dev";
while(("cat "devf) | getline)
{
    if($0 ~ /:/ && ($10+0) > 0)
    {
        split($1,tarr,":");
        net[tarr[1]]=$10+tarr[2];
        print tarr[1],$10+tarr[2];
    }
}
close(devf);

icount=0
while((system("sleep 1")) >=0)
{
   icount +=1
    system("clear");
    while( getline < devf )
    {
        if($0 ~ /:/ && ($10+0) > 0)
            {
                split($1,tarr,":");
                if(tarr[1] in net)
                {
                    print tarr[1],":",($10+tarr[2]-net[tarr[1]])*8/1024,"kb/s";
                    net[tarr[1]]=$10+tarr[2];
                }      
            }   
    }
    close(devf);
   if (icount>100)
    {break;}
}
}'
复制代码
icount=计数100次之后自动退出。

 

4.通过下载源文件,本地编译安装 nload

复制代码
yum install wget  #安装wget下载工具
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz  #下载 nload-0.7.4.tar.gz
tar zxvf nload-0.7.4.tar.gz  #解压这个压缩包
cd nload-0.7.4  #进入解压后的文件目录
yum install gcc gcc-c++ ncurses-devel  #安装依赖库
./configure #检测你的安装平台的目标特征的
make  #编译
make install  #安装
复制代码

 

5.scp 命令测试

A 机器请求 B 机器的数据,经常遇到超时。A机器带宽可能有限制,排查带宽的时候,又不能安装程序。这时候可以考虑 scp 命令。

通过 在 A 机器上 从B 机器上拉去文件,观察是否能正常拉取,以及拉取完成 的耗时,平均网速,来知晓机器带宽情况。

 

scp upchina@172.16.9.227:/usr/local/app/taf/app_log/algo/FactorTsbReadServer/2530318728.log  abc.log

 

scp命令解释。

scp 将   B机器文件,拷贝到  本机

scp    用户名@机器地址+目标文件地址+文件名    本机目录+本机文件名

scp username@remote:/path/to/remote/file /path/to/local/directory

 

 

scp 命令可以参考:https://www.cnblogs.com/abel-he/p/16502825.html

各种转发协议方案对比 gost,iptables,brook,caddy,ehco,socat,realm,v2ray,iperf3,haproxy,tinyportmapper

这些工具各有优劣,适用于不同的场景。下面是对它们的 优缺点稳定性 的评价:


1. gost (GO Simple Tunnel)

优点:

  • 多协议支持:支持 TCP/UDP/SOCKS5/HTTP/HTTPS/Relay 等多种协议。
  • 高性能:基于 Go 语言,性能较好,占用资源较低。
  • 配置灵活:支持链式代理,适合复杂的代理环境。

缺点:

  • 文档较少:配置相对复杂,官方文档不够详细。
  • UDP 可能不稳定:在某些网络环境下 UDP 转发不稳定。

📊 稳定性:★★★★☆(一般较稳定,但复杂配置可能有坑)


2. iptables

优点:

  • 内核级转发,性能最高,几乎无额外开销。
  • 稳定性极高,几乎不会崩溃。
  • 全局生效,可以用于系统所有流量。

缺点:

  • 配置复杂,新手不容易上手。
  • 难以进行高级协议解析,仅限于简单的端口转发和 NAT 规则。
  • 不支持用户级转发,只能在 root 权限下使用。

📊 稳定性:★★★★★(极高)


3. brook

优点:

  • 轻量级,占用资源少,适合小型服务器或低性能设备。
  • 自带加密,适合防火墙较严的环境。
  • 支持 TCP/UDP,适用于 P2P 和流媒体等应用。

缺点:

  • 功能较少,主要用于简单代理,不适合复杂转发需求。
  • 不支持链式代理,难以灵活搭配其他代理工具。

📊 稳定性:★★★☆☆(适用于小型环境,但大流量情况下可能不稳定)


4. caddy

优点:

  • 主要是 Web 服务器,自带 HTTPS,适合搭配反向代理。
  • 配置简洁,适合 HTTPS + 反向代理 + WebSocket 场景。
  • 支持自动 TLS 证书管理,减少配置复杂度。

缺点:

  • 不适合复杂端口转发,更适合作为 Web 服务器或 HTTP 反向代理。
  • UDP 支持有限,不适合 UDP 代理。

📊 稳定性:★★★★★(适用于 Web 代理,其他用途受限)


5. ehco

优点:

  • 轻量级,基于 Rust 开发,资源占用低。
  • 支持 TCP/UDP,适用于流量转发和负载均衡。
  • 简单易用,仅需一条命令即可完成端口转发。

缺点:

  • 功能单一,主要用于 TCP/UDP 端口转发,不支持复杂协议。
  • 开发较新,生态较小,社区支持不如其他成熟方案。

📊 稳定性:★★★★☆(相对稳定,但功能有限)


6. socat

优点:

  • 功能强大,支持 TCP/UDP/Unix Socket/TTY/SSL 等各种协议。
  • 轻量级,仅依赖系统本身,几乎无额外资源消耗。
  • 非常灵活,适用于端口转发、协议转换、数据流重定向等。

缺点:

  • 配置复杂,参数繁琐,不易上手。
  • 不支持流量控制,可能导致大流量下不稳定。

📊 稳定性:★★★☆☆(轻量但大流量下不够稳定)


7. realm

优点:

  • 专注于流量转发,支持 TCP/UDP/HTTP/SOCKS5。
  • 支持多路复用,适合高并发代理环境。
  • 有较好的文档,上手相对容易。

缺点:

  • 生态较小,社区支持不如 v2ray/gost。
  • 开发较新,长期稳定性待观察

📊 稳定性:★★★★☆(较为稳定,但长期可靠性待观察)


8. v2ray

优点:

  • 功能强大,支持 VMess/VLESS/SOCKS/HTTP/MTProto 等多种协议。
  • 抗封锁能力强,适用于防火墙环境。
  • 强大的路由功能,可以精细控制流量。

缺点:

  • 配置复杂,JSON 规则较多,学习成本高。
  • 资源占用较高,比 gost/brook/socat 等稍重。

📊 稳定性:★★★★★(非常稳定,适合长期使用)


9. iperf3

优点:

  • 专门用于网络性能测试,可以测试 TCP/UDP 速率、丢包率等。
  • 支持多种模式,可以进行单向、双向、并发测试。

缺点:

  • 不是端口转发工具,只能用于测速,不能用于代理或 NAT。

📊 稳定性:★★★★★(作为测试工具很稳定,但不适合端口转发)


10. haproxy

优点:

  • 高性能负载均衡,适用于高并发代理和服务器负载均衡。
  • 支持 TCP/HTTP/HTTPS/WebSocket,适用于 Web 代理和 API 网关。
  • 稳定性极高,企业级应用广泛使用。

缺点:

  • 配置较复杂,相比 caddy、nginx 需要更多调整。
  • 不适用于 UDP 转发,仅适用于 TCP 和 HTTP/S。

📊 稳定性:★★★★★(非常稳定,适用于大规模代理)


11. tinyPortMapper

优点:

  • 超轻量级,占用资源极少。
  • 简单易用,一条命令即可完成端口转发。

缺点:

  • 功能极少,仅支持基础端口映射。
  • 不支持高级协议或负载均衡

📊 稳定性:★★★☆☆(适用于小型场景,但功能有限)


综合对比表

工具 优点 缺点 适用场景 稳定性
gost 多协议、链式代理 复杂 多协议代理 ★★★★☆
iptables 内核级,极快 配置难 端口转发 ★★★★★
brook 轻量,加密 功能少 轻量级代理 ★★★☆☆
caddy 易用,自动 HTTPS 仅限 HTTP Web 反代 ★★★★★
ehco 轻量,支持 TCP/UDP 生态小 简单转发 ★★★★☆
socat 强大,协议广泛 复杂 端口转发 ★★★☆☆
realm 流量复用,文档好 生态小 TCP/UDP 转发 ★★★★☆
v2ray 功能强,抗封锁 配置复杂 防火墙环境 ★★★★★
iperf3 测速工具 不能代理 网络测试 ★★★★★
haproxy 高性能负载均衡 不支持 UDP 负载均衡 ★★★★★
tinyPortMapper 超轻量 功能少 简单端口转发 ★★★☆☆

如果你有具体的使用需求,我可以推荐最适合的方案!😊

一键回程测试脚本:backtrace 三网回程路由测试使用教程

首先简单介绍一下 backtrace 这个脚本,这个脚本是在 GitHub 上看到的,目前仅有的介绍其实就是一个 GitHub 项目主页。

GitHub 主页:https://github.com/zhanghanyun/backtrace

目前作者没有添加更多介绍,只有简单的一句“三网回程路由测试”。

二、backtrace 一键测试脚本使用教程

backtrace 一键测试脚本使用也很简单,登录 VPS 之后输入下面的命令即可:

curl https://raw.githubusercontent.com/zhanghanyun/backtrace/main/install.sh -sSf | sh

输入之后回车即可开始测试。

如何限制rockyLinux8网卡速度

在 Rocky Linux 8 中,我们可以使用 tc (traffic control) 命令来实现端口限速。以下是具体步骤:

  1. 首先安装必要的工具:
bash
dnf install -y iproute-tc
  1. 基本的限速命令格式(以限制下载速度为例):
bash
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
  1. 对特定端口限速的完整示例(使用 iptables 配合 tc):
bash
# 创建新的 tc 规则
tc qdisc add dev eth0 root handle 1: htb default 10

# 创建限速类
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit ceil 1mbit

# 使用 iptables 标记特定端口的流量
iptables -A OUTPUT -p tcp --sport 80 -j MARK --set-mark 1
iptables -A INPUT -p tcp --dport 80 -j MARK --set-mark 1

# 将标记的流量匹配到限速类
tc filter add dev eth0 protocol ip parent 1: prio 1 handle 1 fw flowid 1:1

参数说明:

  • rate: 平均速率
  • burst: 突发流量大小
  • latency: 数据包延迟
  • mbit: 兆比特/秒
  • kbit: 千比特/秒

删除限速规则:

bash
tc qdisc del dev eth0 root

查看当前限速规则:

bash
tc -s qdisc ls dev eth0

需要注意:

  1. 将 eth0 替换为您实际的网络接口名称
  2. 根据实际需求调整速率值
  3. 建议先测试小流量,再逐步调整参数

    如果要限速 1G,需要修改 rate 和 burst 的值,这里给出命令:

    bash
    tc qdisc add dev eth0 root tbf rate 1gbit burst 1mbit latency 400ms

    解释一下参数:

    • rate 1gbit:限制速率为 1 Gigabit/秒
    • burst 1mbit:突发缓冲区设为 1 Megabit
    • latency 400ms:延迟保持 400 毫秒

    如果要查看是否生效:

    bash
    tc -s qdisc ls dev eth0

    如果要删除限速:

    bash
    tc qdisc del dev eth0 root

    如果要限速 500M,将 rate 值设为 500mbit:

    bash
    tc qdisc add dev eth0 root tbf rate 500mbit burst 500kbit latency 400ms

    参数说明:

    • rate 500mbit:限制速率为 500 Megabit/秒
    • burst 500kbit:突发缓冲区设为 500 Kilobit(一般设置为与 rate 对应的较小值)
    • latency 400ms:延迟保持 400 毫秒

    验证和管理命令:

    bash
    # 查看限速规则
    tc -s qdisc ls dev eth0

    # 如果要删除限速
    tc qdisc del dev eth0 root

    记得将 eth0 替换为您实际的网络接口名称。