Tinyproxy: dựng forward proxy với allowlist và xác thực
Tinyproxy là proxy HTTP và HTTPS nhỏ gọn dành cho hệ điều hành kiểu POSIX, hợp để dựng nhanh một cổng ra Internet cho vài máy trong mạng nội bộ. ProxyVN đọc kỹ tài liệu chính thức và viết lại cách giới hạn client, bật xác thực, khóa cổng CONNECT. Phần nào chưa chạy thật, bài ghi rõ.
Tinyproxy là gì và khác proxy IP mua ngoài thế nào
Trang chủ của dự án mô tả Tinyproxy là daemon proxy HTTP và HTTPS nhẹ, thiết kế để nhanh và nhỏ. Bộ nhớ vào khoảng 2 MB với glibc, theo chính trang đó, nên nó hay xuất hiện trên thiết bị nhúng và máy chủ rẻ. Giấy phép là GPL phiên bản 2 trở lên.
Điểm cần rõ từ đầu: Tinyproxy là phần mềm anh em tự cài trên máy của mình. Nó không cung cấp địa chỉ IP nào. Địa chỉ website nhìn thấy sẽ là IP của máy đang chạy Tinyproxy. Khác với dịch vụ proxy mua ngoài, nơi nhà cung cấp lo máy chủ và dải IP, ở đây anh em lo cả hai.
Tinyproxy khác Squid và 3proxy ở đâu
Blog đã có hai bài gần chủ đề này. Bài Squid proxy là gì nói về proxy có bộ nhớ đệm, danh sách kiểm soát truy cập phức tạp và cách dựng trên máy chủ riêng. Bài Raspberry Pi proxy bàn về dựng proxy trên bo mạch nhỏ.
Bài này đi vào một công cụ khác với phạm vi hẹp hơn. Tinyproxy không có bộ nhớ đệm để tinh chỉnh, không có ngôn ngữ ACL phong phú như Squid. Đổi lại cấu hình ngắn, đọc một lượt là hiểu hết. Nếu anh em cần cache hay kiểm soát chi tiết, Squid hợp hơn. Nếu chỉ cần một cổng ra Internet có khóa, Tinyproxy gọn hơn.
Phiên bản và điều cần biết
Theo danh sách phát hành trên GitHub, bản ổn định mới nhất là 1.11.3, phát hành ngày 07/03/2026. Ghi chú phát hành bản 1.10.0 cho biết bản này thêm hỗ trợ xác thực HTTP Basic và hỗ trợ proxy phía trên kiểu SOCKS. Vì vậy máy nào đang chạy bản cũ hơn 1.10 sẽ không có hai tính năng này.
Trang chủ còn cảnh báo thẳng rằng nhiều bản phân phối đóng gói Tinyproxy quá cũ, nên khuyên biên dịch từ mã nguồn. Anh em chạy lệnh tinyproxy -v hoặc xem gói đã cài để biết bản nào, trước khi tin vào bất kỳ ví dụ cấu hình nào trên mạng.
Tinyproxy chỉ chạy trên hệ điều hành kiểu POSIX
Tài liệu ghi Tinyproxy cho hệ điều hành POSIX. Máy Windows mình dùng để viết bài không cài được Tinyproxy bản chính thức, nên mình không chạy được nó. Cấu hình bên dưới bám theo trang chủ Tinyproxy và trang man của tệp cấu hình trên nhánh master. Anh em đối chiếu lại với man tinyproxy.conf của bản mình cài.
Dựng Tinyproxy forward proxy với allowlist và xác thực theo phiên bản
Có ba lớp kiểm soát anh em nên bật chồng lên nhau: kiểm soát theo địa chỉ client, kiểm soát bằng tài khoản, và kiểm soát đích cùng cổng.
Lớp một: Allow và Deny theo địa chỉ client
Tài liệu cho phép lặp lại dòng Allow và Deny để dựng danh sách kiểm soát truy cập, và thứ tự trong tệp có ý nghĩa. Quy tắc quan trọng nhất: nếu tệp không có dòng Allow hoặc Deny nào, mọi client đều được phép. Chỉ cần có một dòng, hành động mặc định chuyển thành từ chối.
Đối số có thể là một địa chỉ, một dải như 192.168.0.1/24, hoặc tên máy. Tài liệu cảnh báo rằng dùng tên máy sẽ phải tra DNS cho mỗi kết nối mới, có thể làm dịch vụ chậm đi rõ rệt. Vì thế mình chỉ dùng địa chỉ IP và dải.
Một chi tiết hay bị bỏ sót: Listen chỉ định một địa chỉ để Tinyproxy nghe. Mặc định nó nghe mọi giao diện (0.0.0.0). Ghép Listen với Allow cho hai lớp bảo vệ độc lập, nếu một lớp sai thì lớp kia còn đỡ.
Lớp hai: BasicAuth
Dòng BasicAuth theo dạng BasicAuth user password. Theo tài liệu, khi có ít nhất một dòng BasicAuth, chỉ người dùng đã xác thực mới được vào. Có thể đặt BasicAuthRealm để đổi chuỗi realm trong trang trả lỗi 407, mặc định là Tinyproxy.
Có hai điều anh em cần nhớ. Thứ nhất, mật khẩu nằm nguyên văn trong tệp cấu hình, nên tệp phải có quyền đọc chặt. Thứ hai, HTTP Basic gửi tên và mật khẩu đã mã hóa base64, không mã hóa thật. Trong mạng nội bộ chấp nhận được, còn qua mạng công cộng thì cần thêm lớp bảo vệ khác. Bài xác thực proxy bằng IP whitelist hay user password so sánh hai hướng này.
Lớp ba: ConnectPort và danh sách đích

Ba lớp kiểm soát của Tinyproxy
Phần này nhiều người chủ quan nhất. Trang chủ viết rằng Tinyproxy cho phép chuyển tiếp HTTPS qua phương thức CONNECT mà không sửa gì lưu lượng, rồi dặn anh em nên giới hạn bằng ConnectPort. Man page nói rõ: nếu không có dòng ConnectPort nào thì mọi cổng đều được phép. Muốn tắt hẳn CONNECT thì đặt một dòng ConnectPort với giá trị 0.
Một proxy cho CONNECT tới mọi cổng là một cái ống TCP mở. Người dùng có thể mở kết nối tới cổng 22, 25 hay bất kỳ dịch vụ nội bộ nào mà máy chạy Tinyproxy nhìn thấy. Vì thế mình luôn giới hạn ConnectPort ngay từ lần đầu.
Để giới hạn tên miền đích, Tinyproxy có tùy chọn Filter trỏ tới một tệp luật. Đặt FilterDefaultDeny Yes thì tệp luật biến thành danh sách cho phép, tức mọi thứ không khớp bị chặn. Loại luật chọn bằng FilterType, gồm bre, ere và fnmatch. Tài liệu khuyên fnmatch cho người mới vì nhanh nhất và dễ viết, ví dụ *.example.com khớp mọi tên kết thúc bằng .example.com.
FilterURLs thì tài liệu khuyên không bật. Lọc theo URL chỉ hoạt động với HTTP thường, mà phần lớn website nay dùng HTTPS nên tính năng này chỉ áp dụng cho một tỉ lệ rất nhỏ.
Chuẩn bị topology lab, phiên bản và máy thử cho Tinyproxy
Mình nêu thiết kế lab anh em nên dựng. Mình chưa dựng được vì máy viết bài là Windows, nên phần này là kế hoạch, không phải báo cáo.
Ba vai trong lab
- Máy proxy: Linux hoặc BSD, chạy Tinyproxy bản 1.10 trở lên, nghe ở một địa chỉ mạng nội bộ.
- Máy client được phép: nằm trong dải ghi ở Allow, có tài khoản BasicAuth.
- Máy client không được phép: nằm ngoài dải, để kiểm tra Allow thật sự chặn.
Phía đích dùng một máy chủ HTTP nhỏ tự dựng, ví dụ python3 -m http.server 8901 trên máy proxy. Đích nội bộ giúp anh em thử mà không phụ thuộc Internet và không gửi lưu lượng ra ngoài.
Nếu chỉ có một máy, anh em vẫn thử được phần xác thực và ConnectPort bằng cách chạy client trên chính máy proxy. Phần Allow thì cần ít nhất hai địa chỉ nguồn khác nhau, nên cần thêm máy hoặc không gian mạng ảo.
Cài đặt
Trang chủ liệt kê cách cài theo từng hệ điều hành, ví dụ apt-get install tinyproxy trên Debian. Đồng thời trang này nói rằng nên biên dịch từ mã nguồn để có bản mới. Mình khuyên cài bằng gói để thử, rồi xem số bản bằng tinyproxy -v. Nếu thấp hơn 1.10, mới tính đến chuyện biên dịch.
Tải mã nguồn từ trang phát hành chính thức của dự án trên GitHub, đối chiếu mã băm ghi trong ghi chú phát hành. Ghi chú bản 1.11.3 có sha512 cho từng gói nén.
Viết tệp filter cho đúng
Tệp filter của Tinyproxy mỗi dòng một luật, dòng bắt đầu bằng dấu thăng là chú thích. Với FilterType fnmatch, luật giống cách shell khớp tên tệp: dấu sao khớp mọi chuỗi. Tài liệu cho ví dụ *.google.com khớp mọi tên kết thúc bằng .google.com.
Hãy để ý một chi tiết. Mẫu *.example.com không khớp chính example.com, vì mẫu đòi một dấu chấm đứng ngay trước example.com. Nếu muốn cho cả hai, viết hai dòng. Mình chưa kiểm chứng điểm này trên Tinyproxy, nên khi thử anh em kiểm tra cả hai tên.
Với FilterType bre hay ere, luật là biểu thức chính quy. Tài liệu có ví dụ ^cnn\.com$ khớp đúng tên cnn.com và cnn\.com khớp mọi tên chứa chuỗi này, kể cả xcnn.comfy.org. Ví dụ cuối cho thấy vì sao luật tự viết dễ chặn nhầm hoặc cho nhầm.
Tùy chọn FilterCaseSensitive mặc định là không phân biệt hoa thường với bre và ere. Tài liệu nói bật phân biệt hoa thường thì khớp nhanh gần gấp đôi.
Dọn máy thử
Thiết kế lab xong thì máy phải trở về như cũ. Mình đặt sẵn danh sách: dừng dịch vụ, xóa tệp cấu hình thử, xóa tệp nhật ký, gỡ gói nếu máy đó không dùng Tinyproxy lâu dài.
Cấu hình tối thiểu cho Tinyproxy và các tuyến cần kiểm tra
Cấu hình mẫu trên trang chủ chỉ có bốn dòng: Port 8888, Listen 127.0.0.1, Timeout 600 và Allow 127.0.0.1. Chạy bằng tinyproxy -d -c tinyproxy.conf thì dịch vụ ở chế độ foreground và ghi nhật ký ra màn hình. Mình mở rộng bản này thành cấu hình có allowlist và xác thực.
# tinyproxy.conf (bản lab, chưa chạy thật)
Port 8888
Listen 192.168.56.10
Timeout 600
MaxClients 20
Allow 192.168.56.0/24
BasicAuth lab-user mat-khau-thu
ConnectPort 443
ConnectPort 8901
Filter "/etc/tinyproxy/filter.txt"
FilterType fnmatch
FilterDefaultDeny Yes
LogLevel Connect
LogFile "/var/log/tinyproxy/tinyproxy.log"
Tệp filter.txt chứa danh sách tên miền được phép, mỗi dòng một mẫu. Ví dụ hai dòng: 192.168.56.10 và *.example.com.
Giải thích từng nhóm dòng
Port và Listen quyết định proxy nghe ở đâu. Listen đặt đúng địa chỉ mạng nội bộ, không để 0.0.0.0. Timeout là số giây không hoạt động trước khi Tinyproxy đóng kết nối. MaxClients là số client tối đa cùng lúc, và vì mỗi client dùng một luồng xử lý nên đây cũng là trần tài nguyên.
Allow lọc theo địa chỉ nguồn. BasicAuth bắt tài khoản. Hai lớp này độc lập: một client phải vượt cả hai.
ConnectPort giới hạn cổng của CONNECT. Mình viết mỗi cổng một dòng theo cách tệp cấu hình mẫu hay làm. Nếu bản của anh em không chấp nhận lặp dòng, man page của bản đó sẽ nói rõ.
Filter cùng FilterDefaultDeny biến tên miền đích thành danh sách cho phép. Cần nhớ Filter lọc theo tên miền, mà trong lab các đích là địa chỉ IP, nên mẫu trong tệp phải khớp đúng chuỗi mà client gửi lên.
LogLevel Connect, theo tài liệu, ghi lại các kết nối mà không kèm quá nhiều chi tiết như mức Info. LogFile đặt tệp nhật ký, hoặc đặt Syslog thành On để ghi vào syslog. Hai chế độ này loại trừ nhau.
Những dòng nên cân nhắc thêm
Tinyproxy mặc định thêm header Via vào yêu cầu HTTP, theo tài liệu là để tuân thủ RFC. Có tùy chọn ViaProxyName để đổi tên hiện trong header và DisableViaHeader để tắt, nhưng tài liệu cảnh báo tắt là phá vỡ tuân thủ. Anh em có thể đọc thêm về header này ở bài Via header là gì.
Tùy chọn XTinyproxy, khi bật Yes, thêm header X-Tinyproxy chứa địa chỉ client. Mình để tắt, vì nó đưa thêm thông tin cho website đích mà không có lợi gì cho lab.
AddHeader chỉ tác động tới lưu lượng HTTP thường. Với HTTPS, theo tài liệu, Tinyproxy không kiểm soát được header nào đi qua.
Chạy bằng tài khoản thường, không dùng root
Trang chủ Tinyproxy nói rằng muốn chạy không cần đặc quyền thì phải để các tệp do Tinyproxy tạo thuộc về một người dùng thường và dùng cổng lớn hơn 1024. Dự án còn khuyến nghị chạy bằng tài khoản thường. Man page có hai tùy chọn User và Group để Tinyproxy hạ quyền sau khi đã mở cổng.
Cổng 8888 trong cấu hình mẫu vượt ngưỡng 1024, nên không cần quyền cao để mở. Anh em tạo riêng một tài khoản hệ thống cho Tinyproxy, cho nó quyền ghi vào thư mục nhật ký và tệp PID, rồi thôi. Nếu dịch vụ bị khai thác, kẻ tấn công chỉ có quyền của tài khoản đó.
Chọn địa chỉ ra bằng Bind
Tùy chọn Bind chỉ định địa chỉ mà Tinyproxy dùng cho kết nối đi ra, và có thể lặp lại để thử lần lượt. BindSame ép kết nối đi ra dùng đúng địa chỉ của kết nối vào. Hai tùy chọn này có ích khi máy chủ có nhiều địa chỉ IP và anh em muốn chọn địa chỉ nào website nhìn thấy.
Với máy chỉ có một địa chỉ, anh em không cần đụng tới. Với máy nhiều địa chỉ, nên thử kỹ, vì chọn sai địa chỉ ra có thể làm kết nối không đi được hoặc đi bằng IP không mong muốn.
Trang thống kê và giới hạn lộ thông tin
Tinyproxy có khái niệm stat host. Khi nhận yêu cầu tới tên máy đặt ở StatHost, nó trả trang thống kê nội bộ thay vì chuyển tiếp. Trang này hữu ích để xem proxy đang bận ra sao. Cũng vì thế, nó chỉ nên xem được từ mạng nội bộ, và vẫn bị Allow cùng BasicAuth bảo vệ như mọi yêu cầu khác.
Giới hạn header bằng Anonymous
Nếu có từ khóa Anonymous, Tinyproxy bật chế độ ẩn danh: chỉ những header liệt kê mới được đi qua, các header khác bị chặn. Tài liệu nhắc phải đặt dấu ngoặc kép quanh tên header, và cảnh báo nhiều website cần cookie nên anh em phải cho Cookie đi qua nếu muốn trang hoạt động.
Từ khóa này dễ làm vỡ trang web. Mình chỉ bật khi biết rõ ứng dụng nào dùng proxy và cần header nào. Với lưu lượng HTTPS qua CONNECT, nhiều khả năng tùy chọn này không tác động, vì Tinyproxy không nhìn thấy header bên trong đường hầm.
Chạy ca đúng sai và đọc log Tinyproxy
Phần này là bộ ca thử anh em nên chạy sau khi dựng. Cột kỳ vọng là suy ra từ tài liệu. Mình chưa chạy ca nào trên Tinyproxy thật.
Quy trình chạy lab từng bước
Mình sắp xếp theo thứ tự để mỗi bước chỉ thêm một biến số.
1. Chạy cấu hình mẫu bốn dòng của trang chủ, thử từ chính máy proxy để biết dịch vụ sống.
2. Thêm BasicAuth, thử có và không tài khoản.
3. Đổi Listen sang địa chỉ mạng nội bộ, thử từ máy client trong dải.
4. Thêm Allow, thử từ một máy ngoài dải.
5. Thêm ConnectPort, thử CONNECT tới cổng được phép và cổng không được phép.
6. Thêm Filter cùng FilterDefaultDeny, thử tên miền trong và ngoài danh sách.
7. Hạ LogLevel về mức bình thường rồi dọn máy.
Chia nhỏ như vậy giúp anh em biết đúng dòng cấu hình nào gây ra thay đổi. Gộp mọi thứ một lần rồi thấy lỗi thì rất khó lần ngược.
Bộ ca thử và kỳ vọng

Bộ ca thử và kỳ vọng theo tài liệu
Ca thử |
Kỳ vọng theo tài liệu |
Đã chạy trên Tinyproxy |
|---|---|---|
Client trong dải, đúng tài khoản, GET tới đích được phép |
Thành công, đích trả nội dung |
Chưa |
Client trong dải, không có tài khoản |
Trả 407 Proxy Authentication Required |
Chưa |
Client trong dải, sai mật khẩu |
Cũng bị từ chối với 407 |
Chưa |
Client ngoài dải |
Bị từ chối trước khi xét tài khoản |
Chưa |
CONNECT tới cổng 443 hoặc cổng đã khai |
Đường hầm mở |
Chưa |
CONNECT tới cổng 25 |
Bị từ chối do ConnectPort |
Chưa |
Tên miền ngoài danh sách filter |
Bị chặn do FilterDefaultDeny |
Chưa |
Mã trạng thái cụ thể của các trường hợp từ chối, tài liệu mình đọc không nêu. Anh em nên ghi lại mã thực tế khi chạy, vì đó là thông tin đáng giá nhất của lab.
Script thử client

Script thử client bằng socket thô
Mình viết một script nhỏ gửi đúng bốn kiểu yêu cầu bằng socket thô để thấy dòng trạng thái của proxy, không phụ thuộc vào cách curl hay trình duyệt xử lý lỗi.
def gui(proxy, dong_dau, host, user=None, pw=None):
h, p = proxy.rsplit(":", 1)
s = socket.create_connection((h, int(p)), timeout=8)
yc = f"{dong_dau}\r\nHost: {host}\r\nConnection: close\r\n"
if user is not None:
yc += "Proxy-Authorization: Basic " + base64.b64encode(f"{user}:{pw}".encode()).decode() + "\r\n"
s.sendall((yc + "\r\n").encode())
buf = s.recv(4096)
return buf.split(b"\r\n", 1)[0].decode("latin1")
Script chạy với bốn ca: GET không tài khoản, GET có tài khoản, CONNECT tới cổng đích được phép, CONNECT tới cổng 25.
Script đã chạy được với đối tượng nào
Mình chạy script với proxy giả viết bằng Python, có mật khẩu và cho CONNECT mọi cổng. Kết quả đúng như script cần. Ca không tài khoản trả 407. Ca có tài khoản trả 200. CONNECT tới cổng đích trả 200 Connection established. CONNECT tới cổng 25 trả 502 vì không có dịch vụ nào ở đó.
Kết quả này chỉ chứng minh script không lỗi. Nó không nói gì về Tinyproxy. Proxy giả cho CONNECT mọi cổng, trong khi Tinyproxy đã đặt ConnectPort sẽ từ chối cổng 25 từ trước khi tìm đích. Hai dòng trạng thái đó khác nhau về bản chất, nên anh em đừng đọc bảng kết quả giả như bảng kết quả của Tinyproxy.
Đọc log
Với LogLevel Connect, mỗi kết nối được ghi một dòng. Mình không tả định dạng dòng vì chưa thấy bản thật. Khi chạy, anh em tìm ba thứ trong log: địa chỉ client, tên máy đích cùng cổng, và dấu hiệu bị từ chối. Với mỗi ca trong bảng trên, tìm dòng tương ứng và dán vào ghi chú lab.
Nếu log không có dấu hiệu từ chối rõ, nâng LogLevel lên Info trong lúc thử. Mức Info nhiều thông tin nhất, nên thử xong phải hạ lại.
Hoàn nguyên, giới hạn và đưa Tinyproxy vào dùng thật

Checklist trước khi dùng Tinyproxy thật
Hoàn nguyên lab
Dừng Tinyproxy, xóa tệp cấu hình thử và tệp filter, xóa nhật ký. Nếu đã mở cổng trên tường lửa, đóng lại. Kiểm tra bằng cách thử kết nối vào cổng 8888, kết quả phải là bị từ chối.
Khác biệt giữa Tinyproxy, Squid và 3proxy khi chọn công cụ
Mình đặt ba công cụ cạnh nhau theo những gì tài liệu và các bài đã đăng nêu. Tinyproxy nhỏ, cấu hình ngắn, chỉ HTTP và HTTPS cho client, có xác thực Basic. Squid có bộ nhớ đệm và nhiều cơ chế kiểm soát hơn nên cấu hình dài hơn, đã có bài riêng trên blog. 3proxy thường được nhắc khi cần cả SOCKS cho client, như trong bài về Raspberry Pi.
Câu hỏi chọn công cụ rất thực dụng: anh em cần gì ở client. Chỉ HTTP và HTTPS, Tinyproxy đủ. Cần SOCKS5 cho client, tìm công cụ khác. Cần cache, Squid. Chọn đúng từ đầu đỡ phải đổi sau khi đã giao cấu hình cho nhiều máy.
Giới hạn cần biết
Tinyproxy không mã hóa kết nối từ client tới proxy. Nó nói HTTP thuần ở cổng nghe. Với HTTPS, đường hầm qua CONNECT vẫn được TLS của website bảo vệ, nhưng thông tin xác thực với proxy đi dạng base64. Dùng trong mạng nội bộ hoặc đặt sau một đường hầm mã hóa khác.
Tinyproxy tạo một luồng cho mỗi client, nên MaxClients là trần cứng. Khi đạt trần, client mới phải đợi hoặc bị từ chối. Nếu có nhiều máy, cần đo trước khi tin rằng 2 MB bộ nhớ là đủ.
Danh sách cho phép theo tên miền hoạt động ở mức tên, không kiểm tra nội dung. Một tên miền được phép vẫn có thể phục vụ nội dung xấu.
Dùng Tinyproxy làm cổng cục bộ tới proxy mua ngoài
Có một cách dùng hợp lý: Tinyproxy chạy trong mạng nội bộ, nhận kết nối từ các máy trong nhà, rồi chuyển tiếp ra proxy mua ngoài. Man page mô tả tùy chọn Upstream với bốn loại là http, socks4, socks5 và none. Có thể kèm tài khoản theo dạng user:pass@host:port, và khi nhiều luật cùng khớp thì luật khớp cuối cùng thắng.
# Chuyển mọi lưu lượng tới proxy SOCKS5 có tài khoản (theo man page, chưa chạy)
Upstream socks5 tai-khoan:mat-khau@203.0.113.10:1080
# Riêng mạng nội bộ đi thẳng
Upstream none "192.168.56.0/24"
Địa chỉ 203.0.113.10 là địa chỉ ví dụ, anh em thay bằng thông tin thật. Man page khuyên dùng địa chỉ IP thô thay vì tên miền cho máy proxy phía trên, để khỏi tra DNS mỗi lần. Mình chưa kiểm chứng dòng cấu hình này. Bài chuỗi proxy bàn kỹ hơn về việc nối nhiều chặng.
Danh sách kiểm tra trước khi dùng thật
- Biết chính xác bản Tinyproxy đang chạy và đọc đúng man page của bản đó.
- Listen đặt vào một giao diện nội bộ, Allow đặt theo dải cần.
- BasicAuth bật, tệp cấu hình có quyền đọc chặt.
- ConnectPort giới hạn, không để trống.
- Đã thử ít nhất một client ngoài dải và một client sai mật khẩu.
- Có kế hoạch xoay nhật ký và giới hạn dung lượng.
Nếu cần IP ra ngoài, anh em có thể mua proxy tại ProxyVN, có proxy dân cư tĩnh Viettel, VNPT, FPT, datacenter Việt Nam và proxy xoay, hỗ trợ HTTP và SOCKS5 với tài khoản user và mật khẩu.
Tinyproxy là cái cổng. Địa chỉ IP phía sau cánh cổng là chuyện khác.
Câu hỏi thường gặp
Tinyproxy có phải proxy để đổi IP không. Không tự nó. Website thấy IP của máy chạy Tinyproxy. Muốn IP khác, anh em cần Upstream tới một proxy khác hoặc đặt Tinyproxy trên máy có IP mong muốn.
Tinyproxy có hỗ trợ SOCKS5 cho client không. Từ tài liệu mình đọc, Tinyproxy là proxy HTTP và HTTPS cho client. SOCKS xuất hiện ở phía proxy phía trên qua Upstream, không phải phía nhận kết nối. Nếu cần SOCKS5 cho client, anh em tìm công cụ khác.
Cài bản trong kho Debian có đủ dùng không. Tùy bản. Trang chủ cảnh báo nhiều bản đóng gói rất cũ. Nếu bản đóng gói thấp hơn 1.10, thiếu BasicAuth và Upstream kiểu SOCKS.
Tinyproxy có lọc quảng cáo được không. Filter chặn theo tên miền, nên chặn được tên miền quảng cáo nếu anh em có danh sách. Việc sửa nội dung trang thì Tinyproxy không làm. Muốn sửa nội dung trang thì cần công cụ lọc chuyên dụng như Privoxy.
Tinyproxy có chạy làm proxy trong suốt được không. Trang chủ ghi Tinyproxy hỗ trợ cấu hình dạng transparent proxy, tức máy client không cần khai báo proxy. Mình không thử chế độ này, vì nó đòi hỏi định tuyến hoặc quy tắc tường lửa chuyển hướng lưu lượng tới Tinyproxy.
Dùng Tinyproxy làm reverse proxy được không. Man page có ReversePath, ReverseOnly, ReverseMagic và ReverseBaseURL cho việc này. Khuyến cáo trong man page: khi dùng làm reverse proxy thì nên tắt proxy thường bằng ReverseOnly. Mình không bàn thêm vì bài này nói về forward proxy.
Có mở Tinyproxy ra Internet để dùng chung được không. Không nên. Một proxy mở bị quét và lạm dụng rất nhanh. Nếu bắt buộc, phải có Allow chặt, BasicAuth, ConnectPort và giới hạn MaxClients.
Tinyproxy và những điều cần nhớ
Tinyproxy dựng forward proxy gọn với Allow theo dải, BasicAuth từ bản 1.10, ConnectPort giới hạn cổng và Filter làm danh sách cho phép. Mặc định cho CONNECT mọi cổng nên phải khóa ngay từ đầu. Cần proxy ổn định, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam cho Tinyproxy.