Visual Studio Code có khả năng đồng bộ hóa các tiện ích mở rộng, cài đặt và đoạn mã giữa các thiết bị - nhưng tất cả đều hoạt động thông qua các máy chủ của Microsoft, mà thường không thể truy cập được sau tường lửa doanh nghiệp, trong các mạng văn phòng có bộ lọc nghiêm ngặt hoặc từ các khu vực có quyền truy cập hạn chế. Kết quả là - Marketplace Extensions bị treo, Settings Sync không kết nối, và các bản cập nhật không được tải xuống. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình proxy đúng cách trong VS Code để tất cả những vấn đề này biến mất một lần và mãi mãi.
Tại sao VS Code không hoạt động mà không có proxy trong một số mạng
Visual Studio Code không chỉ là một trình soạn thảo văn bản. Ở phía sau, nó liên tục truy cập vào các máy chủ bên ngoài: tải xuống các bản cập nhật tiện ích mở rộng từ marketplace.visualstudio.com, đồng bộ hóa cài đặt qua vscode.dev và các máy chủ GitHub/Tài khoản Microsoft, kiểm tra các bản cập nhật của chính trình soạn thảo, gửi telemetry (nếu không bị tắt).
Tất cả các yêu cầu này đều đi qua các kết nối HTTPS tiêu chuẩn. Và đây là nơi bắt đầu các vấn đề:
- Mạng doanh nghiệp - các quản trị viên hệ thống chặn truy cập trực tiếp ra internet, yêu cầu phải chuyển toàn bộ lưu lượng qua máy chủ proxy doanh nghiệp. VS Code không "biết" điều này và đơn giản là không thể kết nối.
- Tường lửa văn phòng với danh sách trắng - chỉ cho phép các miền cụ thể, và
marketplace.visualstudio.comkhông nằm trong danh sách này. - Hạn chế khu vực - ở một số quốc gia và khu vực, quyền truy cập vào các dịch vụ của Microsoft bị hạn chế hoặc không ổn định. Proxy với IP của quốc gia cần thiết giải quyết vấn đề.
- Xung đột VPN - một số VPN doanh nghiệp chặn lưu lượng nhưng không truyền tải đúng cách, khiến VS Code mất kết nối với Marketplace.
- Internet không ổn định + proxy với bộ nhớ cache - máy chủ proxy có thể lưu trữ các gói tiện ích mở rộng và tăng tốc độ cài đặt trong các nhóm có băng thông chậm.
Các triệu chứng của tất cả những vấn đề này đều giống nhau: các tiện ích mở rộng không được cài đặt hoặc bị treo khi tải, Settings Sync báo lỗi xác thực hoặc "không thể kết nối", các bản cập nhật VS Code không được tải xuống, và trong bảng Output có thể thấy các lỗi ECONNREFUSED hoặc ETIMEDOUT.
Cách VS Code xử lý proxy: những điều quan trọng cần biết
VS Code được xây dựng trên Electron, sử dụng động cơ Chromium cho các yêu cầu mạng. Điều này có nghĩa là các cài đặt proxy hoạt động tương tự như trong trình duyệt - trình soạn thảo hỗ trợ proxy HTTP, HTTPS và SOCKS5.
Quan trọng là phải hiểu thứ tự mà VS Code tìm kiếm các cài đặt proxy:
- Cài đặt proxy hệ thống - nếu trong Windows/macOS/Linux đã cấu hình proxy hệ thống, VS Code sẽ tự động nhận nó (tham số
http.systemProxy). - Các biến môi trường -
HTTP_PROXY,HTTPS_PROXY,NO_PROXY- cách tiêu chuẩn cho Linux/macOS. - Cài đặt trong settings.json - chỉ định rõ ràng proxy qua các tham số
http.proxyvà các tùy chọn liên quan. - Tham số dòng lệnh - có thể khởi động VS Code với các cờ proxy trực tiếp.
Ưu tiên: các cài đặt rõ ràng trong settings.json sẽ ghi đè lên các biến môi trường, mà lại ghi đè lên các cài đặt hệ thống. Nếu có gì đó không hoạt động - hãy kiểm tra theo thứ tự này.
💡 Lưu ý quan trọng
VS Code sử dụng hai ngăn xếp mạng riêng biệt: một cho chính trình soạn thảo (Electron/Chromium), một cho các tiện ích mở rộng, có thể thực hiện các yêu cầu HTTP riêng qua Node.js. Cấu hình proxy trong settings.json sẽ bao phủ cả hai ngăn xếp, nhưng một số tiện ích mở rộng có thể bỏ qua các cài đặt hệ thống và yêu cầu cấu hình riêng.
Cấu hình proxy qua settings.json: từng bước
Đây là cách đáng tin cậy nhất và được khuyến nghị. Các cài đặt trong settings.json sẽ được áp dụng toàn cầu cho tất cả các yêu cầu mạng của VS Code.
Bước 1: Mở settings.json
Nhấn Ctrl+Shift+P (hoặc Cmd+Shift+P trên Mac), nhập «Open User Settings (JSON)» và chọn mục này. Tệp cài đặt người dùng sẽ mở ra.
Bước 2: Thêm các tham số proxy
Chèn các dòng cần thiết vào trong đối tượng JSON. Ví dụ cho các loại proxy khác nhau:
Proxy HTTP/HTTPS (không cần xác thực):
{
"http.proxy": "http://192.168.1.100:3128",
"http.proxyStrictSSL": false
}
Proxy HTTP/HTTPS với tên đăng nhập và mật khẩu:
{
"http.proxy": "http://username:password@proxy-host:3128",
"http.proxyStrictSSL": false
}
Proxy SOCKS5:
{
"http.proxy": "socks5://username:password@proxy-host:1080",
"http.proxyStrictSSL": false
}
Bước 3: Hiểu các tham số
| Tham số | Giá trị | Khi nào sử dụng |
|---|---|---|
http.proxy |
URL proxy | Tham số chính, bắt buộc |
http.proxyStrictSSL |
true / false | false - nếu proxy sử dụng chứng chỉ tự ký |
http.proxyAuthorization |
Chuỗi Base64 | Cách thay thế để truyền tên đăng nhập/mật khẩu |
http.noProxy |
Danh sách miền | Các miền cần bỏ qua proxy (localhost, các máy chủ nội bộ) |
http.systemProxy |
on / off / override | Quản lý proxy hệ thống (tham số mới trong VS Code 1.87+) |
Bước 4: Khởi động lại VS Code
Sau khi lưu settings.json, hãy đóng hoàn toàn và mở lại VS Code. Khởi động lại một phần (Reload Window) đôi khi không áp dụng các cài đặt mạng mới.
Proxy qua biến môi trường (HTTP_PROXY / HTTPS_PROXY)
Cách này đặc biệt tiện lợi trên Linux và macOS, cũng như trong các nhóm, nơi proxy được cấu hình ở cấp hệ thống và phải được áp dụng cho tất cả các công cụ phát triển - không chỉ cho VS Code mà còn cho npm, pip, git, v.v.
Linux / macOS - cấu hình cố định
Thêm vào ~/.bashrc, ~/.zshrc hoặc ~/.profile:
export HTTP_PROXY="http://username:password@proxy-host:3128" export HTTPS_PROXY="http://username:password@proxy-host:3128" export NO_PROXY="localhost,127.0.0.1,*.local,*.internal"
Sau đó, thực hiện source ~/.bashrc (hoặc đăng nhập lại vào phiên) và khởi động VS Code từ terminal bằng lệnh code . - các biến sẽ được kế thừa.
Windows - qua các biến hệ thống
Mở "Cài đặt hệ thống" → "Cài đặt nâng cao" → "Biến môi trường". Thêm các biến HTTP_PROXY và HTTPS_PROXY vào phần "Biến người dùng" (hoặc "Biến hệ thống" để áp dụng cho tất cả người dùng). Sau khi lưu, hãy khởi động lại VS Code.
Khởi động VS Code với proxy trực tiếp từ dòng lệnh
Nếu cần kiểm tra nhanh mà không cần cấu hình cố định:
# Linux/macOS HTTP_PROXY=http://proxy-host:3128 HTTPS_PROXY=http://proxy-host:3128 code . # Windows PowerShell $env:HTTP_PROXY="http://proxy-host:3128"; $env:HTTPS_PROXY="http://proxy-host:3128"; code .
Settings Sync qua proxy: chẩn đoán và giải quyết vấn đề
Settings Sync - tính năng tích hợp sẵn của VS Code, đồng bộ hóa các cài đặt, tiện ích mở rộng, đoạn mã, phím tắt và hồ sơ giữa các thiết bị qua tài khoản Microsoft hoặc GitHub. Nó hoạt động thông qua các yêu cầu HTTPS đến các máy chủ của Microsoft và GitHub, và chính tại đây proxy là rất quan trọng.
Các lỗi điển hình của Settings Sync qua proxy
| Lỗi | Nguyên nhân | Giải pháp |
|---|---|---|
| «Không thể kết nối đến máy chủ» | Proxy chưa được cấu hình hoặc bị chặn | Cấu hình http.proxy trong settings.json |
| «Xác thực không thành công» | Proxy chặn token OAuth | Tắt kiểm tra SSL cho *.microsoft.com |
| «Đồng bộ hóa đã bật nhưng không đồng bộ» | Proxy doanh nghiệp chặn WebSocket | Sử dụng proxy hỗ trợ WebSocket |
| Đồng bộ hóa bị treo ở «Đang đồng bộ hóa...» | Thời gian kết nối qua proxy chậm | Thay đổi proxy sang nhanh hơn |
Chẩn đoán qua Output
Mở View → Output và trong danh sách thả xuống chọn «Settings Sync». Tại đây có thể thấy tất cả các nỗ lực kết nối và mã lỗi. Tìm các dòng có ECONNREFUSED, 407 Proxy Authentication Required hoặc CERT_UNTRUSTED - mỗi mã này chỉ ra một vấn đề cụ thể với proxy.
Nếu thấy lỗi 407 - proxy yêu cầu xác thực, hãy thêm tên đăng nhập và mật khẩu vào URL proxy. Nếu CERT_UNTRUSTED - hãy đặt "http.proxyStrictSSL": false hoặc thêm chứng chỉ gốc của CA doanh nghiệp.
Các miền cần có quyền truy cập cho Settings Sync
Hãy chắc chắn rằng các máy chủ sau có thể truy cập qua proxy của bạn:
login.microsoftonline.com- xác thực qua Tài khoản Microsoftgithub.com- xác thực qua GitHubapi.github.com- API GitHub cho đồng bộ hóa qua Gistvscode.dev- dịch vụ đồng bộ hóa VS Code*.vscode-cdn.net- CDN cho tài nguyên VS Code
Marketplace Extensions: tại sao không cài đặt được các tiện ích mở rộng và cách khắc phục
Marketplace VS Code hoạt động thông qua miền marketplace.visualstudio.com và các máy chủ CDN của Microsoft. Nếu proxy được cấu hình đúng, việc cài đặt các tiện ích mở rộng hoạt động một cách minh bạch. Nhưng có một số vấn đề cụ thể.
Tiện ích mở rộng được cài đặt nhưng không hoạt động
Nhiều tiện ích mở rộng thực hiện các yêu cầu mạng riêng khi khởi động - chẳng hạn, tải xuống các máy chủ ngôn ngữ (LSP), các phụ thuộc nhị phân hoặc các bản cập nhật cơ sở dữ liệu. Những yêu cầu này đi qua Node.js bên trong tiện ích mở rộng, và chúng tuân theo các cài đặt proxy của VS Code, nhưng chỉ nếu tiện ích mở rộng được viết với các biến HTTP_PROXY.
Nếu tiện ích mở rộng vẫn không hoạt động sau proxy - hãy kiểm tra tài liệu của nó. Nhiều tiện ích mở rộng phổ biến có các cài đặt proxy riêng. Ví dụ:
- Python (Pylance/Pylint) - sử dụng các biến môi trường hệ thống
- ESLint, Prettier - hoạt động cục bộ, không cần proxy
- GitHub Copilot - yêu cầu truy cập vào
api.github.com, lấy proxy từ settings.json - Remote - SSH - proxy cần thiết cho SSH tunnel, được cấu hình riêng trong SSH config
- Docker - sử dụng proxy hệ thống của Docker daemon
Cài đặt tiện ích mở rộng thủ công (offline)
Nếu proxy không khả dụng hoặc không ổn định, các tiện ích mở rộng có thể được cài đặt thủ công qua tệp .vsix. Tải tệp tiện ích mở rộng từ marketplace.visualstudio.com trên máy có quyền truy cập internet, sau đó trong VS Code: Extensions → ··· → Install from VSIX.
Loại proxy nào nên chọn cho VS Code
Việc chọn loại proxy phụ thuộc vào nhiệm vụ. Hãy xem xét các tùy chọn chính liên quan đến phát triển.
| Loại proxy | Tốc độ | Độ tin cậy | Khi nào phù hợp cho VS Code |
|---|---|---|---|
| Proxy trung tâm dữ liệu | ⚡ Cao | ✅ Ổn định | Vượt qua các hạn chế doanh nghiệp, tải xuống tiện ích mở rộng, pipeline CI/CD |
| Proxy dân cư | 🔄 Trung bình | ✅ Độ tin cậy cao | Truy cập vào các tài nguyên bảo vệ địa lý, kiểm tra từ một khu vực cụ thể |
| Proxy di động | 🔄 Trung bình | ✅ Độ tin cậy tối đa | Hiếm khi cần cho VS Code, nhưng hữu ích khi phát triển ứng dụng di động với kiểm tra địa lý |
| Proxy doanh nghiệp (Squid, ISA) | ⚡ Cao | ⚠️ Phụ thuộc vào cấu hình | Môi trường văn phòng, bắt buộc theo chính sách công ty |
Đối với hầu hết các nhà phát triển, những người chỉ cần vượt qua các hạn chế doanh nghiệp hoặc làm việc từ một quốc gia có quyền truy cập không ổn định vào các máy chủ của Microsoft, lựa chọn tối ưu sẽ là proxy trung tâm dữ liệu - chúng nhanh chóng, ổn định và rất phù hợp cho các nhiệm vụ kỹ thuật như tải xuống các gói và đồng bộ hóa cài đặt.
Nếu nhiệm vụ là kiểm tra ứng dụng từ một khu vực địa lý cụ thể (ví dụ, kiểm tra cách dịch vụ của bạn hoạt động cho người dùng ở Đức hoặc Mỹ), thì proxy dân cư với IP thực của người dùng trong nước cần thiết sẽ rất hữu ích.
Proxy doanh nghiệp với kiểm tra SSL: trường hợp đặc biệt
Proxy doanh nghiệp với chức năng kiểm tra SSL (man-in-the-middle) - đây là một cơn đau đầu riêng cho các nhà phát triển. Proxy như vậy giải mã lưu lượng HTTPS, kiểm tra nó và mã hóa lại, ký bằng chứng chỉ doanh nghiệp của mình. Kết quả là VS Code thấy chứng chỉ "không xác định" và từ chối hoạt động.
Triệu chứng
- Lỗi
CERT_UNTRUSTEDhoặcunable to verify the first certificatetrong Output - Các tiện ích mở rộng không được cài đặt, mặc dù proxy đã được chỉ định đúng
- Settings Sync không xác thực
- npm và pip cũng báo lỗi về chứng chỉ
Giải pháp 1: Tắt kiểm tra SSL (nhanh chóng, nhưng ít an toàn hơn)
{
"http.proxyStrictSSL": false
}
Đây là giải pháp nhanh chóng, tắt kiểm tra chứng chỉ SSL của proxy. Phù hợp cho mạng doanh nghiệp nội bộ, nơi proxy được tin cậy.
Giải pháp 2: Thêm chứng chỉ CA doanh nghiệp (cách đúng)
Nhận chứng chỉ gốc doanh nghiệp từ quản trị viên hệ thống (tệp .pem hoặc .crt) và thêm nó vào cài đặt:
{
"http.proxy": "http://corporate-proxy:3128",
"http.proxyStrictSSL": true,
"http.proxyCertificates": true
}
Cũng hãy thêm chứng chỉ vào kho chứng chỉ hệ thống - VS Code sử dụng các chứng chỉ hệ thống bắt đầu từ phiên bản 1.40. Trên Windows, chỉ cần cài đặt chứng chỉ vào "Các trung tâm chứng nhận gốc đáng tin cậy" qua certmgr.msc. Trên Linux, thêm chứng chỉ vào /usr/local/share/ca-certificates/ và thực hiện update-ca-certificates.
Giải pháp 3: Biến NODE_EXTRA_CA_CERTS
VS Code và các tiện ích mở rộng của nó hoạt động trên Node.js, vì vậy có thể chỉ định các chứng chỉ CA bổ sung qua biến môi trường:
# Linux/macOS export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca.pem" # Windows PowerShell $env:NODE_EXTRA_CA_CERTS="C:\certs\corporate-ca.pem"
Danh sách kiểm tra: VS Code + proxy hoạt động chính xác
Sử dụng danh sách kiểm tra này để đảm bảo rằng mọi thứ được cấu hình đúng cách, hoặc nhanh chóng tìm ra nguyên nhân của vấn đề.
✅ Cấu hình proxy cơ bản
- Trong
settings.jsonđã ghi tham sốhttp.proxyvới URL chính xác - URL proxy bao gồm sơ đồ:
http://hoặcsocks5:// - Nếu proxy yêu cầu xác thực - tên đăng nhập và mật khẩu được chỉ định trong URL
- VS Code đã được khởi động lại hoàn toàn sau khi thay đổi cài đặt
✅ SSL và chứng chỉ
- Nếu proxy có kiểm tra SSL - đã cài đặt chứng chỉ CA doanh nghiệp
- Hoặc đã đặt
"http.proxyStrictSSL": falsenhư một giải pháp tạm thời - Trong Output không có lỗi
CERT_UNTRUSTED
✅ Settings Sync
- Các miền
login.microsoftonline.comvàvscode.devcó thể truy cập qua proxy - Xác thực qua Tài khoản Microsoft hoặc GitHub thành công
- Trong Output → Settings Sync không có lỗi kết nối
- Trạng thái đồng bộ trong thanh trạng thái hiển thị biểu tượng hoạt động
✅ Marketplace và các tiện ích mở rộng
- Tìm kiếm các tiện ích mở rộng trong Marketplace hoạt động và hiển thị kết quả
- Cài đặt tiện ích mở rộng hoàn tất mà không có lỗi
- Các tiện ích mở rộng yêu cầu truy cập mạng (Copilot, Remote) hoạt động chính xác
- Các bản cập nhật tiện ích mở rộng được tải xuống tự động
✅ Các công cụ phát triển bổ sung
- npm được cấu hình để làm việc qua proxy:
npm config set proxy http://proxy:3128 - git được cấu hình:
git config --global http.proxy http://proxy:3128 - pip (nếu sử dụng Python): các biến
HTTP_PROXYđã được thiết lập
Kết luận
Cấu hình proxy trong VS Code - một nhiệm vụ có thể giải quyết một lần và mãi mãi giúp loại bỏ các vấn đề với Marketplace bị treo, Settings Sync không hoạt động và các tiện ích mở rộng không thể tải xuống các phụ thuộc. Các điểm chính từ bài viết này:
- Cách đáng tin cậy nhất - ghi
http.proxytrongsettings.json: hoạt động cho cả trình soạn thảo và hầu hết các tiện ích mở rộng. - Các biến môi trường (
HTTP_PROXY,HTTPS_PROXY) - tiện lợi cho việc đồng bộ hóa các cài đặt proxy cho toàn bộ môi trường phát triển. - Proxy doanh nghiệp với kiểm tra SSL yêu cầu tắt
proxyStrictSSLhoặc cài đặt chứng chỉ CA doanh nghiệp. - Settings Sync hoạt động qua proxy mà không cần cài đặt bổ sung - điều quan trọng là các miền của Microsoft và GitHub phải có thể truy cập được.
- Chẩn đoán luôn bắt đầu từ Output → Settings Sync và Output → Extensions - tại đó có thể thấy tất cả các lỗi mạng với mã lỗi.
Nếu bạn làm việc trong môi trường có quyền truy cập internet hạn chế hoặc cần kiểm tra ứng dụng từ một khu vực địa lý cụ thể, chúng tôi khuyên bạn nên sử dụng proxy trung tâm dữ liệu để có hiệu suất ổn định và nhanh chóng với các công cụ phát triển - chúng cung cấp tốc độ kết nối cao và rất phù hợp cho các nhiệm vụ kỹ thuật như tải xuống các gói, đồng bộ hóa cài đặt và làm việc với các kho lưu trữ từ xa.
```