Giter VIP home page Giter VIP logo

flora-kit's Introduction

Flora

基于 shadowsocks-go 做的完善实现,完全兼容 Surge 的配置文件。

NOTE: 目前已完整实现自动 Proxy 的逻辑,可以用了,已在自己的 macOS 环境连续跑了两天,稳定有效。

2016-11-22 11 00 00

功能列表

  • macOS 和 Linux 同时支持;
  • 连接 ShadowSocks 代理,并在本地建立 socks 代理服务,以提供给系统代理配置使用;
  • 支持域名关键词、前缀、后缀匹配,制定 Direct 访问(白名单)或用 Proxy 访问(黑名单);
  • 支持 IP 白名单,黑名单;
  • 支持 GeoIP 判断目标网站服务器所在区域,自动选择线路;
  • 启动的时候自动改变 macOS,windows 网路代理配置,无需手工调整;

TODO

  • HTTP, HTTPS proxy 实现;
  • 自动代理 pac 实现;
  • 支持 Linux 网络代理自动设置;

下载 && 运行

https://github.com/huacnlee/flora-kit/releases

请根据系统下载需要的 release 包。

NOTE: 由于启动的时候,需要修改系统的网络配置,所以你需要用 sudo 来执行:

macOS

$ cd flora
$ sudo ./flora

Linux

$ cd flora
$ ./flora

Windows

flora.exe

开发说明

由于 go get 经常下不了包,我把依赖的几个库用vendor的方式加入工程 开发的时候需要执行下面的操作:

git submodule init
git submodule update

License

Apache License 2.0

flora-kit's People

Contributors

cloudnuy avatar esme518 avatar gh0sting avatar huacnlee avatar youkale avatar zhaojames0707 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flora-kit's Issues

为什么会出现“connection remote shadowsocks fail”这样的提示呢?

hi,

配置文件flora.conf的内容:
[General]
loglevel = notify
replica = false
skip-Proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, *.local, e.crashlytics.com

以下参数仅供 iOS 版本使用

bypass-system = true
bypass-tun = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 0.0.0.0/31
ipv6 = true

以下参数仅供 macOS 版本使用

interface = 127.0.0.1
socks-port = 1080

allow-wifi-access = true
enhanced-mode-by-rule = true
exclude-simple-hostnames = true

[Proxy]
Proxy = shadowsocks, my-vps-ip, 8989, aes-256-cfb, my-pw

[Rule]
FINAL,Proxy

然后我运行:
sudo ./flora-kit -s flora.conf
输出:
Password:
2018/10/16 01:16:14 Loading proxy server direct done.
2018/10/16 01:16:15 Listen socket 127.0.0.1:1080
2018/10/16 01:16:38 connection remote shadowsocks fail

我检查了上面我所写的ss账号的参数,都是对的,为什么会出现“connection remote shadowsocks fail”这样的提示呢?

如何不修改系统代理

Windows global proxy settings are successful ,Please use after 2 minutes ...

如何不修改,只是监听指定端口,因为是内网,不希望修改系统代理

没有走代理的疑问

配置文件如下, 百度能上, 但是google上不了. ss是没问题的, 用ss-local的话很正常.
是我的配置文件哪里写错了吗?

[General]
loglevel = notify
replica = false
skip-Proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local, e.crashlytics.com

# 以下参数仅供 iOS 版本使用
bypass-system = true
bypass-tun = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 0.0.0.0/31
ipv6 = true

# 以下参数仅供 macOS 版本使用
interface = 127.0.0.1
socks-port = 1080

allow-wifi-access = true
enhanced-mode-by-rule = true
exclude-simple-hostnames = true

[Proxy]
DIRECT = direct
Proxy = shadowsocks, 1.2.3.4, 1234, chacha20, demo-passwd

[Proxy Group]
# 🚀 Proxy = select, 🌞 Line

[Rule]
// BLOCK ADS
# DOMAIN-SUFFIX,mgid.com,REJECT
// DIRECT RULES
# DOMAIN-SUFFIX,cn,DIRECT
// NORMAL RULES
# DOMAIN-KEYWORD,instagram,Proxy
# DOMAIN-SUFFIX,youtube.com,Proxy
// China IP use DIRECT
GEOIP,CN,DIRECT
# Other
FINAL,Proxy

报错,求助

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x1236ccf]

goroutine 61 [running]:
github.com/huacnlee/flora-kit/flora.(*ProxyConfig).GetProxyServer(0xc42011c000, 0xc4201fee34, 0xa, 0x0, 0x0)
/Users/sean/dev_gopath/src/github.com/huacnlee/flora-kit/flora/config.go:162 +0x12f
github.com/huacnlee/flora-kit/flora.createRemoteConn(0x0, 0x0, 0x0, 0xc42049a060, 0xc420232380, 0x1e, 0x0, 0x0, 0x21, 0x102)
/Users/sean/dev_gopath/src/github.com/huacnlee/flora-kit/flora/flora.go:217 +0x5c
github.com/huacnlee/flora-kit/flora.matchRuleAndCreateConn(0x130a980, 0xc4200bc0a0, 0xc420232380, 0x1e, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/Users/sean/dev_gopath/src/github.com/huacnlee/flora-kit/flora/flora.go:152 +0xee
github.com/huacnlee/flora-kit/flora.handleConnection(0x130a980, 0xc4200bc0a0)
/Users/sean/dev_gopath/src/github.com/huacnlee/flora-kit/flora/flora.go:115 +0x1e7
created by github.com/huacnlee/flora-kit/flora.Run
/Users/sean/dev_gopath/src/github.com/huacnlee/flora-kit/flora/flora.go:81 +0x368

自动选择节点的rule

请教下,我的surge.conf配置了,从一堆节点中,自动选择最优的作为连接的节点,flora有没有支持该特性?如果不是,那么是按照什么来选择节点的?

ubuntu无法运行

./flora-kit: 4: ./flora-kit: Syntax error: Unterminated quoted string

求文档

看 issue 里大家说的,好像可以写配置规则,有没有相关的文档呢

另外这里的配置规则可以在 Linux 中应用到全系统吗?据我所知现在 Linux 下 system-wide 自动代理没有好的解决方案。

如果不行的话,那我只将它作为一个 SS 客户端,和 sslocal 有区别吗?

linux 下是否需要配合其它软件来实现自动网络分流?

在树莓派上编译之后,尝试运行了一下看到提示:

./flora-kit 
2017/07/01 11:15:14 Loading proxy server direct done. 
2017/07/01 11:15:14 Loading proxy server proxy done. 
2017/07/01 11:15:14 WARN: Your not in macOS, Networksetup skiped. Please change Network proxy setting by manually.
2017/07/01 11:15:14 Listen socket 127.0.0.1:1080

用 curl 访问谷歌也没有返回结果

似乎 linux 下不能直接自动网络分流

不知道什么问题,没有办法使用,怎么查看日志?

2017/08/03 13:36:26 Loading proxy server direct done.
2017/08/03 13:36:26 Loading proxy server proxy done.
2017/08/03 13:36:26 Listen socket 127.0.0.1:1086
2017/08/03 13:36:30 [final]->[PROXY] ✅ [p22-caldav.icloud.com:443]
2017/08/03 13:36:44 [final]->[PROXY] ✅ [p22-keyvalueservice.icloud.com:443]
2017/08/03 13:36:46 [final]->[PROXY] ✅ [www.baidu.com:443]
2017/08/03 13:36:49 [final]->[PROXY] ✅ [www.baidu.com:443]
2017/08/03 13:36:49 [final]->[PROXY] ✅ [www.baidu.com:443]
2017/08/03 13:36:50 [final]->[PROXY] ✅ [ss0.baidu.com:443]
2017/08/03 13:36:50 [final]->[PROXY] ✅ [ss1.baidu.com:443]
2017/08/03 13:36:50 [final]->[PROXY] ✅ [ss3.baidu.com:443]
2017/08/03 13:36:50 [final]->[PROXY] ✅ [ss2.baidu.com:443]
2017/08/03 13:36:50 [final]->[PROXY] ✅ [sp0.baidu.com:443]
2017/08/03 13:36:51 [final]->[PROXY] ✅ [www.baidu.com:443]
2017/08/03 13:36:51 [final]->[PROXY] ✅ [sp1.baidu.com:443]
2017/08/03 13:36:51 [final]->[PROXY] ✅ [sp0.baidu.com:443]
2017/08/03 13:36:51 [final]->[PROXY] ✅ [sp1.baidu.com:443]
2017/08/03 13:36:54 [final]->[PROXY] ✅ [sp3.baidu.com:443]
2017/08/03 13:36:59 [final]->[PROXY] ✅ [www.baidu.com:443]
2017/08/03 13:36:59 [final]->[PROXY] ✅ [www.baidu.com:443]
2017/08/03 13:37:43 [final]->[PROXY] ✅ [gsa.apple.com:443]
2017/08/03 13:37:46 [final]->[PROXY] ✅ [gsa.apple.com:443]
2017/08/03 13:37:50 [final]->[PROXY] 💊 [www.google.com:443]
2017/08/03 13:37:57 [final]->[PROXY] 💊 [www.google.com:443]
2017/08/03 13:38:14 [final]->[PROXY] 💊 [www.youtube.com:443]
2017/08/03 13:38:16 [final]->[PROXY] 💊 [i.ytimg.com:443]
2017/08/03 13:38:16 [final]->[PROXY] 💊 [yt3.ggpht.com:443]
2017/08/03 13:38:24 [final]->[PROXY] ✅ [p22-ckdatabase.icloud.com:443]
2017/08/03 13:38:26 [final]->[PROXY] ✅ [p22-keyvalueservice.icloud.com:443]
2017/08/03 13:38:37 [final]->[PROXY] 💊 [www.google.co.jp:443]
2017/08/03 13:38:37 [final]->[PROXY] 💊 [www.google.co.jp:443]
2017/08/03 13:38:37 [final]->[PROXY] 💊 [www.google.co.jp:443]
2017/08/03 13:38:37 [final]->[PROXY] 💊 [www.google.co.jp:443]
2017/08/03 13:38:37 [final]->[PROXY] 💊 [www.google.co.jp:443]
2017/08/03 13:38:38 [final]->[PROXY] 💊 [www.google.co.jp:443]
2017/08/03 13:38:42 [final]->[PROXY] 💊 [www.google.com:80]
2017/08/03 13:38:42 [final]->[PROXY] 💊 [www.google.com:80]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.