群晖实现透明代理

本节介绍群晖实现透明代理的配置方法

安装也是采用Docker的方式,所以首先确认你的群晖系统是否支持Docker

补齐缺失的iptables模块

按照 Docker安装 之后,启用redirect或tproxy透明代理模式,类似旁路由模式,就会遇到iptables缺失相关的报错。群晖系统是一个定制版Linux系统,透明代理需要的iptables相关模块并没有包含,所以解决方案就是补齐缺失的iptables模块,具体参考 syno-iptables 下载安装预编译模块或者自编译。

加载缺失的模块并启动容器

在v2rayA启动时,为了确保所需的内核模块已经加载,可以覆盖默认的entrypoint为一个脚本,负责加载模块然后启动v2rayA,以下为docker run示例。

docker run -d \
  --restart=always \
  --privileged \
  --network=host \
  --name v2raya \
  -e V2RAYA_ADDRESS=0.0.0.0:2017 \
  -v /lib/modules:/lib/modules \
  -v /etc/resolv.conf:/etc/resolv.conf \
  -v /volume1/docker/v2raya-config:/etc/v2raya \
  --entrypoint /etc/v2raya/bootstrap.sh \
  mzz2017/v2raya

替换 /volume1/docker/v2raya-config 为你自己挂载的配置目录

以DS3617xs 6.2.3-25426为例,bootstrap.sh文件内容如下,同样存放于配置目录中。

#!/bin/sh
insmod /lib/modules/nfnetlink.ko &> /dev/null
insmod /lib/modules/ip_set.ko &> /dev/null
insmod /lib/modules/ip_set_hash_ip.ko &> /dev/null
insmod /lib/modules/xt_set.ko &> /dev/null
insmod /lib/modules/ip_set_hash_net.ko &> /dev/null
insmod /lib/modules/xt_mark.ko &> /dev/null
insmod /lib/modules/xt_connmark.ko &> /dev/null
insmod /lib/modules/nf_tproxy_core.ko &> /dev/null
insmod /lib/modules/xt_TPROXY.ko &> /dev/null
insmod /lib/modules/iptable_mangle.ko &> /dev/null
v2raya

不同群晖系统所需的内核模块可能不完全一样,具体参考 syno-iptables 自行调整

在 Github 上编辑此页

最后更新于: 2022年02月07日 15:53:42 +0800

贡献者: sjtuross