OSX Change Roaming Preference

On my macbook pro, default values are:

修改 JoinMode 为 Preferred

OSX Change Roaming Preference by @sskaje: https://sskaje.me/2016/10/osx-change-roaming-preference/

内网半透明代理

因为不是传统意义上的透明代理,但是基本体验又差不多,姑且称之半透明代理。

背景

公司网络差,内网服务器的微信页面开发经常会被外网带宽影响到,一方面是因为引用了微信、阿里的js、css、字体等资源文件,另一方面,因为早前开发团队留下的坑,存在七牛云上的静态文件从接口端下发的url都带了实时的时间戳。

思路

先处理图片url带时间戳的坑,一方面接口是公共的,我在中间加了一层代理后,把无用的参数过滤掉,强制对结果做了一次小缓存;再安排接口端的同学改造遗留问题,确定了有意义的数据作为版本参数。这样至少保证终端用户能看到304,而不是每次都是200。

然后,所引用的静态文件,都是长时间不会修改的,公司网络如此糟糕的情况下,完全可以在本地搭建一个代理,把请求文件缓存下来。

方案

HTTP的代理很简单,nginx配置一个反向代理即可。
之前某些原因,nginx外边还加了一个haproxy,具体原因会在其他文章里解释。
haproxy可以作为 SNI proxy 使用,而流入的请求无非是http明文传输,或者https传输,需要代理的都是TCP的,所以 nginx 处理 http请求,haproxy 判断 SNI,转发tcp到定制的backend。

在此之前,需要在内网搭建 DNS 服务器,(这里我用了 dnsmasq),可以选择将内网 DHCP 的DNS服务器指向这里,或者把非 DNS 所在服务器的所有UDP 53的包转发到这个服务器上。

我的方案里,所有的服务都在内网的一台机器上。haproxy 监听了 内网IP的80,443端口,nginx 监听了 127.0.0.1:80,还有127.0.0.1:443给gitlab使用。

nginx配置很简单:

haproxy的配置同样:

需要指出的是,我ssl的backend的server,都是 dig 实际域名,拿第一级cname来用的。

最后 dnsmasq 劫持你所需要的域名的解析即可。

内网半透明代理 by @sskaje: https://sskaje.me/2016/10/semi-transparent-proxy/

Incoming search terms:

PHP Man-in-The-Middle TCP Proxy

After learning modern PHP in past few days, I decide GIVING UP this language now. :(

I wrote an MiTM proxy in PHP for TCP connection forwarding and hijacking, code can be found on github.

This project is based on ReactPHP.

It can be also installed from composer / packagist.org.

I’ve coded some examples in that project, you can try those out and write your own. Including: forward DNS TCP query, forward HTTP query, modify HTTP request.

If you have a linux router/box, you can add some iptables rules forwarding requests to your running instance.

Have fun!

PHP Man-in-The-Middle TCP Proxy by @sskaje: https://sskaje.me/2016/10/php-man-in-the-middle-tcp-proxy/

Incoming search terms: