I wanted a lightweight HTTP/HTTPS proxy for CentOS 7/8 with username/password authentication. TinyProxy is perfect for this—it’s simple, fast, and can be exposed to the public Internet.
Here’s a minimal guide.
1. Environment
- OS: CentOS 7 / 8
- Proxy software: TinyProxy
- Protocols: HTTP / HTTPS
- Auth: Basic Authentication
- Port: 8888
2. Install TinyProxy
sudo yum install -y tinyproxy
After installation:
- Config file:
/etc/tinyproxy/tinyproxy.conf - Service name:
tinyproxy
3. Configure TinyProxy (Public + Auth)
a) Edit config file
sudo vi /etc/tinyproxy/tinyproxy.conf
b) Set listening port
Port 8888
To reduce scanning risk, you can choose a non-default port, e.g.,
28888.
c) Allow public access
By default, TinyProxy only allows localhost. Remove or comment out:
Allow 127.0.0.1
Allow ::1
Add:
Allow 0.0.0.0/0
This allows all IPv4 addresses to connect (public).
d) Enable username/password authentication
Add or uncomment:
BasicAuth user123 foiehfsefh
Explanation:
- Username:
user123 - Password:
foiehfsefh - TinyProxy stores credentials in plain text (HTTP Basic Auth).
e) Recommended minimal settings
Timeout 600
LogLevel Info
MaxClients 100
ViaProxyName "tinyproxy"
4. Minimal Full Config Example
User tinyproxy
Group tinyproxy
Port 8888
Timeout 600
LogLevel Info
MaxClients 100
Allow 0.0.0.0/0
BasicAuth user123 foiehfsefh
ViaProxyName "tinyproxy"
All other settings can remain default.
5. Start Service & Enable Autostart
sudo systemctl restart tinyproxy
sudo systemctl enable tinyproxy
Check status:
systemctl status tinyproxy
6. Open Firewall Port
If firewalld is enabled:
sudo firewall-cmd --permanent --add-port=8888/tcp
sudo firewall-cmd --reload
7. Client Test
a) Command-line test
curl -x http://user123:foiehfsefh@<PUBLIC_IP>:8888 http://www.google.com
If HTML content is returned, the proxy and auth are working.
b) Browser Test
- Proxy type: HTTP
- Server IP:
<PUBLIC_IP> - Port: 8888
When visiting a website, you will be prompted for username/password. HTTPS works as well.























