Linux智能分流

简介: 由于公司开发人员需要,需要在本地路由系统(openwrt)上面实现分流,将访问GitHub的流量通过海外节点加速经过实验发现可以用两种方法实现 - iptables规则 - 路由策略特此记录,以供参考

环境准备

1、通过iptables实现智能分流

1.1 开启流量转发

$ cat /etc/sysctl.d/30-ipforward.conf
net.ipv4.ip_forward=1

net.ipv6.conf.all.forwarding = 1

net.ipv4.tcp_congestion_control=westwood

net.ipv4.tcp_syn_retries = 5

net.ipv4.tcp_synack_retries = 5

编辑完成后,执行以下命令使变动立即生效

$ sysctl -p

1.2 下载ip地址表

wget -c http://ftp.apnic.net/stats/apnic/delegated-apnic-latest

cat delegated-apnic-latest | awk -F '|' '/CN/&&/ipv4/ {print $4 "/" 32-log($5)/log(2)}' | cat > cn_rules.conf

1.3 创建ipset,将下载好的IP导入到ipset中

ipset create -n china hash:net maxelem 65536

for ip in $(cat cn_rules.conf); do ipset add china $ip; done

# 查看
ipset list china

1.4 创建路由策略

ip route add 0.0.0.0/0 dev tun0 table tunnel

ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table tunnel $ROUTE ; done

1.5 将符合规则的流量打上标记,并在mangle表中处理标记

# 打标记
iptables -t mangle -A PREROUTING -m set ! --match-set china dst -j MARK --set-mark 1

# GitHub访问加速
iptables -t mangle -R PREROUTING 1 -m set ! --match-set china dst -j MARK --set-mark 1

注:tun0网卡为连接海外节点的vpn隧道,具体部署再次不在赘述

2、通过策略路由实现智能分流

# GitHub加速
GATEWAY_IP=$(ip route|grep "default"|awk '{print $3}') # 网关IP
TUN_IP=$(ifconfig tun0 | awk -F '[ :]+' 'NR==2 {print $4}') # tun0网卡IP
ip route del default via "$GATEWAY_IP"
ip route add "$VPN_SERVER" via "$TUN_IP"

# 特殊ip段走网关的IP地址
ip route add "192.168.0.0/16" via "$GATEWAY_IP"
ip route add "172.16.0.0/16" via "$GATEWAY_IP"

for i in $(cat /usr/local/sdwan/config/cn_rules.conf)
do
    ip route add "$i" via "$GATEWAY_IP"
done

ip route del "0.0.0.0/1"
ip route add "0.0.0.0/1" via "$GATEWAY_IP"

注:此教程仅提供思路,具体实现方法请结合实际环境做调整

目录
相关文章
|
4月前
|
存储 弹性计算 人工智能
|
2月前
|
弹性计算 运维 自然语言处理
阿里云OS Copilot测评:重塑Linux运维与开发体验的智能革命
阿里云OS Copilot巧妙地将大语言模型的自然语言处理能力与操作系统团队的深厚经验相结合,支持自然语言问答、辅助命令执行等功能,为Linux用户带来了前所未有的智能运维与开发体验。
|
2月前
|
人工智能 运维 自然语言处理
当Linux遇上AI:探索操作系统中的智能新纪元
阿里云的OS Copilot是专为Linux打造的智能助手,利用大模型提供自然语言交互、命令辅助及运维优化。它简化编程任务,生成脚本框架,提供代码审查建议,适合开发者和运维人员。
346 0
当Linux遇上AI:探索操作系统中的智能新纪元
|
2月前
|
机器学习/深度学习 自然语言处理 运维
正式邀测! OS Copilot——一款基于大模型构建的 Linux 智能操作系统助手
重塑操作系统交互新体验,开启您的智能化系统管理之旅。
|
2月前
|
弹性计算 运维 自然语言处理
属于Basis运维的、在Linux平台上运行的大模型测评 OS Copilot智能助手测评
OS Copilot是阿里云为Linux打造的智能操作系统助手,基于大模型,助用户进行自然语言问答、命令执行和系统运维。它简化了Linux操作,适合新手和运维人员。测评者作为IT架构师,发现OS Copilot使非技术背景人员也能操作Linux,接入命令可在官方文档找到。测试显示,通过"co"命令可与OS Copilot交互,实现生产任务融合。该工具提高了工作效率,尤其是对于遗忘具体命令时,非常有帮助。文档清晰,适合生产环境使用,值得进一步探索。
64 0
|
存储 传感器 Linux
嵌入式Linux与数据库:构建智能的嵌入式系统
嵌入式系统已经成为我们日常生活中不可或缺的一部分,从智能家居设备到工业自动化,无处不在。在构建智能的嵌入式系统时,数据库扮演着关键的角色,为数据存储、检索和管理提供了强大的解决方案。本文将带您探索嵌入式Linux系统中使用数据库的重要性、方法和实际应用。
275 1
|
人工智能 并行计算 Cloud Native
关于 ANCE OS 兼容性评估 & Linux 智能全栈调优 KeenTune 介绍 | 第 93-94 期
了解兼容性评估工具核心特性、基本工作原理和使用方法及熟悉 Linux 全栈性能调优。
关于 ANCE OS 兼容性评估 & Linux 智能全栈调优 KeenTune 介绍 | 第 93-94 期
|
域名解析 网络协议 Linux