RouterOS 实现电信移动家宽分流策略

RouterOS 实现电信移动家宽分流策略

为了充分利用家里的两条家用宽带,一条电信 1 Gbps 带动态公网,一条移动 500 Mbps 上下对等移动大内网

用 RouterOS 进行 dst 选路分流,让访问移动国内IP的流量 route 到移动出口上,让其他流量走到电信出口

需要准备的东西:

  1. RouterOS

  2. 国内移动 IP 地址段( cmcc 的地址段真的少的可怜 awa ,目前就 53 条)

    可以在这里搞到

    https://ispip.clang.cn/

  3. 两条出口线路

  4. reserved ip 地址段,不走分流策略的 ip,比如所有内网地址,10.0.0.0/8, 192.168.0.0/16,255.255.255.255 等等,不限于这些,根据个人需要添加

第一步

​ 导入移动IP地址段到 ROS

​ 最好把地址段整成 .rsc 格式,直接在 ROS 中 import ipset.rsc (像下面这样)

1
2
3
4
/ip firewall address-list
remove [find where list=dst-cmcc-china]
add address=x.x.x.x/x list=dst-cmcc-china
add address=x.x.x.x/x list=dst-cmcc-china

​ 添加 reserved ip 地址段到 Address List

第二步

​ 添加 prerouting chain

​ 勾选 Connection NAT State 为 !dstnat2022-02-07_16-46.png

​ Advanced Dst. Address List: !reserved2022-02-07_16-46_1.png

​ action 设置为 jump 到 dst-internet 进行分流

第三步

​ 在 mangle 中添加 dst-internet (名字自己取) chain 来 filter 出 Dst.Address List 为 dst-cmcc-china 的流量,mark routing cmcc

​ 然后添加 routing mark 为 cmcc 的路由到移动的出口 不勾选 Passthrough

​ 第二条 chain (和上一条一样名字) 非 dst-cmcc-china 要 accept,走默认路由,即走电信出口

​ mangle 还是需要根据自己的实际需要去调整的

然后就搞定晒,可以测速体验一下咯,在 speedtest.net 选择移动测速点的话就会用移动出口啦

访问国内移动 IP 就会走移动出口啦

今日复习知识:死锁的四个必要条件

1、互斥条件:一个资源每次只能被一个进程使用;

2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放;

3、不剥夺条件:进程已获得资源,在未使用完之前,不能强行剥夺;

4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系;

如果四个条件都满足,那么死锁的产生是必然的

Tmux终端复用器的使用说明

tmux.png

Tmux 一款终端复用器(terminal multiplexer),高效便捷实用

可以做到什么?

  1. 会话与窗口解绑,当我们关闭窗口时(exit 或者关闭一个 terminal),不关闭 tmux 的会话 (session),运行中的进程也不会被杀死,可以在一台 Linux 机子上用一个会话跑多个 tmux 会话窗口运行多个命令行程序
  2. 可以 vertical 和 horizon 拆分窗口,配置好 config 后可以在多个窗口中自由切换,甚至可以多人共享会话
  3. 支持 attach 进上一次的会话,即保留工作状态 (session),让我们工作的时候不需要繁琐地进入工作环境,支持保留多个工作状态

安装
1
2
# Manjaro
yay -S tmux

常用指令

新建 session

1
tmux

上面的命令会直接创建一个 session,默认会生成一个数字编号,可以通过 $ tmux ls来看到

我们也可以在 new session 的时候直接指定这个 session 的名字,来方便我们记忆和回到这个 session

1
tmux new -s <session-name>

离开 session

1
tmux detach

查看 session列表

1
tmux ls

进入 session

1
2
3
4
#进入上一个 session
tmux attach
#进入指定 session
tmux attach -t <session-name>

切换 session

1
2
3
4
#切换到上一个 session
tmux switch
#切换到指定 session
tmux switch -t <session-name>

杀死 session

1
2
3
4
#杀死上一个 session
tmux kill
#杀死指定 session
tmux kill -t <session-name>

增加横向窗口

1
tmux split-windows -h

去掉 -h 就是增加纵向窗口

多 panel 时

技巧-选中并复制单个 panel 中的文字

Shift + Alt + 鼠标框选 再复制就可以啦

启用鼠标滚动

按 Ctrl B 再按冒号 : 进入命令行模式

1
set -g mouse on

就可以直接通过滚轮在不通窗口上下翻页啦

使用本地 KMS 服务器激活 Windows 系统

在本地部署了 kms 服务器,在 windows 中激活系统的操作

设置本地 kms 服务器

1
slmgr /skms <ip-address>

使用 kms 服务器自动激活系统

1
slmgr /ato

查看系统过期时间

1
slmgr /xpr

Alpine 的一些指令

a4y9b-enpz8.png

alpine 指令

1
alpine-tun-tool

重启

1
rc-service networking restart 

管理 alpine 启动项 添加 frr 开机启动

1
rc-update add frr

/etc/wireguard 存放了 wireguard 接口配置

/etc/udp2raw

mtu 1360

AllowIPS: x.x.x.x/x

启用 bfd: 在/etc/frr/daemons 修改 bfd=yes

进入 frr 指令

1
vtysh

显示 frr bgp 状态

1
show bgp summary

显示 bgp 中的路由

1
do show ip bgp

前面带 * 号的是有效路由,不带的是无效路由

用 curl 下载东西

1
curl -O https://www.XXXX.tar.gz

使用 dpkg 在 Arch Linux 上安装 deb 包

Debian package manager

有时候 Aur 源中没有我们想要的软件,但是你找到了一个适用于 Arch 的 deb 包,我们就可以用下面这个Debian package manager 来安装管理这些deb包

常用指令
  • 安装一个包 - Install a package:
1
dpkg -i path/to/file.deb
  • 删除一个包 - Remove a package:
1
dpkg -r package_name
  • 列出所有已安装的 deb 包 - List installed packages:
1
dpkg -l [pattern]
  • 列出该包的目录信息 - List a package’s contents:
1
dpkg -L package_name
fetchscreen 可以显示当前 Linux 系统信息
1
fetchscreen
1
yay -S fetchscreen

2022-01-20_21-52.png

尝试自己起了一个图床,感到图床还是一个比较需要维护的服务,暂定以后再起;同时感到公共图床已经能满足大部分需求了,还快,不需要自己管理维护,但是要忍受使用时的广告 awa

或者使用本地存储也是一个方案,但是图床服务也许确实有必要?

校验和计算 Openwrt 添加 frr 包

Debian 想要计算 md5 checksum 的话,可以安装 coreutils

1
apt install coreutils

计算md5:

1
md5sum <yourtarget>

Windows 计算检验和

1
certutil -hashfile  <文件名>  <hash类型>

Openwrt 计算 sha256,只需要:

1
sha256sum <yourtarget>

Openwrt 添加 frr

1
opkg update
1
opkg install frr frr-babeld frr-bfdd frr-bgpd frr-eigrpd frr-fabricd frr-isisd frr-ldpd frr-libfrr frr-nhrpd frr-ospf6d frr-ospfd frr-pbrd frr-pimd frr-ripd frr-ripngd frr-staticd frr-vrrpd frr-vtysh frr-watchfrr frr-zebra

如果 depoly 出来的网站效果没有发生变化,也许是浏览器缓存的问题

有近似的html和jss,浏览器认为服务器资源没有发生变化,不重新发送get请求获取新的资源

所以这时候就要清理当前页面的浏览器缓存

小Tips: 可以先 F12 或者 右键 inspect 打开控制台,然后右键刷新按钮

ClearCache.png

初出茅庐

第一次搭建自己的博客(终于出栈了)

以后终于可以在自己的博客里面写一些东西了

我会把新学到的东西的实践写到这上面

也会更新一些日常

同时也会把以前学到的知识和技巧同步到这上面来

巩固复习一下同时也便利大家和自己

一定要坚持下去!