Git Product home page Git Product logo

salarcode / smartproxy Goto Github PK

View Code? Open in Web Editor NEW
1.7K 21.0 107.0 6.76 MB

Firefox/Chrome browser extension. SmartProxy will automatically enable/disable proxy for the sites you visit, based on customizable patterns.

Home Page: https://addons.mozilla.org/en-US/firefox/addon/smartproxy/

License: GNU General Public License v3.0

JavaScript 5.89% CSS 25.19% HTML 11.72% TypeScript 57.04% PowerShell 0.16%
proxy proxy-switcher webextensions firefox-extension firefox chrome-extension proxy-list edge-extension browser-extension chrome

smartproxy's Introduction

SmartProxy

license Travis Crowdin

Download From Store

What is SmartProxy

SmartProxy is a Firefox/Chrome extension based on WebExtensions/Chrome Extensions technology.

It uses patterns to automatically define rules to proxify your web experience. With SmartProxy, you don't need to change your proxy manually and turn it on and off. You can add your desired website to the proxy rules list with just one click. After that, when you visit that specific website, SmartProxy will act and all you data for that website will be transferred though the proxy, without you doing anything.

What's more, SmartProxy is inspired by AutoProxy and AutoProxy-ng and that are now considered legacy. SmartProxy is completely written from ground up using WebExtensions and provides more functionality than those proxies.

Highlights
  • Automatically detect when to enable or disable proxy to certain websites based on rule patterns
  • Easily switch between many proxy servers as your active proxy server setting
  • Easily with one click add current site to your proxy list
  • View current website items and requests and decide whether to proxify them with one click
  • Easily switch between proxy modes and enable proxy for all domains
  • Proxy API is supported through subscriptions
  • Backup/Restore settings and rules

How to translate

If you are interested to have SmartProxy in your language or it is not translated completely you can head to https://crowdin.com/project/smartproxy then login with Google or Github and there by clicking your language start translating right away.

How to build/test:

Requirements

Node.js
Firefox or Chrome browser

Run the app

npm install
npm run build-ff:watch

To install in Firefox follow these instructions:

https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/

  1. build the project using npm run build-ff command
  2. open Firefox
  3. enter "about:debugging" in the URL bar
  4. click "Load Temporary Add-on"
  5. open the extension's 'build' directory and select any file inside the extension.

To install in Google Chrome follow these instructions:

https://developer.chrome.com/docs/extensions/mv3/getstarted/development-basics/#load-unpacked

  1. build the project using npm run build-ch command
  2. Open the Extension Management page by navigating to chrome://extensions.
  3. The Extension Management page can also be opened by clicking on the Chrome menu, hovering over More Tools then selecting Extensions.
  4. Enable Developer Mode by clicking the toggle switch next to Developer mode.
  5. Click the LOAD UNPACKED button and select the extension's 'build' directory.

smartproxy's People

Contributors

bytemain avatar contrun avatar dependabot[bot] avatar dogancelik avatar flyher avatar jackyzy823 avatar kiwnix avatar loveqianool avatar riajyuu avatar salarcode avatar solokot avatar stzx avatar yfdyh000 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

smartproxy's Issues

Add option to exclude activation status/active proxy from syncing

I use different computers which may need different proxies at different times (e.g. home, work place 1, work place 2, travel, ...). I like the fact that settings are synced across devices, but I don't want the activation status ("Direct", "Smart Proxy", "Always Enable") and the selected proxy to be synced (my proxy at work obviously doesn't function at home).

Could you please provide an option to exclude those settings from syncing? (I still want the proxy lists to be synced).

YouTube TLS handshake error

hi,
After working well for a while, suddenly SmartProxy stop loading (TLS handshake problem) YouTube (just youtube, works well for all other sites).

Doesn't connect to proxy

Hi,
I can connect to proxy server through FireFox settings but can't connect through extension in both proxy and smart mode.

Bypass list is not processed automatically

The bypass list is not automatically loaded when the browser starts up. When the proxy is enabled, the bypass settings are ignored until the "Bypass List" menu is opened and the "Save Changes" button is selected.
Tested with a SOCKS proxy in Always Enabled mode on Firefox 60 ESR

Refactor proxy rules storage

Refactor proxy rules storage to not limit the rules definition.
Currently only host names are allowed.
It should be possible to define every type of match-patterns.

Cannot use Website with HTTP-Auth-Dialog anymore

I have a page that requests a user/password using http-auth. After activating this addon, the password input dialog does no longer appear. Instead the page returns directly a 401 error. If I choose "Direct (No proxy)", the authentication dialog appears and authentication works.

Hint: I configured a proxy that uses authentication with user/password. If I use a proxy without authentication, everything works as expected.

Track language messages changes

If anyone want to get updates of language file changes, subscribe to this issue.
This includes addition/removal/update of the messages.

Implement proxy-per-origin

Some may know this as proxy-per-tab, but this concept is cleverer. It enables the proxy if the origin of a tab matches a rule, then proxy will be enabled for the all requests that are made from that tab.

This depends on Firefox. Unable to implement until they do first.
https://bugzilla.mozilla.org/show_bug.cgi?id=1368559

This is not possible in Chrome since their API is limited in nature

Improve jsGrid method of editing Proxy Server and Rule in grid.

Edit proxy server without clocked the Update" button in Settings, click the save changes button, it says "Proxy servers saved successfully.".
This seems is not a good UI, the user should not need to confirm the editing, the user can Reject change as a decent revocation.

Bundle proxies/ Integrated proxy list

If you could add some proxies that come with the addon or add a section in the preferences where it shows proxies from a realiable proxy list web with a button to quickly add the proxy to the addon's proxy list, it would be perfect.

Thank you.

Add support for port number in rules

When add a url with port such as https://hu60.net:4443/, the partten is not corrent and the proxy will not be applied.

screenshot

Brought to you by Salar Khalilzadeh , Version: 0.7.2
Firefox 58.0.1 (64 bits)

Allow to specify proxy server for each rule

It would be nice to be able to specify which proxy to use for which pattern, instead of always being forced to use one single proxy.

For instance, I have one SOCKS proxy "A" to access network at work, and another proxy "B" to access network at another working place.
With FoxyProxy, I was able to match the URL pattern and use proxy "A" for all URLs in that network, and proxy "B" for URLs in the other network.

That seems to be the only feature missing in comparison to FoxyProxy I believe, and the FoxyProxy 5 rewrite is currently cracking up...
Likely, handling that is also necessary to allow import from FoxyProxy.

Maybe the easiest to embed that in the GUI would be to have rules use the "global" proxy by default, but allow to select a dedicated proxy optionally specific for the rule.

Bypass list for local addresses fail at each new session until "Save Changes" is pressed again

I have been able to reproduce this bug consistently with a SOCKS5 proxy, even after reinstalling Firefox/Waterfox completely:


1. Select "Always Enable" mode.

2. Select "Enable for 'Always Enable' mode" in the "Bypass List" tab.

3. Add local address (not sure if correct term) exceptions - in my case for 192.168.0.2 (Pihole) I simply added 192.168.0.2

4. Click "Save Changes".

5. Close Firefox/Waterfox completely, then open it back up.

6. Go to the local address (192.168.0.2 in my case), it will fail to load because the proxy is running despite the bypass rules.

7. Go to the "Bypass List" in the SmartProxy settings and hit "Save Changes".

8. Reload the local address tab, and it loads instantly.


This is a very strange bug, which only seems to occur with local addresses. This doesn't happen with regular websites. Steps 5-8 are the actual bug that can be repeated, steps 1-4 are just the initial setup.

Firefox: PopUp Width bug in Overflow menu

When placing SmartProxy icon inside Overflow menu ant then opening it a graphical bug appears.
smartproxy
It looks like this is happening because the title of current proxy state is too long.

Happens on FF57, latest Nightly on Win10x64 with SmartProxy 0.6.2.

Bypass List not working with "Always Enabled"

I have the "Enable for 'Always Enable' mode" option selected, but it still isn't working. To test, I added:

google.com
google.com
://.google.com/*

I wasn't sure if having entries with/without wildcards would make a difference, I couldn't find documentation for the Bypass List feature. Does the host get an auto-created rule like the regular "Add Rule" page does?

Either way, when going to https://www.google.com the SmartProxy icon is still green, hovering over it says:

"SmartProxy: Always Enable"
"In effect rule:none"
"Proxy server: xxxxxx : xxxx"

Searching "ip" on Google still shows my proxy IP address. Using the "SmartProxy" mode works, but it seems that I would have to go to each site once without a proxy in order to add it to the rules.

I've tried with both Firefox and Waterfox. I've tried with and without "Proxy DNS when using SOCKS v5" and it didn't make a difference.

Is there something I'm missing?

socks auth dont work in smart mode

If I use a socks5 proxy with authentification with the setting "Always Enable" it works, but with the same proxysettings it does not work with the setting "Smart Proxy"
I checked this with my own Ubuntu server running a dante socks proxy with authentification.
The error logs of the socks server say:
" error after reading 3 bytes in 0 seconds: client offered no acceptable authentication method"

Bypass doesn't work well with Netgear Router

I've setup a bypass for routerlogin.net and 10.0.0.1 (which is my Netgear router's IP) but with Smart Proxy enabled, the console shows the unauthorized login page (http://www.routerlogin.net/unauth.cgi or http://10.0.0.1/unauth.cgi) . I also noticed that the console page doesn't show me the login prompt to enter the username and password fields when the extension is on Smart Proxy mode.

Only way I could login to the console properly was to set the extension to Direct (no proxy) mode.

I'm using the extension from Google Chrome.

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.