What is Proxy Switcher extension?
Proxy Switcher is aimed to bring all the proxy related UI to a single panel for easy access. It supports multiple profiles and hence proxy switching is very simple. The UI is driven from Firefox's built-in proxy setting UI and basically, there is nothing new to learn. This version is based on my Proxy Switcher extension built for Firefox browser only. This version works in Firefox, Chrome, and Opera browsers. Settings are optimized and UI is more user-friendly.
How can I have multiple profiles for the "manual" proxy mode?
To save your first profile, just fill the IP and port textboxes and choose a name for your profile. Now click on the save button. To save a new profile, just update IP and port addresses and select a new name and press the save button once again.
To switch between profiles, clear the profile textbox and press the arrow key located on the right side of the textbox. You will see a list with all profiles listed. You can also type part of the name and when it is suggested in the history list, use the down arrow key to select it.
If you don't need a profile anymore, just select that profile from the list and then press the remove button. This way it will get removed from the storage.
What are the differences between the available proxy settings in the panel?
Basically, you have four modes of operation:
No proxy: Select this if you don't want to tunnel your internet traffic through a proxy server at all.
Auto-detect proxy: Select this if you want your browser to automatically detect the proxy settings for your network.
System proxy: Select this if you want to use the proxy settings configured on your operating system level. This is the default setting.
Manual proxy configuration: Select this if you have multiple proxy servers and you want to switch between these servers. Ask your system administrator for the configuration information. Each proxy requires a hostname and a port number. If the same proxy name and port number are used for all protocols, check the "Use this proxy server for all protocols" options. "No Proxy For" is the list of all the hostnames or IP addresses that will be bypassed (the traffic is not going through the selected server).
PAC Script: Choose this option if you have a proxy configuration (.pac) file. You can either use a URL that points to a PAC script or you can write the PAC script code inside the editor. The latter one is handy to easily edit the PAC script right from the panel.
What is the meaning of the badge number that is occasionally shown on the toolbar button?
If a resource in the current tab fails to load, badge number increases by one. You can see the list of failed resources by opening the panel and pressing the "Error" button. This button only appears if there is at least one failure.
Where can I read more about the different proxy options available in this extension?
Read this blog post: Configure Proxy Settings in Firefox
Is it possible to change the position of the toolbar button?
Yes, in Firefox browser please read the guide here, a Comprehensive Guide to Firefox Customization. In Chrome, long press the left mouse-click and move the button to the new position. You can even hide the button in the Chrome menu from the right-click context menu option.
What is the meaning of the "remote DNS" option (Firefox browser only)?
This option controls whether DNS lookups for SOCKS v5 clients happen on the client or on the proxy server side. If anonymity is important to you, it is recommended to turn this option on when the proxy type is SOCKS version 5. This way, resolving hostnames to IP addresses are taken place in the SOCKS server instead of your network
What are the different proxy protocols the extension supports?
The extension supports all four proxy protocols that Firefox or Chrome browser can handle:
Is it possible to double check the proxy setting to make sure the settings have been actually applied?
Yes, open the toolbar panel. At the bottom of the panel, there are 3 links to actually check the proxy setting from outside. You can check your new IP address, Geo location and even you can check your actual DNS resolution chain.
How can I store a proxy configuration for later use?
Storing profiles are available on two tabs (Manual Proxy and PAC Script). Once information is filled in the boxes, simply press the apply button. All the data is stored and can be accessed later by pressing the drop-down arrow button next to the textbox.
What is the recommended proxy method?
It really depends on your needs. If you want full anonymity, always use "Manual" mode with a SOCKS server (Leave other fields empty). If you want to maximum speed, then go with "Automatic" mode and introduce a PAC file to unblocked certain websites or hosts. To learn more on how to write a PAC file, read Configure Proxy Settings in Firefox blog post. Always use "Check External IP" and "DNS Leakage" button on the panel to make sure the configuration works as expected.
Is it possible to export the proxy settings of this extension to a clean profile?
Not at the moment. This is in my to-do-list though.
What is the "Use Remote DNS" option listed in the "Manual" tab of the popup window and why Chrome version doesn't have it?
This option forces the Firefox version to resolve hostnames from the remote SOCKS server. Note that this option is only active when proxy type is "SOCKS4" or "SOCKS5". This option can prevent DNS leakage. You can verify it by using the DNS leakage tool listed in the popup.
In the Chrome version, when a "SOCKS" server is used, automatically DNS resolution takes place in the server side and hence there is no leakage. Since there is no option for local resolution of hostnames, this option is hidden in the Chrome version.
How can I get a free proxy server?
Open the popup and switch to the manual tab. There is a section to search for a free proxy server. When this button is pressed, the extension configures your browser to use "Direct" connection by default to bypass any proxy configuration either browser-level or system-level, then searches for a free proxy server from the API server that is provided in the options page (there are two API servers that provide free proxy servers). When a proxy server is returned by the API server, the extension validates this proxy server by pining three remote servers simultaneously. If the ping result was successful, the proxy server is being used and its details are set in the manual tab. You can save this server as a new profile for later use. To configure or limit what type of proxy servers the extension should look for go to the options page. Also, you can configure the proxy settings while searching for a new server. For instance, if you are connected to the internet using a system-level proxy, then set "System Proxy" in the options page to switch to this mode while searching for a new server.
Is it possible to reset the proxy configuration after a browser restart?
Yes, by default the extension resumes the latest configured proxy upon startup. If this is not your preference, go to the options page and define your preferred proxy mode.
Can I use this extension in a corporation to set proxy settings of multiple computers?
As of version 0.4.0, this extension supports managed preferences. You can set three preferences and populate these preferences to the all machines in your network. See github.com/.../proxy-switcher/.../schema.json for more info. 1) "import-version": A non-zero integer that represents the version of the recently imported object. "import-json": a JSON string that contains all the objects that need to be written to the local storage of all machines. To create this JSON string, first, apply all the settings in one extension and then use "chrome.storage.local.get(null, prefs => console.log(JSON.stringify(prefs)))" in the background console to generate the JSON string. Now populate the string with an incremented version number to the machines. Each browser after a restart will grab the new JSON string and parses it and replaces the local storage with the one that is provided. This way all the Proxy Switcher extensions on your network will have the same profile settings as the machine that is used to create the JSON object from. Note that whenever the JSON version is updated, local changes on all machines will be reset to the defaults that are provided in the JSON string. To use managed storage, please refer to Configuring Apps and Extensions by Policy.
If I use this extension to change my IP address, can I assume that my real location is hidden?
If you are using a SOCKS5 proxy, then you can be sure that all your browser's internet traffic is going through the SOCKS server so that your IP address is protected. Note that in Firefox browser, you need to enable DNS option in the extension's popup to make sure the DNS requests are also being performed through the SOCKS5 server. To check the validity of your setup, open https://webbrowsertools.com/ip-address/ webpage and take a look at different sections. As stated on this web page, your actual IP address is still trackable by WebRTC protocol. If you can see the actual IP in the WebRTC section, then install Privacy Settings extension, and alter the WebRTC section in the UI to make sure the WebRTC is completely disabled or is not revealing your actual IP address. When you are certain that your IP address and DNS is not leaking, to make sure that your identity matches with the external IP address that you have, the timezone need to be adjusted. Your browser reveals the actual timezone that you are using to any server. Read Change Time Zone in the Browser blog post for more info. You have to options to hide your real timezone. Either you can change the timezone of your operating system to match the location of your external IP address, or you can install Spoof Timezone extension to change the timezone of your browser. This extension offers automatic timezone adjustment based on the remote IP address which is more convenient than altering the actual operating system's timezone. Note that the former method is more reliable though.
Please keep reviews clean, avoid the use of improper language and do not post any personal information.