SNIProxy 绑定设备后连接超时

edgerouter lite

我之前是tun模式的openvpn site-to-site,网络拓扑很简单,local tun <-> remote tun,简单配个ip就行,edgerouter上直接使用interface-route 跳转到local tun就行了。

后来换用了softether,tap模式,于是需要自己配置IP和路由表。我简单地把firewall modify的地址组切到新的设备上,但是之前的 google dns 和 sniproxy 都保留在openvpn侧。但是最近openvpn被查的厉害,ssh也是被盯上了,所以不得不切换设备到 softether 的 tap 上。

测试,发现连接超时。测试使用的域名是 download.oracle.com,解析的ip是 106.187.61.57。

路由上tcpdump

看到的请求却是:

所以。。。加路由吧。

因为公司是固定IP,所以之前配的是 system gateway-address。
这个时候直接配静态路由会报错:

先删后加

注意一下,delete执行完后需要先commit,否则还会报错。

验证一下

如果执行命令前会纠结是否生效,简单 route add 测试一下即可。无比保证vpn的metric比默认网关的大。

另,interface-route + route 的混合模式没测试。

SNIProxy 绑定设备后连接超时 by @sskaje: https://sskaje.me/2017/02/sniproxy-bind-device-connection-timeout/

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/

使用HAProxy搭建SSH代理

VPS SSH经常被封杀,只能国内找个某云,配个HAProxy,实现效果参考 windows 的netsh portproxy。

更多方案参考:https://www.digi77.com/the-art-of-port-forwarding-on-linux/

使用HAProxy搭建SSH代理 by @sskaje: https://sskaje.me/2015/10/%e4%bd%bf%e7%94%a8haproxy%e6%90%ad%e5%bb%bassh%e4%bb%a3%e7%90%86/

Incoming search terms: