General purpose (reverse) proxy and forwarding tool for networking noobs. Now written in Go!
This updates added the new alias hostname function as well as rewritten the access rule set to support per Proxy Hostname access filter architecture.
To use the alias hostname during creating a new Proxy Rule, use comma to separate the different hostname. Wildcards are also supported in the alias hostname. Here is an example.
main.example.com,*.main.example.com,alias.example.com
You can also find the alias hostname editor in the HTTP Proxy list (Edit mode)
Windows 7 support was restored due to my test bench is still running Windows 7 and I am too busy to upgrade it. If you are still using a Windows 7 machine, you can use the zoraxy_windows_amd64_NT6_1.exe
executable. Note that Windows 7 support might be discontinued anytime and as it is build with older version of Go compiler, it might also come with some minor security issues.
domain
field in json config #120This update fixed a few minor bugs from the v3 big updates.
This is a big rewrite of the original Zoraxy v2 proxy core for covering more real-life use cases based on feedback from issues.
IMPORTANT NOTES Zoraxy v3 host rules are not compatible with v2, which the "Backup & Restore" feature is also not compatible. Please start a new installation from scratch if you are currently using Zoraxy v2.
More Screenshots
This version fixes bug in 2.6.7 and added "Allow plain HTTP access" options for force TLS per domain
The function is named "allow plain HTTP access" which is hidden under the advance setting tab. in "Create proxy rule" or the proxy rule inline edit interface. Once this option is enable, the subdomain defined in the rule can be accessed via plain HTTP and HTTPS.
This function is only usable with the following options enabled
This version fixes bug in 2.6.6 and added the static web server features
To add templates to black / whitelist, create a html file under the blacklist / whitelist folder. By default, the templates should be placed at the following paths.
./www/templates/blacklist.html
./www/templates/whitelist.html
If the template is not found, the build in one will be used.
Web directory can only be changed via startup parameter -webroot
due to security reasons. You can manage your web directory and perform some basic file operations like rename, upload, download, copy / cut and delete via the web directory manager which is basically a trim down version of the ArozOS File Manager.
If you do not want to expose your web directory to the web interface due to security concerns, use -webfm=false in your startup parameter to disable the feature. This will disable all api related to the file manager in the back-end server.
This version fixes some bugs in 2.6.5 and added a few minor new features.
By @daluntw
Zoraxy will try to resolve and store the visitors country of origin in its statistic collector. As requested by users regarding the memory usage issue, we added a low speed mode for GeoIP lookup logic to reduce memory usage by space time tradeoff. The low speed mode (default mode) of GeoIP lookup will slow down each request by around 6ms, which is not significant in homelab / self hosting environment. However, if you plan to use Zoraxy in production environment, you can enable to high speed mode by using -fastgeoip=true
. We also optimized the high speed mode data structure so it now use around 600 - 700MB of RAM instead of 1.2GB. If your server have that capacity to run in high speed mode, we generally recommend using high speed mode for better user experience.
A quick patch has been applied to the binary and fixed a minor UI bug that causes the backend to generate stating certificates (See issue #61 ). If you are using old version of v2.6.6, it is recommend that you download the new binary and overwrite the old one.
This is a beta testing build for Zoraxy and already been using in my homelab environment. You can try to deploy this to your production environment at your own risk.
IMPORTANT NOTES BEFORE UPDATE The config files are moved to the following folders in this update. You can backup the old folders and restore them in the location below if you are too lazy to set it up again.
conf/*.conf -> conf/proxy/*.conf
certs/ -> conf/certs/
rules/redirect/ -> conf/redirect/
authtoken.secret -> conf/authtoken.secret
rules/acme_conf.json -> conf/acme_conf.json
Update 25 Aug 2023 For those who are using docker, here is a message from @PassiveLemon
Breaking Changes:
File structure change requires you to update the volume mount for the configurations. It should be changed to `/opt/zoraxy/config/`
The management port is no longer changeable. This is to allow for a healthcheck.
Changes:
Healthcheck was added. See breaking changes above.
Notifier was removed.
VERSION variable is no longer configurable.
The runtime memory usage of this build should be around 1.2GB which is normal and not memory leak. We are still trying to figure out a way to reduce runtime RAM usage while keeping the web interface embedded. Ideas and PR are always welcomed!
IMPORTANT NOTES BEFORE UPDATE If you are updating from 2.6.3, your redirection rules will be gone. Please make a backup for all the json files inside rules/(rule_names).json and restore it later after update to rules/redirect/(rule_names).json
As there are many screwed up anti-virus software complains UPX compression, the upx compression workflow was removed from the build process. If you need to deploy Zoraxy on embedded machines, it is still recommend that you compress the binary with upx to save some spaces.
From this version onward, releases are compressed by upx to save spaces on embedded devices (except riscv64 builds, seems upx doesn't support it yet)
Change Log
Remarks TCP Proxy is currently tested with HTTP / HTTPS proxy and Minecraft only. If you encounter issues with the implementation, please ping @cw1997 to help fix it as I reference the design (aka copy) of the TCP proxy features from here