moreFine / ShadowsocksX-NG-R

Next Generation of ShadowsocksX

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ShadowsocksX-NG-R

Build Status

Next Generation of ShadowsocksX with SSR support.

Why?

It's hard to maintain the original implement. There are too many unused code in it. It also embed ss-local source. It's crazy to maintain dependencies of ss-local. So it's hard to update ss-local version.

Now I just copy the ss-local from Homebrew. Run ss-local executable as a Launch Agent in background. Serve pac js file as a file url. So there are only some souce code related to GUI left. Then I rewrite the GUI code by swift.

Requirements

Running

  • macOS Sierra(v10.12+)

Building

  • Xcode 12.4+
  • cocoapod 1.10.1+

Features

  • SSR features!
  • Ability to check update from GitHub.
  • White domain list & white IP list
  • Use ss-local from shadowsocks-libev 3.3.5_1
  • Ability to update PAC by download GFW List from GitHub. (You can even customize your list)
  • Ability to update ACL white list from GutHub. (You can even customize your list)
  • Show QRCode for current server profile.
  • Scan QRCode from screen.
  • Import config.json to config all your servers (SSR-C# password protect not supported yet)
  • Auto launch at login.
  • User rules for PAC.
  • Support for OTA is removed
  • An advance preferences panel to configure:
    • Local socks5 listen address.
    • Local socks5 listen port.
    • Local socks5 timeout.
    • If enable UDP relay.
    • GFW List url.
    • ACL White List url.
    • ACL GFW list and proxy bach CHN list.
  • Manual spesify network service profiles which would be configure the proxy.
  • Could reorder shadowsocks profiles by drag & drop in servers preferences panel.
  • Auto check update (unable to auto download)

Different from original ShadowsocksX

Run ss-local as backgroud service through launchd, not in app process. So after you quit the app, the ss-local maybe is still running.

Add a manual mode which won't configure the system proxy settings. Then you could configure your apps to use socks5 proxy manual.

TODO List

  • 用nettop替换掉sar,重写显示网速功能
  • 用Swift重写剩余的OC代码
  • 用SwiftUI重写界面
  • Embed the http proxy server privoxy, get it.
  • ACL mode support Shadowsocks ACL

License

The project is released under the terms of GPLv3.

About

Next Generation of ShadowsocksX

License:GNU General Public License v3.0


Languages

Language:JavaScript 65.7%Language:Swift 30.1%Language:Objective-C 2.4%Language:Python 1.1%Language:Shell 0.6%Language:Ruby 0.1%