lantern mac编译 Proxy SwitchyOmega

git clone –depth=1 https://github.com/getlantern/lantern.git



cd ~/goLang/src/github.com/lantern/archive
make darwin

出现golang版本不兼容的错误:
[23:30:14] Using gulpfile ~/goLang/src/github.com/lantern/archive/lantern-ui/gulpfile.js
[23:30:14] Starting ‘clean’…
[23:30:14] Starting ‘usemin’…
[23:30:14] Starting ‘copy’…
[23:30:14] Finished ‘copy’ after 8.27 ms
[23:30:14] Finished ‘clean’ after 104 ms
[23:30:15] Finished ‘usemin’ after 1.36 s
[23:30:15] Starting ‘build’…
[23:30:15] Finished ‘build’ after 3.21 μs
/Users/didi/goLang/src/github.com/lantern/archive
Building darwin/amd64…
** VERSION was not set, using default version. This is OK while in development.
Build tags:
Extra ldflags:


github.com/getlantern/flashlight/proxied


src/github.com/getlantern/flashlight/proxied/proxied.go:391:5: tr.MaxIdleTime undefined (type *http.Transport has no field or method MaxIdleTime)
src/github.com/getlantern/flashlight/proxied/proxied.go:392:5: tr.EnforceMaxIdleTime undefined (type *http.Transport has no field or method EnforceMaxIdleTime)


github.com/getlantern/flashlight/client


src/github.com/getlantern/flashlight/client/reverseproxy.go:20:14: unknown field ‘MaxIdleTime’ in struct literal of type http.Transport
src/github.com/getlantern/flashlight/client/reverseproxy.go:22:11: transport.EnforceMaxIdleTime undefined (type http.Transport has no field or method EnforceMaxIdleTime)
make: **
[darwin] Error 2



找到这两个文件
modified: src/github.com/getlantern/flashlight/client/reverseproxy.go
modified: src/github.com/getlantern/flashlight/proxied/proxied.go
四处,把MaxIdleTime改为IdleConnTimeout,然后把下面紧接的调用EnforceMaxIdleTime()这个方法的语句注释掉。就改这两个文件中的4行就行。重新编译




  • MaxIdleTime: 30 * time.Second,

  • //MaxIdleTime: 30 * time.Second,

  • IdleConnTimeout:30 * time.Second,
    }

  • transport.EnforceMaxIdleTime()


  • //transport.EnforceMaxIdleTime()



  • tr.MaxIdleTime = 30 * time.Second

  • tr.EnforceMaxIdleTime()

  • //tr.MaxIdleTime = 30 * time.Second

  • tr.IdleConnTimeout= 30 * time.Second

  • //tr.EnforceMaxIdleTime()



make darwin
Building darwin/amd64…
** VERSION was not set, using default version. This is OK while in development.
Build tags:
Extra ldflags:



生成 lantern_darwin_amd64 说明编译成功



http://127.0.0.1:16823/



Proxy SwitchyOmega 是Proxy SwitchySharp的最新新版本。从谷歌应用商店可以看出,这两款插件的作者是同一个人。但是Proxy SwitchySharp在2015年5月后就停止更新了,Proxy SwitchyOmega仍然在持续更新。Proxy SwitchyOmega是一个 Chrome浏览器用来切换和管理不同代理的chrome插件。ProxySwitchySharp只是一个chrome浏览器的一个插件,该插件是一个代理配置管理的插件,就类似与IE里面的Internet选项的中的代理设置的功能一样,不过Proxy SwitchySharp的功能更强大。Proxy SwitchyOmega是ProxySwitchySharp的升级版。



1.初次在chrome浏览器中安装Proxy SwitchyOmega时,请将前往 Chrome 的 设置 > 高级设置 > 网络设置 > 更改代理服务器设置,将代理设置指定为 系统代理。
2.Proxy SwitchyOmega如何设置?Proxy SwitchyOmega怎么使用?



  1. 使用本站提供的已经设置好的备份直接恢复配置(推荐)
    通过这个链接下载 switchyomega 的配置文件。
    Windows 用户:http://www.gssvpn.com/dl.php?type=d&id=2
    MAC OS X 用户:http://www.gssvpn.com/dl.php?type=d&id=1



然后打开 Proxy SwitchyOmega 的设置,选择从备份文件恢复,然后选择刚才下载的文件



进入SwithyOmega进行设置:
对proxy的代理协议,代理服务器,代理端口进行设置。一般对于Shawdowsocks用户,设置为:代理协议SOCKS5,代理服务器localhost,代理端口1080;
对auto switch进行设置,点击添加规则列表,规则列表设置改为AutoProxy,情景模式选择proxy,规则列表网址设置为
https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
点击左侧应用选项进行保存。



在浏览器插件位置把Proxy SwitchyOmega设置成anto switch。



在Chrome中打开SwitchyOmega的设置页面,新建情景模式->Pac情景模式



创建后将第1步的pac文件地址http://127.0.0.1:16823/proxy_on.pac 填入“PAC 网址”框,立即更新情景模式 -> 应用选项
设置pac文件的更新周期,设定->通用
去掉Lantern的系统代理,如果到“局域网设置”里面查看,PAC地址应该被清空了的。



然后将SwitchyOmega设置为Lantern



Category golang