- 利用pve lxc特性,建立透明网关与DNS解析服务器,占用资源小,性能高,稳定性好
- 将透明网关生成的非本地路由表直接导入ROS,利用ROS通过路由表进行分流
- 非本地路由表直接由透明网关进行访问,由tun网卡进行流量转发,理论上,性能更好
- DNS选取easymosdns项目,解决dns污染与分流问题
使用RouterOS,OSPF 和OpenWRT给国内外 IP 分流
使用 RouterOS,OSPF 和树莓派为国内外 IP 智能分流
/var/lib/vz/template/cache
#上传文件夹
取消特权容器勾选 其他配置根据自己实际情况设定
创建完成后容器,不要开机,进入对应容器的选项 勾选一下选项
- 嵌套
- nfs
- smb
- fuse
进入pve控制台,进入/etc/pve/lxc文件夹,修改对应的配置文件,添加以下内容
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
nano /etc/ssh/sshd_config
service ssh restart
timedatectl set-timezone Asia/Shanghai
# 追加本地语言配置
echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen
# 重新配置本地语言
dpkg-reconfigure locales
# 指定本地语言
export LC_ALL="zh_CN.UTF-8"
#中文的设置
apt install zsh git vim curl -y
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
nano ~/.zshrc
. /etc/zsh_command_not_found
#在文件末尾添加以上内容
source ~/.zshrc
#配置生效
我们右键刚才建立好的模板,完整复制一个lxc容器,网络地址修改为192.168.10.153
chmod +x dns.sh
./dns.sh
crontab -e
在文件末尾添加以下内容
0 5 * * * sudo truncate -s 0 /etc/mosdns/mosdns.log && /etc/mosdns/rules/update-cdn
#每天5点升级域名库并清除mosdns日志文件
- 调整日志级别
- 开启缓存
- 添加统计插件
- 添加dns记录详细解析
- 开启api
sudo mosdns service restart
chmod +x installclash.sh
./installclash.sh
至此,透明网关安装完成,我们接下来需要一份透明配置
# 订阅地址版本,需要将节点列表里的url换为你的订阅地址,支持那种打开是文件型的订阅地址
interface-name: eth0
ipv6: false
tun:
enable: true
stack: system
auto-detect-interface: false
port: 7891
socks-port: 7890
redir-port: 7893
allow-lan: true
profile:
# open tracing exporter API
tracing: true
mode: Rule
external-ui: /home/ui
secret: '123456789'
external-controller: 0.0.0.0:9090
log-level: silent
proxy-providers:
节点列表:
type: http
path: ./profiles/proxies/foo.yaml
url:
interval: 3600
filter: '倍率:1|专线'
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300
proxy-groups:
- name: PROXY
type: select
url: http://www.gstatic.com/generate_204
interval: 3600
use:
- 节点列表
proxies:
- DIRECT
rules:
- MATCH,PROXY
# 本地文件版本,提前将下载或者转换好的配置文件重命名为1.yaml,放入/etc/clash/文件夹
interface-name: eth0
ipv6: false
tun:
enable: true
stack: system
auto-detect-interface: true
port: 7891
socks-port: 7890
redir-port: 7893
allow-lan: true
profile:
# open tracing exporter API
tracing: true
mode: Rule
external-ui: /home/ui
secret: '123456789'
external-controller: 0.0.0.0:9013
log-level: silent
proxy-providers:
节点列表:
type: file
path: /etc/clash/1.yaml
filter: ''
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300
proxy-groups:
- name: PROXY
type: select
url: http://www.gstatic.com/generate_204
interval: 3600
use:
- 节点列表
proxies:
- DIRECT
rules:
- MATCH,PROXY
chmod +x installclash.sh
./installclash.sh
至此,透明网关安装完成,我们接下来需要一份透明配置
cd /home
chmod +x iplist.sh
赋予权限
./iplist.sh
执行程序
crontab -e
0 5 * * * /bin/bash /home/iplist.sh
修改bird2配置文件为以下内容 ,文件在/etc/bird/bird.conf
log syslog all;
router id 192.168.10.100;
protocol device {
scan time 60;
}
protocol kernel {
ipv4 {
import none;
export all;
};
}
protocol static {
ipv4;
include "routes4.conf";
}
protocol bgp {
local as 65531;
neighbor 192.168.10.5 as 65530;
source address 192.168.10.100;
ipv4 {
import none;
export all;
};
}
sudo systemctl enable clash
#开机启动
sudo systemctl start clash
#开始启动
sudo systemctl status clash
#状态查看
首先打开routing选项,在table选项卡下,添加名称为bypass的路由表,勾选fib完成后,执行下一步
/ip route
add distance=1 gateway=pppoe-out1 routing-table=bypass comment=pass
# 添加一条路由规则,距离为1,网关为pppoe-out1,路由表为bypass,注释为pass
/routing/bgp/connection
add name=clash local.role=ebgp remote.address=192.168.10.100 .as=65531 routing-table=bypass router-id=192.168.10.5 as=65530 multihop=yes
# 添加一个BGP连接,名称为clash,本地角色为ebgp,远程地址为192.168.10.100,自治系统号为65531,路由表为bypass,路由器ID为192.168.10.5,自治系统号为65530,启用多跳选项
/ip firewall mangle add action=accept chain=prerouting src-address=192.168.10.100
# 添加一个防火墙Mangle规则,动作为接受,链为prerouting,源地址为192.168.10.253
/ip firewall address-list add list=proxy address=192.168.10.32
# 添加一个地址列表,名称为proxy,包含地址192.168.10.32
# 该地址支持ip段 例如 192.168.10.1-192.168.10.255
/ip firewall mangle add action=mark-routing chain=prerouting src-address-list=proxy dst-port=80,443 dst-address-type=!local protocol=tcp new-routing-mark=bypass
# 添加一个防火墙Mangle规则,动作为标记路由,链为prerouting,源地址列表为proxy,连接类型tcp。目标端口为80和443,目标地址类型不是本地地址,新的路由标记为bypass
重启路由