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:

IPTables port proxy

Uncomment net.ipv4.ip_forward=1 in sysctl.conf.
Then run:

Add iptables rules.

IPTables port proxy by @sskaje: https://sskaje.me/2015/10/iptables-port-proxy/

Incoming search terms:

Set up Port Proxy for Google

I found some ways making most of google’s services working in my working place, but not for google docs, google drive, google plus…

I got a VPS somewhere, windows 2003, which is quite easy creating a port proxy.

Steps:
Make sure you have 443 port not in use.

Install IPv6

To make the portproxy work on windows 2003, IPv6 must be installed, even for a v4 to v4 proxy.

Create the portproxy

Syntax can be found here: Netsh commands for Interface Portproxy

Check if port is open

After the add operation, check if the 443 port is open using:

Delete the portproxy

Same syntax as above.

Create portproxy on Port 80

Set up Port Proxy for Google by @sskaje: https://sskaje.me/2014/06/set-port-proxy-for-google/