Gao Conghui

好好学习,天天向上

爬虫,视频处理


mac vpn翻墙,部分网站走vpn

需求是这样,现在有一个vpn,我可以通过这个vpn翻墙,但同时我需要访问内网,换言之,就是需要白名单或者黑名单翻墙的机制。mac上使用vpn很方便,偏好设置中就可以直接弄,但是没找到合适的黑白名单机制,没办法,只能另辟蹊径,通过iptable来指定不同的ip走不同的网卡。

  • 通过ifconfig找到vpn使用的虚拟网卡名以及非vpn的时候使用的网卡

    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    	options=3<RXCSUM,TXCSUM>
    	inet6 ::1 prefixlen 128
    	inet 127.0.0.1 netmask 0xff000000
    	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    	nd6 options=1<PERFORMNUD>
    en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    	options=4<VLAN_MTU>
    	ether 00:0e:c6:c3:12:d6
    	inet 10.60.90.42 netmask 0xffffff00 broadcast 10.60.90.255
    	media: autoselect (100baseTX <full-duplex,flow-control>)
    	status: active
    utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
    	inet 192.168.3.45 --> 192.168.3.45 netmask 0xffffffff
    

    上边en5是非vpn时走的网卡,utun0是通过vpn走的虚拟网卡。

  • 通过netstat -r查看routing table验证一下

    在非vpn时,走的都是en5这个卡,vpn时,走的utun0这个卡。

  • 开启vpn,所有流量都默认会走utun0的卡,使用route add来指定特定ip走en5这个卡

    route add -net <destination subnet> -netmask <subnet mask> -interface en5,其中destination subnetsubnet mask来确定哪些流量走的卡

    如,我要所有10起头的都走en5,则route add -net 10.0.0.0 -netmask 255.0.0.0 -interface en5即可。

  • 再次时候用netstat -r查看routing table验证

最近的文章

布隆过滤器扩容及删除过期数据

我们知道,布隆过滤器是不可变的,但如果布隆过滤器容量确实不够了,该怎么办呢?或者如果要每个月都删除几个月前的去重数据,该如何处理呢?这边要记录一种布隆过滤器的巧用,多个布隆过滤器组成的循环布隆过滤器。布隆过滤器布隆过滤器的细节这边不做赘述,他在创建的时候就确定了容量以及错误率(false postive),为了后续的方便,这边假设我们有了一个可靠的布隆过滤器。class BloomFilter(object): def __init__(self, capacity, error_r...…

crawler bloomfilter继续阅读
更早的文章

golang hijack打开方式

简介Hijacktype Hijacker interface { // Hijack lets the caller take over the connection. // After a call to Hijack the HTTP server library // will not do anything else with the connection. // // It becomes the caller's responsibility to manage // and...…

go继续阅读