EdgeMAX EdgeRouter ER-X路由器搭建透明代理
EdgeMax EdgeRouter ER-X(以下简称ER-X)曾经一度被广大网友评价为弱电箱神器。体积小、运行稳定,设置好扔到弱电箱里,基本无视它的存在。这款路由器带有POE供电、256M的Flash、256M的RAM,原生debian系统。处理器是MT7621,带硬件转发,可玩性非常高。这篇文章将为大家介绍如何在ER-X上搭建v2ray透明代理。
一、环境
ERX使用目前官方提供的最新版固件:EdgeRouter X v2.0.9-hotfix.4
二、远程服务器端
远程服务器端使用本站提供的V2ray多合一脚本安装VMESS+websocket+TLS+Nginx。
bash <(curl -sL https://raw.githubusercontent.com/hiifeng/v2ray/main/install_v2ray.sh)
三、在ER-X上安装v2ray
ER-X路由比较好的就是有原生的debian,所以这里我们可以直接在ER-X安装相应的支持包,不过得先更新一下源。我目前使用的是官方最新版固件EdgeRouter X v2.0.9-hotfix.4。在设置完成可以通过PPPOE上网后,进行如下操作。
1、查看并删除路由器上的多余固件,腾点空间出来
root@ubnt:~# show system image The system currently has the following image(s) installed: v2.0.9-hotfix.4.5521907.220630.0657 (running image) (default boot) v2.0.9-hotfix.2.5402463.210511.1317
通过以上命令,我们可以看到这块路由器使用的是v2.0.9-hotfix.4固件,我们可以执行以下命令将v2.0.9-hotfix.2固件删除。
root@ubnt:~# delete system image The system currently has the following image(s) installed: v2.0.9-hotfix.4.5521907.220630.0657 (running image) (default boot) v2.0.9-hotfix.2.5402463.210511.1317 You are about to delete image [v2.0.9-hotfix.2.5402463.210511.1317] Are you sure you want to delete ? (Yes/No) [Yes]: y Removing old image... Done
2、更新软件源,安装unzip、daemon
sudo -i #能走进水木清华,是我曾经一度的梦想,就用一下清华源吧。 echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" > /etc/apt/sources.list apt-get update apt-get install unzip apt-get install daemon #路由器空间寸土寸金,我们清除掉apt缓存 apt-get clean
3、在ER-X上安装v2ray
ER-X使用的是mipsle安装包,目前v2ray最新版本是v5.1.0,我们使用如下地址下载对应的安装包。
https://github.com/v2fly/v2ray-core/releases/download/v5.1.0/v2ray-linux-mips32le.zip
然后使用WinSCP将v2ray-linux-mips32le.zip上传到ER-X的/tmp目录后,执行如下命令。
cd /tmp/ unzip -d v2ray-linux-mips32le v2ray-linux-mips32le.zip mkdir -p /usr/local/v2ray /etc/v2ray cp v2ray-linux-mips32le/v2* /usr/local/v2ray/ cp v2ray-linux-mips32le/geo* /usr/local/v2ray/ cp v2ray-linux-mips32le/vpoint_vmess_freedom.json /etc/v2ray/config.json cp v2ray-linux-mips32le/systemd/system/v2ray.service /lib/systemd/system/ sed -i 's/ExecStart=\/usr\/local\/bin\/v2ray run -config \/usr\/local\/etc\/v2ray\/config.json/ExecStart=\/usr\/local\/v2ray\/v2ray run -config \/etc\/v2ray\/config.json/g' /lib/systemd/system/v2ray.service systemctl daemon-reload systemctl enable v2ray systemctl start v2ray
4、配置ER-X上的v2ray
修改/etc/v2ray/config.json,可以参考以下配置文件。由于ER-X是阉割版的系统,没有TPROXY模块,我们只能使用REDIRECT模式的透明代理,仅支持TCP/IPv4和 UDP连接。TPROXY与REDIRECT是针对TCP而言的两种透明代理模式,两者的差异主要在于TPROXY可以透明代理IPV6,而REDIRECT不行。修改config.json配置文件一定细心,少一个}或,就会出错。
{ "inbounds": [ { "tag":"transparent", "port": 10250, "protocol": "dokodemo-door", "settings": { "network": "tcp,udp", "followRedirect": true }, "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "streamSettings": { "sockopt": { "tproxy": "redirect", // 透明代理使用 redirect 方式 "mark":255 } } }, { "port": 1080, "protocol": "socks", // 入口协议为 SOCKS 5 "sniffing": { "enabled": true, "destOverride": ["http", "tls"] }, "settings": { "auth": "noauth" } } ], "outbounds": [ { "tag": "proxy", "protocol": "vmess", // 代理服务器 "settings": { "vnext": [ { "address": "example.ifeng.co", "port": 443, "users": [ { "id": "5ccc541b-1260-4e75-b902-224333320487", "alterId": 0, "email": "[email protected]", "security": "auto" } ] } ] }, "streamSettings": { "network": "ws", "security": "tls", "tlsSettings": { "allowInsecure": false, "serverName": "example.ifeng.co" }, "wsSettings": { "path": "/example", "headers": { "Host": "example.ifeng.co" } }, "sockopt": { "mark": 255 } }, "mux": { "enabled": true } }, { "tag": "block", "protocol": "blackhole", "settings": { "response": { "type": "http" } } }, { "tag": "direct", "protocol": "freedom", "settings": { "domainStrategy": "UseIP" }, "streamSettings": { "sockopt": { "mark": 255 } } } ], "routing": { "strategy": "rules", "domainStrategy": "IPIfNonMatch", "settings": { "rules": [ { // 广告拦截 "type": "field", "domain": [ "geosite:category-ads-all" ], "outboundTag": "block" }, { // BT 流量直连 "type": "field", "protocol":["bittorrent"], "outboundTag": "direct" }, {// 直连中国大陆主流网站 ip 和 保留 ip "type": "field", "ip": [ "geoip:private", "geoip:cn" ], "outboundTag": "direct" }, {// 直连中国大陆主流网站域名 "type": "field", "domain": ["geosite:cn"], "outboundTag": "direct" } ] } } }
修改好配置文件后可以使用如下命令,检查配置文件中有无错误。
/usr/local/v2ray/v2ray test
配置文件没有错误后,重新启动v2ray
systemctl restrat v2ray
然后执行如下命令,检查是否可以科学上网。(命令中 socks5指inbound协议为 socks,1080指该 inbound端口是 1080)。如果执行这个命令出现了301或200这类数字的话代表可以科学上网,如果长时间没反应或者是000的话说明不行。
curl -so /dev/null -w "%{http_code}" google.com -x socks5://127.0.0.1:1080
四、配置透明代理规则
执行下面的命令开启透明代理。
#新建一个nat链,排除私网地址流量 iptables -t nat -N V2RAY iptables -t nat -A V2RAY -p tcp -j RETURN -m mark --mark 0xff iptables -t nat -A V2RAY -d 0.0.0.0/8 -j RETURN iptables -t nat -A V2RAY -d 10.0.0.0/8 -j RETURN iptables -t nat -A V2RAY -d 127.0.0.0/8 -j RETURN iptables -t nat -A V2RAY -d 169.254.0.0/16 -j RETURN iptables -t nat -A V2RAY -d 172.16.0.0/12 -j RETURN iptables -t nat -A V2RAY -d 192.168.0.0/16 -j RETURN iptables -t nat -A V2RAY -d 224.0.0.0/4 -j RETURN iptables -t nat -A V2RAY -d 240.0.0.0/4 -j RETURN iptables -t nat -A V2RAY -p tcp -j REDIRECT --to-ports 10250 #重定向局域网设备过来的TCP流量 iptables -t nat -A PREROUTING -p tcp -j V2RAY #重定向ER-X路由器(本机)过来的TCP流量 iptables -t nat -A OUTPUT -p tcp -j V2RAY
如果只允许局域网中的某个终端(例如电视机顶盒)科学上网,可以将第14行命令替换为如下命令,只允许某个ip的流量
iptables -t nat -A PREROUTING -s 192.168.0.5/32 -p tcp -j V2RAY
五、开机自动运行透明代理规则
由于iptables有重启会失效的特性,所以当测试配置没有问题之后,需要在开机时自动配置iptables,否则每次开机的时候就要手动执行一遍。
ER-X路由器开机会自动运行/config/scripts/post-config.d/目录下的脚本文件,我们创建名为v2ray_iptables.sh的脚本,内容如下。
#!/bin/sh #新建一个nat链,排除私网地址流量 iptables -t nat -N V2RAY iptables -t nat -A V2RAY -p tcp -j RETURN -m mark --mark 0xff iptables -t nat -A V2RAY -d 0.0.0.0/8 -j RETURN iptables -t nat -A V2RAY -d 10.0.0.0/8 -j RETURN iptables -t nat -A V2RAY -d 127.0.0.0/8 -j RETURN iptables -t nat -A V2RAY -d 169.254.0.0/16 -j RETURN iptables -t nat -A V2RAY -d 172.16.0.0/12 -j RETURN iptables -t nat -A V2RAY -d 192.168.0.0/16 -j RETURN iptables -t nat -A V2RAY -d 224.0.0.0/4 -j RETURN iptables -t nat -A V2RAY -d 240.0.0.0/4 -j RETURN iptables -t nat -A V2RAY -p tcp -j REDIRECT --to-ports 10250 #重定向局域网设备过来的TCP流量 iptables -t nat -A PREROUTING -p tcp -j V2RAY #重定向ER-X路由器(本机)过来的TCP流量 iptables -t nat -A OUTPUT -p tcp -j V2RAY
最后将脚本文件修改为可执行文件。
chmod a+x /config/scripts/post-config.d/v2ray_iptables.sh
参考文献:
https://guide.v2fly.org/app/tproxy.html
https://www.anywlan.com/article-4758-1.html
https://www.v2ray.com/chapter_02/05_transport.html
https://xdays.me/V2RAY透明代理/
https://www.cnblogs.com/zclzhao/p/5081590.html
本文出处:HiFeng'Blog
本文链接:https://hicairo.com/post/39.html
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA许可协议。转载请注明出处!
<< 上一篇
下一篇 >>