chkdfront checks if your domain fronting is working by testing the targeted domain (fronted domain) against your domain front domain.
Features
- Checking your domain fronted against the domain front.
- Searching an expected string in the response to indicate success.
- Showing troubleshooting suggestions when a test fails based on the failure natural.
- Inspecting the HTTP request and response when a test fails. (optionally if succeeded).
- Troubleshooting with various checks (ping, HTTP, nslookup) when a test fails. (optionally if succeeded).
- Support testing though proxy.
Demo
Please check the demo https://asciinema.org/a/nA9wBiuSDLDH9SunQ8GxKT2ra
Installation
$ gem install chkdfront
Usage
Help menu:
-f, --front-target URL Fronted target domain or URL.
e.g. images.businessweek.com
-d, --domain-front DOMAIN DomainFront domain.
e.g. df36z1umwj2fze.cloudfront.net
-e, --expect STRING Expect a given string that indicates success. (case-sensitive)
e.g. It works
-p, --provider NUM Choose CDN / Domain Front Provider:
[0] Auto (default - auto tune request. Extra request to detect)
[1] Amazon (tune request for Amazon domain fronting)
[2] Azure (tune request for Azure domain fronting)
[3] Alibaba (tune request for Alibaba domain fronting)
-t, --troubleshoot [DOMAIN] Force troubleshooting procedures.
execute troubleshooting procedures(ping, http, nslookup) for all parties
(optional: original domain where CDN forwards, to include in the checks)
e.g. c2.mydomain.com
--proxy USER:PASS@HOST:PORT Use proxy settings if you're behind proxy.
e.g. user1:Pass123@localhost:8080
--debug Force debugging.
show response's body and low-level request and response debug trace.
(default enabled when test fails.)
-h, --help Show this message.
Usage:
/ usr/local/bin/chkdfront <OPTIONS>
Example:
/usr/local/bin/chkdfront -f images.businessweek.com -d df36z1umwj2fze.cloudfront.net
/usr/local/bin/chkdfront -f images.businessweek.com -d df36z1umwj2fze.cloudfront.net --debug -t c2.mysite.com
Contributing
- Fork it ( https://github.com/KINGSABRI/chkdfront/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request