tun2socks (tunnel to socks) 是一种将隧道 流量转发到socks代理的工具,通常可以用来进行全局流量代理,也可以配合路由表设置,进行一些特定网段的流量代理。由于tun2socks跨平台的特点,也完美支持freebsd。本文介绍在pfSense、OPNsense当中配置tun2socks,实现透明代理的方法。
前提条件:参考下面的教程配置好socks代理,并确保socks代理能正常使用。
- pfSense、OPNsense配置v2ray教程
- pfSense、OPNsense配置trojan-go教程
- pfSense、OPNsense配置Xray代理教程
- pfSense、OPNsense配置Clash代理教程
- pfSense、OPNsense配置sing-box代理教程
- pfSense、OPNsense配置hysteria2代理教程
pfSense
安装
下载附件tun2socks安装包并解压缩,修改config.yaml的socks5代理地址,clash(mihomo)默认为127.0.0.1:7891,如果是sing-box的前置代理,一般是lan ip:1080。将改好配置的安装包上传到pfSense防火墙,进入程序目录,运行命令安装 tun2socks:
sh pf_install .sh
脚本会显示以下内容:
====== tun2socks for pfSense一键安装脚本 ===== 文件复制完成! tun2socks_enable: YES -> YES 启动参数添加完成! 执行权限添加完成! tun2socks安装完成! tun2socks运行命令: 启动: service tun2socks start 停止: service tun2socks stop 重启: service tun2socks restart 手动调试命令: /usr/local/bin/tun2socks -config /usr/local/etc/tun2socks/config.yaml
添加接口
使用以下命令启动tun2socks,并激活tun接口:
service tun2socks start
也可以运行手动调试模式,方便检查故障(推荐方式):
/usr/local/bin/tun2socks -config /usr/local/etc/tun2socks/config.yaml
转到接口>分配,添加tun_socks接口,启用并设置IP和网关。注意分配IP和网关不要与现有任何接口地址冲突。
添加规则
设置分流规则,让国外IP走tun接口,国内IP走默认网关。转到防火墙>别名管理,网址选项卡,点击右下角添加按钮,添加国内IP段更新网址。
转到防火墙>规则策略,LAN选项卡,修改LAN接口默认规则,国内IP走默认网关,目标选中主机名别名CN_IP,网关为默认网关。
添加另一条国外IP走透明网关的分流规则,源LAN子网,目标any。
网关选tun网关。
设置完成,点击保存。LAN接口规则如下图所示:
开机自启
在Shellcmd插件里,添加一条开机启动命令“service tun2socks start”,注意Shellcmd类型选“earlyshellcmd”,必须早于网络启动前启动tun2socks,否则tun接口将不起作用。
检查测试
配置完成以后,重启防火墙,测试是否能正常访问google、youtube等网站,访问ip111.cn,检查分流是否正常。
OPNsense
安装
将改好配置的安装包上传到OPNSense防火墙,进入程序目录,运行以下命令安装 tun2socks:
sh opn_install .sh
添加接口
使用以下命令启动tun2socks,并激活tun接口:
service tun2socks start
也可以运行手动调试模式,方便检查故障(推荐方式):
/usr/local/bin/tun2socks -config /usr/local/etc/tun2socks/config.yaml
转到接口>分配,添加tun接口,启用并配置静态IP和网关。注意分配IP和网关不能与现有任何接口地址冲突。
添加网关,在添加完成以后,注意回到接口设置,选中新添加的网关。
添加规则
设置分流规则,让国外IP走tun接口,国内IP走默认网关。这里需要用到别名,添加别名有两种方法,一种是使用GeoIP,另一种是使用网址表,两个选一种即可。
1、添加GeoIP别名
转到防火墙>别名,GeoIP 设置选项卡,在网址栏粘贴下面的链接地址并应用:
https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=fzp4V6mjbTHvbqGj&suffix=zip
转到防火墙>别名,添加一个中国区GeoIP别名。
添加完成并应用后,如下图所示:
2、添加网址表别名
转到防火墙>别名,添加一个别名,类型选URL Table(IPs),刷新(更新)频率根据需要填写,内容直接粘贴下面的地址,然后保存即可。
https://ispip.clang.cn/all_cn_cidr.txt
别名设置完成以后,转到防火墙>规则策略,LAN选项卡,修改默认接口规则。地址族IPv4,协议any,目标CN_IP,网关指定为默认或运营商出口网关。
添加另一条国外IP走透明网关的分流规则。源LAN子网,目标any,网关选tun网关。
设置完成以后,LAN接口规则如下图所示:
开机自启
安装脚本已添加开机自启命令,无需再设置。
检查测试
配置完成以后,重启防火墙,测试是否能正常访问google、youtube等网站,访问 ip111.cn,检查分流是否正常。
其他事项
有网友提出,像clash、sing-box等已内置分流配置的代理工具,是否还需要做中国IP策略路由的问题,经过测试是需要的。如果不做策略路由,很多国外网站会打不开,访问不稳定。
附件下载
tun2socks for pfSense and OPNsense
参考文章:
相关文章:
请问下如果clash已经做好了分流,这个最后一步的的分流还需要做嘛,会不会有些重复?
你可以试一试,不做策略路由访问是否正常。