xdays

家庭网接入V2RAY透明代理

August 21, 2019

目标

上一篇V2Ray透明代理里详细解释了在OpenWrt上配置V2RAY作为透明代理,本文提供两种将这种透明代理应用到家庭局域网的两种方式。主要目标有以下几个:

  1. 兼容各种设备,比如IPTV,NAS
  2. 接入设备无感知,无需做任何配置
  3. 设备间互访不受影响

下图为应用透明代理前我的家庭网拓扑:

home network before

由于联通路由光猫如果改成光猫的话IPTV就不好使了,所以这个猫比如像其名字一样作为家庭网关了。

方案1 嵌套路由器模式

这种方案的网络拓扑图如下:

home network after1

直接把极路由刷上OpenWrt改成路由模式,然后上透明代理就可以了。这种方案优点就是配置成本很小,缺点是电视,IPTV和NAS和手机电脑等设备被分割到了两个局域网内,这就造成了:

  1. 只能单向发起通信,比如电脑可以访问NAS,而NAS就不能直接访问电脑了
  2. AirPlay之类的就不好使了,手机没法投屏到电视了

方案2 两个网关模式

这种方案拓扑图如下:

home network after2

极路由还是工作在AP模式,当然也可以把透明代理做在上面。由于我的极路由已经跑了老毛子系统,而且从NAS上虚拟出来的OpenWrt性能应该比极路由更好一些,所以我就跑了一个OpenWrt以单臂路由方式当做透明代理。首先,这个拓扑上所有的设备都跑在一个局域网内,包括极路由,NAS以及NAS上的虚拟机,而且这个局域网里有两个网关路由光猫和OpenWrt;然后,我要关闭路由光猫的DHCP功能,因为这个DHCP不满足条件,不能将非本机的的IP配置成DHCP网关;最后,我需要在OpenWrt上做如下的配置:

  1. 默认的DHCP配置让所有的设备的网关指向了OpenWrt
  2. OpenWrt要配置一个静态地址,而且默认路由要指向路由光猫
  3. 我们可以配置DHCP来根据mac地址来让部分设备的网关直接指向路由光猫,这样对于不需要翻墙的电视和IPTV就绕过了OpenWrt直接出去了。

现在我们来配置下OpenWrt:

# 在lan接口上开启DHCP
uci set dhcp.lan.ignore='0'
uci set dhcp.lan.start='100'
uci set dhcp.lan.limit='99'

# 配置静态IP并且默认路由指向联通路由光猫
uci set network.lan.proto='static'
uci set network.lan.ipaddr='192.168.1.200'
uci set network.lan.netmask='255.255.255.0'
uci set network.lan.gateway='192.168.1.1'
uci set network.lan.dns='192.168.1.1'

# 匹配特定mac地址,对它们分配特殊的网关地址
uci set dhcp.iptv=host
uci set dhcp.iptv.name='iptv'
uci set dhcp.iptv.tag='free'
uci set dhcp.iptv.mac='2c:55:d3:ab:86:64' 'c8:0e:77:75:ea:b3'
uci set dhcp.free=tag
uci set dhcp.free.dhcp_option='3,192.168.1.1'

uci commit
service dnsmasq restart

方案3 单路由器模式

这种方案拓扑图如下:

home network after3

首先,修改联通路由光猫改成桥接模式让其只作为猫使用,具体可以参考这个帖子,具体方法如下:

  1. http://192.168.1.1/hiddenversionswitch.gch ,选 default version,密码 CUAdmin
  2. 机器自动重启之后就可以进 http://192.168.1.1/cu.html 了, 选管理员账户,密码 CUAdmin
  3. 进去之后删掉之前的internet配置,然后新建 internet bridge,vlan选项记得选改 tag,然后在 vlanid 里填 3961(这里是北京联通的vlanid,我测试是可以的)
  4. iptv那块选 dhcp,vlan_i 填3964 即可(这步我做了但是iptv并不能工作,IPTV能正常工作的朋友请分享下你的配置吧)

然后极路由作为网关和透明代理,所有的设备都以极路由为网关,而且DHCP这块不需要啥特殊配置了。但是路由光猫改成桥接模式后IPTV就不好使了,所以这种场景不适合我,如果你不需要IPTV,那么这种模式最为理想,当然得有个比较牛逼的路由器哇。

参考文档


xdays

我是 xdays, 记录着我技术的成长,生活的点滴和感悟,能对你有所帮助那更好。