顾名思义,透明网关这是一个在使用过程中不会被感知到的一个网关设备(或软件),我之所以要配置透明网关呢,是因为我需要我的 Ubuntu 主机能够自由地访问互联网,而不是 git clone 都要等半天。
为此我深入研究了一下V2ray的透明网关功能,并实际部署使用了一段时间,感觉还不错,所以在这里分享给大家如何在本地局域网内搭建透明网关,并使得整个局域网内的设备无需安装代理软件或任何配置即可自由访问互联网。
研究后发现真的是非常简单,拆解成步骤就是主机流量发送到网关,网关判断是否需要科学上网,然后自动分流即可。整个过程不需要任何人工参与,局域网内的所有设备默认就会使用这个网关上网。
我这里使用的系统是 Ubuntu 20.04,理论上任何Linux系统都可以作为透明网关使用。
我们需要配置几个系统参数,以让Ubuntu可以转发所有的流量给V2ray。
打开系统的IPV4流量转发功能,将收到的所有流量都转发出去。
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p
这里需要在系统内硬编码网络的出口网关,因为我们后面需要将DHCP服务的网关设置成本机,如果不硬编码的话,就会造成流量回环,这将会是非常严重的错误。
使用你擅长的编辑器打开rc.local,我这里使用的是nano。
rc.local
nano /etc/rc.local #!/bin/bash ifconfig 【网卡名】 【本机 IP】 netmask 255.255.255.0 route add default gw 【默认网关 IP or 路由器 IP】
保存后,为其配置权限,使其可以开机自动运行。
chmod 755 /etc/rc.local
V2ray 的安装配置本文就不展开了,如果你还没有搭建好V2ray,或者你无法连接github,可以参照这篇文章:离线安装 V2ray
因为我们要启用网关的话,所有设备的网络连接都会经过该服务器,默认的65535条连接数肯定不够用了,所以我们需要将其解开,使得服务器可以容纳更多的连接数量。
修改限制 v2ray.service,在【Service】下面加一行:
v2ray.service
nano /etc/systemd/system/v2ray.service LimitNOFILE=1048576
使用你擅长的的编辑器打开v2ray/config.json,我这里还是用的nano举例:
v2ray/config.json
nano
nano /usr/local/etc/v2ray/config.json { "inbounds": [ { "port": 12315, "protocol": "dokodemo-door", "settings": { "network": "tcp,udp", "followRedirect": true }, "sniffing": { "enabled": true, "destOverride": ["http", "tls"] } } ], "outbounds": [ { "tag": "proxy", "protocol": "vmess", "settings": { "vnext": [ { "address": "【根据你的设置更改】", "port": 【根据你的设置更改】, "users": [ { "id": "【根据你的设置更改】", "alterId": 【根据你的设置更改】 } ] } ] } }, { "protocol": "freedom", "settings": {}, "tag": "direct" }, { "protocol": "blackhole", "settings": {}, "tag": "adblock" } ], "routing": { "domainStrategy": "IPOnDemand", "rules": [ { "type": "field", "outboundTag": "adblock", "domain": ["geosite:category-ads"] }, { "type": "field", "outboundTag": "direct", "domain": ["geosite:cn"] }, { "type": "field", "outboundTag": "direct", "ip": [ "geoip:cn", "geoip:private" ] } ] } }
我来解析一下,在上面的配置文件中inbound只有一个,那就是来自端口12315的流量,然后它会根据分流选择是本地 freedom 直接走上级网关直接访问,还是使用代理访问。具体的代理连接参数需要你自己手动修改。
修改过V2ray 的配置文件后,需要手动重启以下V2ray。
service v2ray restart
最后查看下是否重启成功,如没有报错,就已经配置好了。
service v2ray status
前面我们打开了系统的流量转发功能,这一步我们需要为其配置转发规则,这里我使用了最简单的iptables,这是Ubuntu系统自带的一个防火墙软件,它可以配置各种各样的流量进出规则,当然也包括我们现在需要使用的流量转发。
在命令行界面输入以下代码,创建一个叫做V2RAY的nat转发规则,并只转发来自192.168.0.0/16的流量到本机12315端口。
V2RAY
192.168.0.0/16
12315
sudo iptables -t nat -N V2RAY sudo iptables -t nat -A V2RAY -d 192.168.0.0/16 -j RETURN sudo iptables -t nat -A V2RAY -p tcp -j REDIRECT --to-ports 12315 sudo iptables -t nat -A PREROUTING -p tcp -j V2RAY
使用iptables-save工具将规则保存到文件中:
iptables-save
iptables-save > /etc/network/iptables.up.rules
因为开机后iptables 会恢复默认模式,所以要将以下命令写入到/etc/rc.local中使其开机自动加载我们之前配置好的流量转发规则:
/etc/rc.local
iptables-restore < /etc/network/iptables.up.rules
配置不来可以参考以下下面这张图,如下图所示即可:
路由器只有一个地方需要配置,因为我们想要做到无感透明,所以需要在路由器的DHCP服务中,将默认的网关配置成我们刚刚搭建好的透明网关的IP地址。我这里使用的是192.168.0.43:
192.168.0.43
将路由器设置好了后,只需要将设备断开连接,并再次接入网络,设备会自动获取到透明网关的地址作为网关地址,这样所有的流量就都会去透明网关那边进行分流科学上网!下图是Windows:
快速将电子书转换为我们需要的格式
搭建私有Blynk-server,这样就拥有了无限的`energy`。
一些无聊的记录
一些有用的站点记录
本文将会告诉你如何自建 RSS源,以及有哪些坑和填坑技巧。
目录
热门标签
更多语言
站点信息