MacProxy Manual
MacProxy consists of a System Preferences pane and a menulet. The System Preferences pane is used to configure MacProxy. Both the pane and the menulet allow you to quickly change the active profile (or disable MacProxy) and view the current status.

MacProxy groups proxies, rules, and DNS settings into profiles. Proxies contain the settings required to connect to a proxy server or proxy chain. An included proxy checker may be used to determine the proxy type and status. Rules specify how to handle connections. This includes forwarding the connection to a proxy, connecting directly, or blocking the connection. Rule parameters include applications, hosts, and ports. DNS items specify how to handle DNS requests. Domains may be resolved locally or remotely using the proxy server. Each DNS item includes a list of hosts to apply the settings to.

System Preferences Pane
Profiles

Profiles contain a set of proxies, rules, and DNS settings. A profile may be enabled using the MacProxy System Preferences pane or the menulet. Profiles may be imported and exported (XML) which makes it easy to share across Macs. The profiles view is located on the left side of the MacProxy System Preferences pane.

To add a new profile, click the + button on the bottom bar and enter the profile name. To delete a profile, select it and then click the - button. The profile settings button allows you to rename, duplicate, import, and export profiles. Select a profile first to rename, duplicate, or export the profile.

Import a profile to add it to MacProxy. Exporting a profile creates an XML file that contains all profile settings including proxies, rules, and DNS settings. Note that the file also contains any proxy passwords and client/server keys.

Proxies

Proxies contain the settings required to connect to a proxy server or proxy chain. To add or modify a proxy, select a profile and then the Proxies tab in the MacProxy System Preferences pane.

To add a new proxy, click the + button on the bottom bar and select Add Proxy. Enter the proxy name and then select the type. MacProxy supports HTTP Transparent, HTTP Non-Transparent, HTTP Connect, SOCKS 4, SOCKS 4A, and SOCKS 5 proxy protocols as well as SSH Tunnels. If you're unsure of the proxy type, use the proxy checker (described below). The Host may be either a domain or IP address. Enter the proxy port.

For HTTP proxies, configure which client ports to proxy. Only the ports listed are intercepted and forwarded to the HTTP proxy server. Generally this list includes 80, 443, and 8080 (note that 443 is not filtered for HTTP Non-Transparent proxies). Enter the Username and Password (if applicable) for HTTP Non-Transparent and HTTP Connect proxies. For HTTP Non-Transparent proxies, select the Anonymize Requests option to remove user identifying HTTP headers.

For SOCKS proxies, enter the User ID for SOCKS 4 and 4A proxies or the Username and Password for SOCKS 5 proxies (if applicable).

For SSH Tunnels, enter the Username and Password (if applicable). Select the Client Key to use the client's private key for authentication. Select the Server Key to validate the server when connecting. If the client/server key is supported, the key's "fingerprint" will be displayed. Next, select the preferred Cipher to use. Finally, to prevent the server from closing an idle connection, enable the Server Alive Interval and enter the number of seconds MacProxy should wait before updating an idle connection.

To add a new proxy chain, click the + button on the bottom bar and select Add Chain. Enter the proxy chain name. Chains may contain any number of SOCKS proxies, however, are limited to at most one HTTP proxy, which must be at the end of the chain, and at most one SSH Tunnel, which must be at the start of the chain. To add a proxy to a chain, drag a proxy onto the chain. To copy an existing proxy to the chain, hold down the Option key and drag the proxy to the chain. MacProxy will open proxies in the order specified in the chain. Reorder proxies within a chain by dragging them to a new location. Note that proxies within chains are indented in the list.

To delete a proxy, select it and then click the - button. The proxy settings button allows you to edit, duplicate, and display the proxy checker. Select a proxy first to edit or duplicate the proxy.

The proxy checker provides a convenient way to test a proxy and determine the protocol a proxy server supports. All HTTP and SOCKS proxy protocols are supported, however, SSH Tunnels and proxy chains are not supported. To check a proxy server, select a proxy from the list or clear the selection, then select Proxy Checker from the proxy settings button. If a proxy was not selected, enter the connection details including the username and password, if required. If a supported proxy protocol is detected from the server, the Add Proxy button is enabled to add the proxy to the profile. Note that the proxy checker is disabled when MacProxy has an active profile selected.

Rules

Rules specify how to handle connections. To add or modify a rule, select a profile and then the Rules tab in the MacProxy System Preferences pane.

To add a new rule, click the + button on the bottom bar and enter the rule name. A rule may apply to a list of applications, hosts, and ports. Add applications by name or select them. Use * to wildcard parts of an application name. Hosts may include domains, IP addresses, and IP address ranges. Both IPv4 and IPv6 addresses are supported. Ports may include individual ports or port ranges. Select an Action from the menu. The action is performed only if the rule matches the connection attributes (all conditions must be met). The action menu lists all profile proxies and proxy chains at the top followed by Direct to connect directly and Block to block the connection.

MacProxy will process rules in the order specified in the view. Reorder rules by dragging them to a new location. Rules may be enabled when adding or editing a rule or from the rules view. If a rule is disabled, it is not considered when processing connections.

To delete a rule, select it and then click the - button. The rule settings button allows you to edit, duplicate, and reset the rules. Select a proxy first to edit or duplicate a rule. Reset the rules to restore the original rule settings.

DNS

DNS items specify how to handle DNS requests. To add or modify a DNS item, select a profile and then the DNS tab in the MacProxy System Preferences pane.

To add a new DNS item, click the + button on the bottom bar and enter the DNS item name. Add one or more hosts. Use * to wildcard parts of a host. Select Local or Remote from the Resolve menu. If set to local, DNS resolution will take place on your Mac. Otherwise, if set to remote, the proxy server will resolve the domain.

MacProxy will process DNS items in the order specified in the view. Reorder DNS items by dragging them to a new location. DNS items may be enabled when adding or editing them or from the DNS view. If a rule is disabled, it is not considered when processing DNS requests.

To delete a DNS item, select it and then click the - button. The DNS settings button allows you to edit, duplicate, and reset the DNS items. Select a DNS item first to edit or duplicate the DNS item. Reset the DNS items to restore the original DNS item settings.

Note that if the profile contains any SOCKS 4 proxies, all DNS requests are processed locally. This is required since SOCKS 4 proxies do not support domain name resolution.

If a DNS request is resolved remotely, MacProxy returns "fake" IP addresses (e.g. 0.0.2.3) to applications. When the actual connection occurs, it then passes the host name to the proxy server for resolution. Applications may need to be restarted when the active profile is updated since invalid IP addresses may be cached. Also, note that if a profile contains at least one HTTP Non-Transparent proxy, "fake" IP addresses are always returned (to support sending the modified HTTP request).

Settings

The Settings view allows you to configure MacProxy's settings.

Select Show MacProxy in the menu bar to display the MacProxy menulet in the system menu bar. This allows you to control and view the current status of MacProxy from the Finder or any application.

The Enable Logging checkbox turns logging on or off. This may be useful for troubleshooting problems and watching the connection status of applications (and their network usage). Click the Open Log File button to display the log in the Console application. The log is located at:

~user/Library/Logs/MacProxy.log

Select Check for updates automatically to periodically check for new MacProxy updates. If enabled and an update is available, an alert will appear. Note that updates are not installed automatically.

To uninstall MacProxy, click the Uninstall MacProxy button. This will disable MacProxy, move it to the Trash, and quit System Preferences.

Menulet
The menulet provides a convenient method to control MacProxy and view the current status from anywhere in the system.

The icon appears black, if enabled, and grey, if not. To enable MacProxy, select a profile. To disable, select the Off item.

If MacProxy is enabled, the menulet displays the connection statistics. This includes the number of active connections, data sent, and data received. Note that these statistics only apply to data proxied by MacProxy.

Select the MacProxy Preferences item to launch the System Preferences application and open the MacProxy preference pane.