Mac Book Proxy Setting

Introduction

公司发了macbook,用zscaler,用家里网很慢,当然在公司也没快到哪里去。macbook被公司远程管理的,很多限制,这篇文章就是关于我怎么在限制下提高macbook使用体验。

Debug

zscaler会显示一个IP,查IP是香港的,直接Ping,至少25%的掉包。200ms以上的延迟。间断性的甚至100%掉包。
挂了梯子测试,但是ping无法用proxy。这时就考虑是否挂梯子试试。

遇到的问题

梯子有三种

  1. 电脑直接装应用,例如clash,这个会出现unverified app的警告,由于电脑被远程控制了,所以没办法安装上去
  2. 用路由,但是这种路由的价格都比较贵,我手上的并不能翻,需要买新的
  3. 用网关,macbook和我自己的电脑连接同一个wifi,我自己电脑上clash打开”allow Lan”然后用macbook连IP+clash port就行

目前看最合适的是第三种,但是第三种遇到了一点问题:macbook里面固定使用pac文件了,无法改成web或者socket的系统代理。
退一步想看看macbook的input output端口做一个端口转发,例如macbook是走496端口访问外网,那么我用脚本做一个端口转发让macbook访问496的时候,其实访问的是123端口
查詢目前使用中的 port 及 process id
lsof -n -i | grep LISTEN
然后用ssh隧道转发,没有走通
退而求其次,准备改Chrome本身的代理,Chrome本身是跟着系统proxy走的,但是可以添加一个Extension叫做policyswitchyOmega,然后在里面设置socket5代理就行了

效果

效果非常好,比在公司的速度都要快上很多,也就是证明了zscaler是因为服务器设在香港被墙了导致了网速慢,但是用网关梯子这个前提是在一个局域网里面,这时就考虑是否能够在其他地方也加速

设计

macbook -> 腾讯云服务器 -> nginx -> (clash on tencent)

  • 为什么要用nginx代理一次
    因为clash只接局域网的数据,所以用nginx代理一次

  • 参考文档 & 具体方法

用docker运行clash on linux
https://blog.zzsqwq.cn/posts/how-to-use-clash-on-linux/

1
2
3
4
5
6
7
8
config.yaml
secret: '12345678'
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
external-controller: 0.0.0.0:9090

其中wget -O config.yaml $your-proxy-url,这里是订阅链接,catnet有问题,返回的是一串String, 用其他的梯子

运行nginx

1
2
3
4
5
6
7
8
9
10
11
12
docker-compose logs | tail -n 20
docker run -it -d -p 1234:1234 -v /data:/etc/nginx/conf.d nginx

stream {
server {
listen 80;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass 172.17.0.2:7890;
}
}

在macbook设置好代理后,整条通路没有通,查Log发现是访问到了Nginx但是没有访问到clash docker,怀疑Nginx访问时依旧带了真实地址,或者地址不清晰,被clash拒绝了
在nginx的配置中加一个set_header_IP x_read_IP 类似的东西,并设置为192.168.1.1,依然不可以。

换条路,用其他的转发工具

ncat –sh-exec “ncat 172.17.0.2 7890” -l 80 –keep-open
将80端口收到的流量转发到clash docker上,然后设置macbook访问IP:80端口,这时可以访问到了,连YouTube都能打开
但是有个问题,很慢,一查,发现公司将腾讯云IP地址也做了过滤,导致很慢很慢,也就是搞了半天,路通了,但是很烂

问题不大, 在此记下,方便以后.