Ngiêm cấm sử đụng PROXY và VPS vào mục đích trái pháp luật bạn sẽ phải chịu toàn bộ trách nhiệm trước pháp luật khi sử dụng dịch vụ của chúng tôi tks!
Mercurial proxy cấu hình clone pull và host bypass

Mercurial proxy cấu hình clone pull và host bypass

Chuyên viên Kỹ thuật ProxyVN 06-02-2026 Đang tính... phút đọc

Mercurial proxy phục vụ truy cập repository qua HTTP hoặc HTTPS. Anh em cần kiểm nguồn cấu hình, host được bỏ qua và lịch sử changeset nhận về; một remote dùng SSH thuộc đường kết nối khác với mục http_proxy. ProxyVN hướng dẫn anh em đặt cấu hình đúng phạm vi và kiểm đầu ra trước khi áp dụng.

Mercurial proxy và phạm vi của tác vụ

Mercurial là hệ quản lý phiên bản có mô hình repository và changeset riêng. Bài này dùng hg clone và hg pull qua transport web, không dùng các lệnh Git hoặc coi git config http.proxy là cấu hình của Mercurial. Đổi công cụ quản lý mã nguồn mà giữ nguyên khóa cấu hình là một nguyên nhân khiến proxy không có hiệu lực.

Section http_proxy trong cấu hình hg chứa host, user, passwd, no và always. Những mục này mô tả gateway và phạm vi đi qua gateway. Tài khoản truy cập repository nằm ở lớp khác, vì server có thể yêu cầu auth sau khi proxy đã chấp nhận kết nối.

Một phép clone có đầu ra rõ hơn màn hình tiến độ: repository đích phải có changeset dự kiến, cây làm việc phù hợp revision và log server xác nhận lượt đọc. Nếu chỉ có thư mục .hg, chưa thể nhận rằng quá trình lấy dữ liệu đã hoàn thành.

Mục tiêu thực hành là dựng repository lab riêng và một cấu hình tạm không chứa mật khẩu trong lịch sử dự án. Các ví dụ chỉ đọc từ remote. Không hướng dẫn push trong bài thử proxy vì thao tác ghi làm tăng phạm vi và khiến lỗi kết nối lẫn với quyền cập nhật repository.

Các tên khóa và tùy chọn cần được đối chiếu với tài liệu chính thức của công cụ. Phần hướng dẫn dưới là thiết kế triển khai và ca kiểm minh họa, không phải báo cáo đã chạy tất cả các trường hợp trên một gateway thương mại.

Mercurial proxy chuẩn bị đầu vào có thể kiểm lại

Chuẩn bị hg, repository lab có ít nhất một commit và transport HTTP hoặc HTTPS do nhóm quản lý. Ghi hg version và URL remote, sau đó tạo một file hgrc thử nằm ngoài cây version control. Xem hg config --source để biết giá trị đến từ user config, system config hay cấu hình của repository hiện tại.

Đặt mục tiêu của bài thử ở hg clone và hg pull, với đầu ra là repository clone-proxy. Trước khi chạy, ghi trạng thái ban đầu và xác định nơi sẽ quan sát node của changeset. Nếu chưa có nguồn dữ liệu hoặc môi trường tương ứng, giữ ca đó ở trạng thái chưa chạy; không lấy một thông báo cú pháp hợp lệ thay cho kết quả truyền dữ liệu.

Thư mục bản clone Mercurial thử cần tách khỏi dữ liệu đang vận hành. Mẫu proxy-lab.hgrc và HGRCPATH chỉ chứa địa chỉ minh họa và tên biến; credential thật được cấp từ môi trường thử. Những ví dụ dùng Bash và PowerShell sẽ được ghi trong phần giải thích, vì cách đặt biến và quoting giữa hai shell khác nhau. Không dán nguyên cấu hình nhiều định dạng vào cùng một file.

Cấu hình đúng phạm vi

Cấu hình đúng phạm vi

Mercurial proxy ví dụ cấu hình tối thiểu

Các địa chỉ .test và giá trị biến dưới đây phải được thay bằng hạ tầng lab do anh em quản lý. Nội dung cấu hình và lệnh chạy được đặt chung để tiện theo dõi, nhưng cần lưu vào đúng file hoặc shell như phần giải thích. Không dùng credential thật trong bản sao để chia sẻ.

# File proxy-lab.hgrc
[http_proxy]
host = proxy.lab.test:8080
no = hg.internal.lab.test
always = false
 
# PowerShell tai thu muc thu
$env:HGRCPATH = (Resolve-Path ./proxy-lab.hgrc).Path
hg config --source http_proxy.host
hg clone https://hg.origin.lab.test/repo clone-proxy
hg -R clone-proxy log -l 1 --template "{node}\n"
hg -R clone-proxy paths

HGRCPATH điều khiển tập file cấu hình mà phiên hg đọc; chỉ đặt trong terminal lab. Ví dụ không ghi user hay passwd để tránh lưu bí mật vào file chia sẻ. Tài khoản thử, nếu cần, phải được cấp qua cơ chế phù hợp và không commit cùng source.

hg config --source có ích vì một giá trị nhìn đúng trong file chưa chứng minh hg đã đọc file đó. Chỉ xem riêng host trong bản log công khai; không in toàn bộ section khi đã thêm passwd. Thư mục clone-proxy phải là đường dẫn mới để phép thử không nhầm với một bản clone cũ.

Log một changeset kiểm đầu ra version control, còn proxy access log kiểm đường mạng. Hai chứng cứ bổ sung cho nhau. Khi kiểm pull sau đó, tạo changeset mới trên repo lab và đối chiếu node; nếu không có thay đổi nguồn, một lệnh không nhận dữ liệu mới chưa cho biết nhiều về đường tải.

Bảng: Mercurial proxy ví dụ cấu hình tối thiểu

Thành phần

Mục đích kiểm

Bằng chứng cần có

proxy-lab.hgrc và HGRCPATH

Nguồn cấu hình

File và phạm vi hiệu lực

repository clone-proxy

Đầu ra tác vụ

node của changeset

remote SSH cùng Git

Ranh giới riêng

Ca kiểm độc lập nếu áp dụng

Mercurial proxy cơ chế và nguồn cấu hình

Nhóm ca đầu xác định cơ chế của hg clone và hg pull. Kiểm nguồn cấu hình trước khi đo đường mạng giúp nhận ra trường hợp công cụ đang dùng một giá trị khác với file vừa sửa.

Nguồn cấu hình đang hiệu lực

Mercurial có thể đọc nhiều file nên một khóa đúng tên vẫn bị ghi đè từ nơi khác.

Cách thực hiện trong lab: Dùng HGRCPATH riêng rồi chạy hg config --source chỉ với http_proxy.host và các mục không nhạy cảm.

Bắt đầu phần nguồn cấu hình đang hiệu lực bằng một giả thuyết có thể kiểm. Với hg clone và hg pull, điều cần xác định trước tiên là thành phần nào thực hiện kết nối và thành phần nào chỉ đọc cấu hình. Nếu hai vai trò bị gộp, một giá trị lưu đúng trong proxy-lab.hgrc và HGRCPATH có thể bị coi nhầm là bằng chứng request đã đi đúng tuyến.

Lập một hàng thử có tên riêng trước khi gọi lệnh. Hàng đó cần ghi phiên bản công cụ, vị trí thực thi, đầu vào được cấp và trạng thái repository clone-proxy trước lượt chạy. Các thông tin này giải thích được vì sao cùng một lệnh có thể tạo request ở máy này nhưng không tạo ở máy khác, nhất là khi đã có dữ liệu từ lần trước.

Khi đọc kết quả, tách phần công cụ báo khỏi phần hệ thống đối chứng quan sát. Dòng thông báo trong terminal mô tả phía client; log origin hoặc gateway mô tả nơi nhận kết nối. Chỉ nối hai dữ liệu bằng thời điểm và mã lượt phù hợp, tránh ghép một log cũ với output mới rồi suy rằng cả quy trình đã được xác minh.

Điều kiện chấp nhận: Output trỏ về file lab dự kiến, không lấy gateway từ user config của máy dùng hằng ngày. Nếu nguồn cấu hình sai, sửa phạm vi đọc file trước khi đổi gateway hoặc tài khoản.

Clone qua transport web

Clone tải dữ liệu repository qua URL HTTP hoặc HTTPS và tạo bản sao mới.

Cách thực hiện trong lab: Chọn repo lab có changeset đã biết, clone vào đường dẫn mới rồi đọc node của commit đầu ra.

Phép so cho clone qua transport web cần hai điều kiện chỉ khác ở yếu tố đang đánh giá. Giữ nguyên phiên bản, nguồn dữ liệu và danh tính lab khi thay cách cấu hình hg clone và hg pull. Nếu đồng thời đổi nguồn hoặc trạng thái repository clone-proxy, kết quả khác nhau sẽ không chỉ ra được tác động của tuyến mạng.

Tạo bản mô tả đầu vào trước mỗi lượt thay vì ghi nhớ bằng mắt. Với cấu hình proxy-lab.hgrc và HGRCPATH, chỉ lưu các giá trị không nhạy cảm cùng tên nơi cấp secret. Có thể ghi rằng credential đến từ môi trường hoặc kho bí mật mà không chụp toàn bộ màn hình chứa giá trị. Thông tin để tái lập và thông tin bí mật là hai loại dữ liệu cần quản lý riêng.

So đầu ra theo điều kiện của ca, không chỉ theo tốc độ kết thúc. node của changeset cần được đánh giá trong ngữ cảnh lượt chạy và trạng thái dữ liệu ban đầu. Một lượt chạy nhanh vì không phải làm tác vụ mạng vẫn có thể đúng chức năng, nhưng chưa phù hợp để so đường kết nối với lượt thật sự truyền dữ liệu.

Điều kiện chấp nhận: Node nằm trong lịch sử nguồn và server nhận lượt truy cập tương ứng qua gateway. Thư mục .hg xuất hiện mà clone báo lỗi vẫn phải được ghi là tác vụ chưa hoàn tất.

Đối chứng đầu ra

Đối chứng đầu ra

Mercurial proxy đối chứng dữ liệu và trạng thái

Nhóm tiếp theo tập trung vào repository clone-proxy. So dữ liệu và trạng thái ban đầu giúp phân biệt thao tác mới với kết quả được tái sử dụng từ lượt trước.

Pull với changeset mới

Pull có thể không tải lịch sử mới nếu repository nguồn chưa thay đổi kể từ clone.

Cách thực hiện trong lab: Thêm một commit thử vào nguồn lab rồi gọi pull từ bản clone và so node mới.

Đầu ra của pull với changeset mới cần một điều kiện chấp nhận cụ thể. Với repository clone-proxy, việc đối tượng hoặc đường dẫn xuất hiện chưa nói nội dung đã đúng, đầy đủ hay thuộc lượt chạy hiện tại. Xác định dấu hiệu cuối cùng cần có trước khi bắt đầu giúp tránh thay tiêu chuẩn theo output vừa nhìn thấy.

Lưu dữ liệu đối chứng từ phía nguồn hoặc từ trạng thái đã được nhóm kiểm soát. Đừng tạo giá trị mong đợi bằng chính output đang cần đánh giá rồi so hai thứ với nhau. Khi node của changeset có nhiều thành phần, kiểm từng thành phần và ghi phần nào chưa có bằng chứng, thay vì gộp chúng thành một nhãn thành công duy nhất.

Nếu công cụ trả dữ liệu dở, giữ bản nhỏ có thể tái hiện lỗi và ghi giai đoạn đã hoàn thành. Thành công ở tầng kết nối có thể đi cùng thất bại ở tầng xác thực, tải nội dung hoặc xử lý đầu ra. Phân biệt các mốc đó giúp người nhận chọn đúng lớp cần sửa và không làm lại mọi thiết lập của proxy-lab.hgrc và HGRCPATH.

Điều kiện chấp nhận: Changeset mới có mặt trong repository cục bộ và request được khớp theo thời điểm. Đừng nhầm dữ liệu repository với working copy vì pull không mặc định cập nhật mọi file đang mở.

Danh sách no và always

Mục no cho host bypass còn always có thể buộc proxy kể cả localhost và mục đã liệt kê.

Cách thực hiện trong lab: Thử một host nội bộ thuộc no cùng một host ngoài danh sách, sau đó kiểm riêng always trong lab.

Trạng thái trước lượt kiểm ảnh hưởng trực tiếp đến danh sách no và always. Trong hg clone và hg pull, cần xem history so với working copy đang được tạo mới, tái sử dụng hay giữ lại từ lần trước. Cùng câu lệnh nhưng khác trạng thái ban đầu có thể thực hiện lượng công việc khác nhau, nên so kết quả mà bỏ qua điều này dễ dẫn tới chẩn đoán sai.

Tạo một mốc có kiểm soát trong bản clone Mercurial thử. Ghi artifact nào đã có sẵn và artifact nào phải được tạo trong lượt mới. Nếu cần thử lại từ đầu, chỉ dùng đường dẫn thử riêng đã được nhận diện; không dọn kho dữ liệu dùng chung để ép công cụ phát sinh một request. Mục tiêu là kiểm hành vi, không thay đổi môi trường làm việc của người khác.

Sau khi chạy, so trạng thái trước và sau theo đúng ca. Sự khác nhau trong repository clone-proxy phải được giải thích bằng thao tác dự kiến chứ không bằng một tác vụ nền ngoài hồ sơ. Khi công cụ có cơ chế tái sử dụng kết nối hoặc dữ liệu, thêm một lượt mới và một lượt lặp để người đọc hiểu vì sao lượng request có thể khác.

Điều kiện chấp nhận: Origin nội bộ và ngoài có đường đi đúng từng cấu hình, log gateway phản ánh khác biệt. Không chỉ thử localhost rồi kết luận mọi repository HTTPS đã qua proxy.

Mercurial proxy phân loại lỗi và giới hạn

Các ca sau đánh giá điều kiện lỗi và khả năng của phiên bản đang dùng. Mục tiêu là nhận đúng giới hạn của hg clone và hg pull, không biến mọi thất bại thành lỗi gateway.

Proxy auth và repo auth

Gateway chấp nhận danh tính chưa cấp quyền đọc repository riêng tư của origin.

Cách thực hiện trong lab: Dùng tài khoản proxy hợp lệ nhưng tài khoản repo sai trong một ca riêng rồi đổi về hợp lệ.

Chẩn đoán proxy auth và repo auth nên theo thứ tự sự kiện của hg clone và hg pull. Xác định thông báo xuất hiện trước khi mở kết nối, tại gateway, khi liên lạc origin hay lúc xử lý repository clone-proxy. Thứ tự này quan trọng hơn việc mọi lỗi có chung chữ proxy trong mô tả người dùng.

Mỗi lần sửa chỉ đổi một nguyên nhân có giả thuyết. Nếu thông báo liên quan danh tính, giữ URL và dữ liệu nguồn như cũ rồi kiểm lớp auth tương ứng. Nếu lỗi thuộc quyền đọc file cấu hình hoặc quyền ghi đầu ra, xử lý quyền đó trước. Không thay cả secret, endpoint và tham số http_proxy.no và always trong cùng một lượt rồi nhận rằng đã tìm ra nguyên nhân.

Dùng ca âm có kiểm soát để kiểm chất lượng phân loại lỗi. Chỉ thay một đầu vào lab thành giá trị không hợp lệ, đặt thời hạn kết thúc và xem chương trình phản hồi thế nào. Sau ca âm, khôi phục giá trị rồi chạy lại mốc; nếu mốc vẫn lỗi, môi trường chưa trở lại điều kiện để tiếp tục các phép so.

Điều kiện chấp nhận: Lỗi gateway và lỗi truy cập repository được tách theo status hoặc thông báo tương ứng. Không chép mật khẩu repository vào http_proxy.passwd vì hai trường phục vụ hai nơi nhận.

HTTPS và CA cho hg

TLS phụ thuộc môi trường Python và cấu hình chứng chỉ của bản Mercurial đang chạy.

Cách thực hiện trong lab: Dùng repo HTTPS lab có CA đã cấp và kiểm log handshake trong khi vẫn giữ xác minh server.

Khả năng của https và ca cho hg cần được kiểm theo đúng phiên bản đang dùng. Một tùy chọn xuất hiện trong tài liệu hiện hành chưa chứng minh binary cũ trên máy đã nhận nó. Trước khi dùng kết quả để hướng dẫn người khác, đối chiếu trợ giúp của công cụ và thông tin phiên bản với cú pháp trong proxy-lab.hgrc và HGRCPATH.

Với hg clone và hg pull, lưu cả môi trường thực thi nếu có nhiều máy hoặc tiến trình. Hệ điều hành, backend TLS, công cụ con và vị trí phân giải hostname đều có thể tạo khác biệt. Đừng lấy kết quả của trình duyệt trên laptop để thay cho tiến trình chạy trong máy ảo, container hay node khác khi bài kiểm đang nhắm môi trường đó.

Giữ những giả định chưa kiểm ở một cột riêng trong hồ sơ. remote SSH cùng Git có thể cần một bộ dữ liệu hoặc cơ chế transport khác với ca hiện tại. Việc ghi chưa kiểm không làm mất giá trị kết quả đã có; nó giúp tránh mở rộng một quan sát nhỏ thành lời cam kết vượt quá phạm vi.

Điều kiện chấp nhận: Clone hoàn tất với revision đúng và không cần bỏ kiểm chứng hostname hay certificate. Lỗi CA sau khi tunnel mở không nên được gộp thành mật khẩu proxy sai.

Phân biệt các lớp lỗi

Phân biệt các lớp lỗi

Mercurial proxy vận hành và bàn giao

Nhóm cuối giữ đủ hồ sơ để người khác tiếp tục trong bản clone Mercurial thử. Cấu hình mẫu, dữ liệu đã che và việc hoàn nguyên cần được kiểm trước khi bàn giao.

Remote SSH và công cụ khác

Remote ssh không chịu cùng giả định với transport web của section http_proxy.

Cách thực hiện trong lab: Liệt kê hg paths và nhận diện scheme trước khi chọn hướng xử lý mạng.

Quản lý dữ liệu cho remote ssh và công cụ khác cần giữ đủ khả năng truy nguyên mà không lộ bí mật. Trong hg clone và hg pull, log có thể chứa địa chỉ gateway, URL nguồn, thông tin danh tính và đường dẫn repository clone-proxy. Chọn dữ liệu cần lưu theo mục đích chẩn đoán, tránh thu tất cả rồi mới tìm cách che sau.

Tạo bản log làm việc ở nơi có quyền phù hợp và một bản chia sẻ đã được rà. Khi che giá trị, giữ cấu trúc giúp nhận diện loại dữ liệu, chẳng hạn hostname, loại auth và mã trạng thái không nhạy cảm. Nếu che đến mức mất cả endpoint và thời điểm, người nhận khó khớp với node của changeset và không còn đủ dữ liệu để kiểm giả thuyết.

File cấu hình cũng cần phân loại tương tự. Mẫu proxy-lab.hgrc và HGRCPATH có thể được chia sẻ khi chỉ chứa tên biến và địa chỉ minh họa; bản đang chứa token hoặc userinfo phải được xử lý riêng. Xóa secret khỏi phiên bản cuối chưa đủ nếu nó đã nằm trong lịch sử repository, archive cũ hoặc log của runner đã được phát hành.

Điều kiện chấp nhận: Biên bản tách HTTP HTTPS SSH; chỉ công bố kết quả cho đường đã thử. Không dùng thành công của git clone để nhận rằng hg clone đang dùng cùng cấu hình.

Hoàn nguyên phiên hg

File thử và HGRCPATH có thể ảnh hưởng các lệnh hg tiếp theo trong terminal.

Cách thực hiện trong lab: Lưu nguồn cấu hình ban đầu, kết thúc ca rồi phục hồi biến và kiểm lại một lệnh đọc.

Kết thúc hoàn nguyên phiên hg là một bước của phép thử, không chỉ là đóng cửa sổ terminal. Kiểm hg clone và hg pull còn tác vụ nền hay tài nguyên đang hoạt động không, và repository clone-proxy đã ở trạng thái cuối hay đang tiếp tục thay đổi. Chốt kết quả khi còn tiến trình ghi dữ liệu có thể làm hash hoặc metadata không ổn định.

Lưu các giá trị ban đầu của môi trường trước khi phục hồi cấu hình. Với proxy-lab.hgrc và HGRCPATH, cần phân biệt giá trị chỉ sống trong một tiến trình với cấu hình được lưu cho các lượt sau. Một lần bỏ biến trong shell không xóa được giá trị đã ghi vào profile hoặc file; ngược lại không cần sửa cấu hình toàn máy nếu chỉ một phiên thử bị ảnh hưởng.

Chạy lại mốc sau hoàn nguyên bằng dữ liệu nhỏ đã biết. Mục đích là xác nhận môi trường trở về điều kiện dự kiến và không còn thừa hưởng trạng thái lỗi do ca trước tạo ra. Ghi kết quả cuối cùng cùng thời điểm để người nhận hiểu đâu là output cuối, đâu là log của giai đoạn sửa lỗi.

Điều kiện chấp nhận: Phiên làm việc trở về tập config dự kiến, không mang mật khẩu thử trong repo hay log. Không xóa .hg của dự án thật để tạo lại bài kiểm proxy.

Mercurial proxy đọc kết quả theo đúng phạm vi

Để kiểm pull, repository nguồn cần có thay đổi thật mà bản clone chưa có. Một cách tái lập là tạo commit A, clone nó, sau đó tạo commit B chỉ trong repo lab. Lượt pull phải mang node B về repository cục bộ; đó là điều kiện mạnh hơn thông báo không có lỗi.

Working copy và repository history nên được kiểm ở hai cột khác nhau. Pull có thể đã lấy changeset nhưng file đang mở chưa được cập nhật tới revision mới. Nếu người chạy chỉ nhìn nội dung file, họ có thể nhận nhầm lỗi đồng bộ working copy thành lỗi gateway.

Các thử nghiệm bypass cũng cần có hostname rõ ràng. Localhost thường có quy tắc xử lý riêng, đặc biệt khi bật always. Chỉ thử một địa chỉ loopback không đủ chứng minh danh sách no cho repository nội bộ đã đúng. Hãy dùng một host lab được định tuyến và lưu log cả origin lẫn proxy.

Không commit hgrc chứa secret để người khác có thể clone bài thử. Một file ví dụ chỉ cần host, tên biến và hướng dẫn cấp credential. Trước khi đóng gói repository lab, kiểm cả lịch sử commit vì xóa mật khẩu khỏi phiên bản hiện tại không xóa nó khỏi những commit đã tạo trước đó.

Khi chẩn đoán, có thể tra cơ chế HTTP proxy và tunnel của MDN, ý nghĩa HTTP status và cơ sở kiểm chứng TLS. Các tài liệu giao thức giúp hiểu nguyên nhân, còn kết luận tương thích vẫn cần phép thử trên công cụ và môi trường cụ thể.

Nếu cần rà cấu trúc đầu vào, dùng hướng dẫn định dạng proxy. Khi có bypass, đối chiếu khái niệm no_proxy với quy tắc riêng của công cụ; cùng một chuỗi host không được mặc định có ý nghĩa giống nhau ở mọi runtime.

Một tùy chọn được chấp nhận, một kết nối thành công và một đầu ra đúng là ba điều kiện cần được kiểm riêng.

Hồ sơ bàn giao

Hồ sơ bàn giao

Khi cần mua proxy cho hg clone và hg pull, anh em nên xác nhận giao thức, cách cấp tài khoản và khả năng kết nối từ môi trường thực thi, rồi thử bằng đầu ra nhỏ có đối chứng trước khi chọn cấu hình dùng lâu dài.

Anh em nên giữ cấu hình mẫu và kết quả từng ca trước khi mở rộng tác vụ. Theo dõi Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để tham khảo nội dung liên quan. Khi thay phiên bản hoặc môi trường, kiểm lại đầu ra và phạm vi của Mercurial proxy.

TIN TỨC LIÊN QUAN