UBNT VPN + Socks5 代理

VPN的方案可以参考 Set up OpenVPN Site-to-Site on UBNT EdgeRouter LiteEdgeOS PPTP VPN客户端配置

由于某些国际CDN的问题,部分网站不适合用IP路由来设定跳转。所以这里的需求是,针对特定域名把80/443的请求转由VPN的设备出去,其他的不管。
思路1,用EdgeMax自带的webproxy功能,但是很可惜,squid不支持选择outgoing的interface,只能选目标IP。所以放弃。
思路2,DPI监测域名或SNI,但是EdgeRouter Lite的最新版beta 1.8.0b3文档不完整,自己测试了一下相关命令,没搞成,理论上有戏。
思路3,本地socks5代理。我一直会用firefox+foxyproxy作为专用浏览器,正常的需求都用chrome。而且最近secure pipes经常掉,不确定什么情况,包括用国内vps代理远端ssh的方案也不行。

尝试了一些方案,包括dante-server 选上行interface, SSH Tunnel + DNAT,都不行。DNAT的方案不想直接用iptables,怕配置命令保存不方便,所以最终回到了haproxy的方案。

VPS上,配置socks5代理。方案很简单,参考命令如下:

10.99.99.2 和 192.168.121.1 分别是我两种vpn方案的服务端私有IP。
这行命令被我加到了rc.local。当然,还得配ssh 公钥登录。

路由上,安装配置haproxy。依旧参考 使用HAProxy搭建SSH代理
/etc/haproxy/haproxy.cfg

UBNT VPN + Socks5 代理 by @sskaje: https://sskaje.me/2016/02/ubnt-vpn-socks5-proxy/

Incoming search terms: