OPNsense Forum

International Forums => Chinese - 中文 => Topic started by: evalfun on February 20, 2022, 05:00:49 am

Title: opnsense使用透明代理并分流
Post by: evalfun on February 20, 2022, 05:00:49 am
思路:使用tun2socks在系统中创建虚拟接口,将进入接口的流量转换成socks5代理流量,并发送至socks5代理服务器,如v2ray或者clash。

下载tun2socks
https://github.com/xjasonlyu/tun2socks/releases (https://github.com/xjasonlyu/tun2socks/releases)
运行
Code: [Select]
tun2socks -device tun://mytun2socks0 -loglevel info -proxy socks5://127.0.0.1:1081 -stats 0.0.0.0:9000 -udp-timeout 120注意,tun接口名称尽量随机,不能使用默认的tun0名称,否则不会在web界面中显示。
可以运行在screen里面,防止ssh关闭后进程就结束了。
也可以用clash premium,带tunnel功能。闭源软件看着不爽?其实也有clash premium的开源实现,可以找一个
比如这个https://github.com/wwqgtxx/clashr (https://github.com/wwqgtxx/clashr)



配置网络。
在接口-分配中分配新的接口。在接口中给新的接口设置一个你不会用到的ip地址。可以设置为10.44.230.1/30
在系统-网关-单个中添加一个网关。接口选择tun2socks的接口,ip地址为10.44.230.2
如果你的代理服务器支持ipv6,你也可以添加一个私有ipv6地址。


设置国内ip段(可选)
https://docs.opnsense.org/manual/how-tos/maxmind_geo_ip.html (https://docs.opnsense.org/manual/how-tos/maxmind_geo_ip.html)


设置策略路由
添加两条规则,第一条规则是不对保留地址重定向,以防内网主机无法访问防火墙上的dns服务器。源选择要科学的内网主机,可以使用组来批量管理主机。目标填私有ip段。
第二条规则是对科学流量进行策略路由。源选择要科学的内网主机,目标为反向选择国内ip地址段,如果要全局代理,目标就是any,网关选择新创建的网关。
对规则排序,最后是像这样的
(https://s2.loli.net/2022/02/20/ZvcdOsaSbXxNPmI.png) (https://sm.ms/image/ZvcdOsaSbXxNPmI)


测试结果
访问国外:
(https://s2.loli.net/2022/02/20/9ix8Ve63EZg5bUc.png) (https://sm.ms/image/9ix8Ve63EZg5bUc)
访问国内:
(https://s2.loli.net/2022/02/20/DmSwvcgj9I1GZHN.png) (https://sm.ms/image/DmSwvcgj9I1GZHN)

Title: Re: opnsense使用透明代理并分流
Post by: deddey on March 19, 2022, 05:09:10 am
这办法真好,完美的透明代理。
建议使用系统的monit来确保tun2socks和clash的正常运行。

另外,dns的污染如何解决呢?要不来个mosdns
Title: Re: opnsense使用透明代理并分流
Post by: evalfun on April 04, 2022, 10:40:04 am
分享一个我自用的mosdns rc脚本,放到/etc/rc.d下面即可。要修改文件路径
Code: [Select]
#!/bin/sh
#
# $FreeBSD$
#

# PROVIDE: mosdns
# REQUIRE: LOGIN FILESYSTEMS
# KEYWORD: shutdown

. /etc/rc.subr

name="mosdns"
desc="mosdns daemon"
rcvar="mosdns_enable"
command="/usr/sbin/daemon"
pidfile="/var/run/${name}.pid"

procname="/usr/local/mosdns-freebsd-amd64/mosdns"
command_args="-f -p ${pidfile} -u root ${procname} -dir2exe -c config.yaml "

load_rc_config $name
run_rc_command "$1"
Title: Re: opnsense使用透明代理并分流
Post by: or2me on July 27, 2022, 09:41:40 am
楼主写的很好 我补充几点
1、如果用clash自己的tun模式,那么记得要回去把配置文件里面的那个name改成 opn识别出来的名称;
2、楼主说的那几个IP。比如你本来网段是192.168.1.1/24,那么可以配192.168.1.2
Title: Re: opnsense使用透明代理并分流
Post by: evalfun on September 14, 2022, 05:36:30 am
请各位注意,这种方法有个致命的问题,如果tun2socks不能在网络服务启动之前启动,那么网络服务启动时会找不到这个接口,导致接口重新分配,并且断网
所以没做好开机自启的,使用中千万不要重启
Title: Re: opnsense使用透明代理并分流
Post by: 鐵血男兒 on October 14, 2022, 08:23:10 am
https://pfschina.org/wp/?p=9628