Quay lại blog

Hướng Dẫn Toàn Diện Cài Đặt Proxy Trên Windows và Linux 2025

195+ quốc gia

📅13 tháng 11, 2025

Trong loạt bài viết này: Hướng dẫn toàn diện về cách thiết lập máy chủ proxy trong các hệ điều hành Windows 10/11 và Linux (Ubuntu, Debian, CentOS). Bạn sẽ tìm hiểu tất cả các phương pháp cấu hình — từ giao diện đồ họa đến dòng lệnh, registry, biến môi trường, tệp PAC và cấu hình tự động. Nội dung được cập nhật đến năm 2025 với các bản cập nhật hệ điều hành mới nhất.

🪟 Giới thiệu: Tại sao cần cấu hình proxy trong Windows

Thiết lập máy chủ proxy trong Windows là một kỹ năng quan trọng để làm việc trong mạng công ty, vượt qua các hạn chế khu vực, bảo vệ quyền riêng tư và tự động hóa việc thu thập dữ liệu web (web scraping). Năm 2025, Windows cung cấp nhiều cách cấu hình proxy, từ giao diện đồ họa đơn giản đến các công cụ dòng lệnh mạnh mẽ.

Các kịch bản sử dụng proxy chính trong Windows

🏢 Mạng công ty

Hầu hết các công ty yêu cầu sử dụng proxy của công ty để truy cập internet, kiểm soát lưu lượng và đảm bảo an ninh.

🔒 Quyền riêng tư

Sử dụng proxy giúp ẩn địa chỉ IP thực, bảo vệ dữ liệu cá nhân và vượt qua các giới hạn khu vực.

⚙️ Tự động hóa

Đối với web scraping, phân tích dữ liệu và kiểm thử tự động, proxy là cần thiết để luân chuyển IP và vượt qua các giới hạn.

🌍 Định vị địa lý

Truy cập nội dung từ các quốc gia khác nhau để kiểm thử, theo dõi giá cả và kiểm tra tính khả dụng của dịch vụ.

✅ Bạn sẽ học được gì trong phần này

  • Cấu hình proxy qua giao diện đồ họa Windows 10 và 11
  • Sử dụng Bảng điều khiển cổ điển
  • Làm việc với Registry Windows để tinh chỉnh cài đặt
  • Tự động hóa qua PowerShell và dòng lệnh
  • Cấu hình biến môi trường
  • Cấu hình proxy cho các ứng dụng cụ thể

🎨 Cấu hình proxy trong Windows 11 qua Giao diện đồ họa (GUI)

Windows 11 cung cấp giao diện Cài đặt được làm mới với điều hướng được cải thiện. Năm 2025, phương pháp này là đơn giản nhất và được khuyến nghị cho hầu hết người dùng.

Hướng dẫn từng bước

Bước 1: Mở Cài đặt

Nhấn Windows + I hoặc mở menu Start và chọn biểu tượng bánh răng (Settings).

💡 Mẹo: Bạn cũng có thể nhấp chuột phải vào biểu tượng mạng ở khay hệ thống và chọn "Cài đặt mạng".

Bước 2: Chuyển đến cài đặt proxy

Trong cửa sổ Settings, chọn:

  1. Network & Internet (Mạng & Internet) ở thanh bên trái
  2. Cuộn xuống và chọn Proxy (Proxy)

Bước 3: Chọn phương pháp cấu hình

Windows 11 cung cấp ba cách để cấu hình proxy:

🔄 Tự động phát hiện

Bật theo mặc định. Windows cố gắng tự động phát hiện cài đặt proxy qua DHCP hoặc DNS.

📜 Sử dụng tập lệnh thiết lập

Dành cho tệp PAC (Proxy Auto-Config). Nhập URL của tập lệnh cấu hình.

⚙️ Thiết lập thủ công

Phương pháp phổ biến nhất. Nhập địa chỉ IP và cổng proxy thủ công.

Bước 4: Cấu hình proxy thủ công

  1. Trong phần "Thiết lập thủ công", nhấn nút Setup (Cấu hình)
  2. Bật công tắc "Use a proxy server" (Sử dụng máy chủ proxy)
  3. Nhập Địa chỉ IP hoặc tên miền của máy chủ proxy
  4. Nhập Cổng (thường là 8080, 3128, 80 hoặc khác)
  5. (Tùy chọn) Trong trường "Don't use the proxy server for addresses", thêm các ngoại lệ
  6. Nhấn Save (Lưu)
Ví dụ về cài đặt:
Địa chỉ máy chủ proxy: 192.168.1.100
Cổng: 8080

Không sử dụng proxy cho:
localhost;127.0.0.1;*.local;192.168.*

⚠️ Quan trọng: Cài đặt proxy trong Windows 11 được áp dụng ở cấp hệ thống cho tất cả các ứng dụng sử dụng API WinHTTP và WinINET. Tuy nhiên, một số ứng dụng (ví dụ: Firefox) sử dụng cài đặt proxy riêng của chúng.

🖥️ Cấu hình proxy trong Windows 10

Quá trình cấu hình proxy trong Windows 10 rất giống với Windows 11, nhưng có một chút khác biệt về giao diện. Phương pháp này vẫn còn phù hợp vào năm 2025 cho hàng triệu người dùng.

Hướng dẫn cho Windows 10

Phương pháp 1: Qua Cài đặt Windows

  1. Nhấn Windows + I để mở Settings
  2. Chọn Network & Internet (Mạng & Internet)
  3. Ở thanh bên trái, chọn Proxy server (Máy chủ proxy)
  4. Trong phần "Manual proxy setup", bật "Use a proxy server"
  5. Nhập địa chỉ và cổng
  6. Nhấn Save (Lưu)

Thiết lập ngoại lệ

Để một số địa chỉ không sử dụng proxy, hãy thêm chúng vào trường ngoại lệ:

localhost;127.0.0.1;*.local;intranet.company.com

Các địa chỉ được phân tách bằng dấu chấm phẩy. Có thể sử dụng ký tự đại diện (*).

🎛️ Bảng điều khiển cổ điển (Internet Options)

Một phương pháp cũ nhưng vẫn đầy đủ chức năng để cấu hình proxy thông qua cửa sổ "Thuộc tính trình duyệt". Phương pháp này cung cấp các tùy chọn cấu hình nâng cao không có trong giao diện hiện đại của Windows.

Truy cập Internet Options

Các cách mở:

1️⃣ Qua lệnh Run

Nhấn Windows + R và nhập:

inetcpl.cpl
2️⃣ Qua Control Panel

Control Panel → Network and Internet → Internet Options

3️⃣ Qua Internet Explorer

Menu → Tools → Internet Options

Cấu hình Proxy

  1. Mở tab Connections (Kết nối)
  2. Nhấn nút LAN settings (Cài đặt mạng LAN)
  3. Trong phần "Proxy server", đánh dấu vào "Use a proxy server"
  4. Nhấn nút Advanced (Nâng cao) để cấu hình chi tiết

Cài đặt Proxy Nâng cao

Nút "Advanced" cho phép bạn thiết lập các proxy khác nhau cho các giao thức khác nhau:

Giao thức Địa chỉ Proxy Cổng
HTTP 192.168.1.100 8080
Secure (HTTPS) 192.168.1.100 8443
FTP 192.168.1.100 2121
Socks 192.168.1.100 1080

Ưu điểm: Có thể sử dụng các proxy khác nhau cho các loại lưu lượng khác nhau

📝 Cấu hình qua Registry Windows

Registry Windows là một công cụ mạnh mẽ để quản lý trực tiếp các cài đặt hệ thống. Phương pháp này phù hợp cho người dùng có kinh nghiệm và tự động hóa thông qua script.

⚠️ Cảnh báo: Chỉnh sửa Registry không đúng cách có thể làm hỏng hệ thống. Hãy tạo bản sao lưu Registry trước khi thực hiện thay đổi. Chỉ sử dụng phương pháp này nếu bạn hiểu rõ mình đang làm gì.

Các khóa Registry cho Proxy

Vị trí cài đặt

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

Các tham số chính

Tham số Kiểu Giá trị Mô tả
ProxyEnable DWORD 1 Bật proxy (0 = tắt)
ProxyServer String 192.168.1.100:8080 Địa chỉ và cổng proxy
ProxyOverride String localhost;127.*;*.local Ngoại lệ (địa chỉ không dùng proxy)
AutoConfigURL String http://proxy/proxy.pac URL của tệp PAC

Ví dụ Tệp REG để nhập

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyServer"="192.168.1.100:8080"
"ProxyOverride"="localhost;127.0.0.1;*.local"

Lưu văn bản này vào tệp có phần mở rộng .reg và nhấp đúp để nhập vào registry.

⚡ Cấu hình qua PowerShell

PowerShell là một công cụ hiện đại và mạnh mẽ để tự động hóa cài đặt Windows. Lý tưởng cho việc cấu hình proxy hàng loạt trên nhiều máy tính hoặc tự động hóa cấu hình.

Các lệnh PowerShell để quản lý proxy

Bật proxy

# Thiết lập địa chỉ máy chủ proxy
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyServer -Value "192.168.1.100:8080"

# Bật proxy
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyEnable -Value 1

# Áp dụng thay đổi (thông báo cho hệ thống)
$signature = @'
[DllImport("wininet.dll")]
public static extern bool InternetSetOption(int hInternet, int dwOption, int lpBuffer, int dwBufferLength);
'@
$type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru
$type::InternetSetOption(0, 39, 0, 0) | Out-Null

Tắt proxy

# Tắt proxy
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" `
  -Name ProxyEnable -Value 0

Kiểm tra cài đặt hiện tại

# Lấy tất cả cài đặt proxy
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | `
  Select-Object ProxyEnable, ProxyServer, ProxyOverride, AutoConfigURL

Hàm sẵn sàng để thiết lập proxy

function Set-Proxy {
  param(
    [Parameter(Mandatory=$true)]
    [string]$Server,
    [Parameter(Mandatory=$true)]
    [int]$Port,
    [string]$Override = "localhost;127.0.0.1;*.local"
  )

  $proxyString = "${Server}:${Port}"
  $regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

  Set-ItemProperty -Path $regPath -Name ProxyServer -Value $proxyString
  Set-ItemProperty -Path $regPath -Name ProxyEnable -Value 1
  Set-ItemProperty -Path $regPath -Name ProxyOverride -Value $Override

  Write-Host "Proxy đã được thiết lập: $proxyString" -ForegroundColor Green
}

# Cách sử dụng:
Set-Proxy -Server "192.168.1.100" -Port 8080

💻 Cấu hình qua Dòng lệnh (netsh)

Tiện ích netsh (Network Shell) là công cụ dòng lệnh cổ điển của Windows để quản lý cài đặt mạng, bao gồm proxy cho WinHTTP.

Các lệnh netsh winhttp

Thiết lập Proxy

netsh winhttp set proxy proxy-server="192.168.1.100:8080" bypass-list="localhost;*.local"

Nhập cài đặt từ IE

netsh winhttp import proxy source=ie

Nhập cài đặt proxy từ Internet Explorer vào WinHTTP.

Xem cài đặt hiện tại

netsh winhttp show proxy

Đặt lại cài đặt proxy

netsh winhttp reset proxy

💡 Mẹo: Các lệnh netsh winhttp ảnh hưởng đến WinHTTP hệ thống, được sử dụng bởi Windows Update, PowerShell và nhiều ứng dụng hệ thống, nhưng KHÔNG ảnh hưởng đến cài đặt của Internet Explorer/Edge.

🌐 Biến môi trường trong Windows

Nhiều tiện ích và ứng dụng console sử dụng biến môi trường để xác định máy chủ proxy. Điều này đặc biệt quan trọng đối với Python, Node.js, Git, curl và các công cụ phát triển khác.

Các biến môi trường proxy tiêu chuẩn

Thiết lập qua dòng lệnh (tạm thời)

set HTTP_PROXY=http://192.168.1.100:8080
set HTTPS_PROXY=http://192.168.1.100:8080
set NO_PROXY=localhost,127.0.0.1,.local

Các biến này chỉ có hiệu lực trong phiên dòng lệnh hiện tại.

Thiết lập qua GUI (vĩnh viễn)

  1. Mở "System" (Hệ thống) (Windows + Pause)
  2. Nhấn "Advanced system settings" (Cài đặt hệ thống nâng cao)
  3. Tab "Advanced" (Nâng cao) → "Environment Variables" (Biến môi trường)
  4. Trong phần "User variables", nhấn "New" (Mới)
  5. Thêm các biến HTTP_PROXY, HTTPS_PROXY

Thiết lập qua PowerShell (vĩnh viễn)

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://192.168.1.100:8080", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://192.168.1.100:8080", "User")
[Environment]::SetEnvironmentVariable("NO_PROXY", "localhost,127.0.0.1", "User")

Định dạng có xác thực

set HTTP_PROXY=http://username:password@192.168.1.100:8080
set HTTPS_PROXY=http://username:password@192.168.1.100:8080

⚠️ Các ký tự đặc biệt trong mật khẩu phải được mã hóa URL (@ → %40, : → %3A)

🎯 Cấu hình cho các ứng dụng cụ thể

Một số ứng dụng không sử dụng cài đặt proxy hệ thống và yêu cầu cấu hình riêng. Chúng ta sẽ xem xét các công cụ phổ biến nhất.

🦊 Firefox

Firefox sử dụng cài đặt proxy riêng của nó:

  1. Menu → Settings (Cài đặt) → Network (Mạng)
  2. Nút "Settings" (Cài đặt)
  3. Cấu hình thủ công proxy
  4. Nhập địa chỉ và cổng

📦 Git

Cấu hình proxy cho Git:

git config --global http.proxy http://192.168.1.100:8080
git config --global https.proxy http://192.168.1.100:8080

🐍 Python pip

Cấu hình cho pip:

pip install package_name --proxy http://192.168.1.100:8080

📦 npm

Cấu hình cho npm:

npm config set proxy http://192.168.1.100:8080
npm config set https-proxy http://192.168.1.100:8080

🎁 ProxyCove — proxy đáng tin cậy cho Windows: Hỗ trợ tất cả các phương pháp xác thực (danh sách IP trắng và login:password), hoạt động với mọi ứng dụng, hỗ trợ kỹ thuật 24/7. Đăng ký ngay → và nhận +$1.3 với mã khuyến mãi ARTHELLO

Tiếp tục phần tiếp theo...

Trong phần tiếp theo: cấu hình proxy trong Linux (Ubuntu, Debian, CentOS), biến môi trường, cấu hình apt/yum qua proxy

Cấu hình Proxy trong Linux: Ubuntu, Debian, CentOS — Phần 2

Trong phần này: Hướng dẫn chi tiết về cách thiết lập máy chủ proxy trong các bản phân phối Linux khác nhau — Ubuntu, Debian, CentOS và RHEL. Chúng ta sẽ xem xét các biến môi trường hệ thống, cấu hình qua GUI, cấu hình cho trình quản lý gói apt và yum, cũng như cấu hình cho các ứng dụng cụ thể. Nội dung được cập nhật đến năm 2025.

🐧 Đặc điểm cấu hình proxy trong Linux

Không giống như Windows, Linux không có một nơi tập trung duy nhất để cấu hình máy chủ proxy. Thay vào đó, nó sử dụng nhiều phương pháp khác nhau: biến môi trường, tệp cấu hình, cài đặt ứng dụng riêng lẻ và giao diện đồ họa (trong các bản phân phối desktop).

Các phương pháp cấu hình proxy chính trong Linux

🌐 Biến môi trường

Phương pháp phổ biến nhất. Các biến http_proxy, https_proxy và no_proxy được hầu hết các tiện ích dòng lệnh (curl, wget, apt-get nếu được cấu hình đúng) đọc.

📝 Tệp cấu hình

Các tệp /etc/environment, /etc/profile, ~/.bashrc cho cấu hình hệ thống và người dùng.

📦 Trình quản lý gói

APT, YUM/DNF yêu cầu cấu hình riêng trong các tệp cấu hình của chúng.

🎨 Giao diện đồ họa

GNOME, KDE và các DE khác cung cấp GUI để cấu hình proxy (chỉ dành cho phiên bản desktop).

⚠️ Các điểm quan trọng

  • Trong Linux không có tiêu chuẩn bắt buộc cho proxy — mỗi ứng dụng có thể bỏ qua cài đặt hệ thống
  • Các biến môi trường phải được đặt ở cả chữ hoa và chữ thường (HTTP_PROXY và http_proxy)
  • APT và YUM KHÔNG sử dụng biến môi trường hệ thống một cách tự động
  • Đối với các phiên bản máy chủ (không có GUI), chỉ sử dụng dòng lệnh và tệp cấu hình

🔧 Biến môi trường (http_proxy, https_proxy)

Biến môi trường là cách tiêu chuẩn để cấu hình proxy trong Linux cho các ứng dụng console. Hầu hết các tiện ích (curl, wget, apt-get nếu được cấu hình đúng) sẽ đọc các biến này.

Các biến proxy tiêu chuẩn

Danh sách các biến chính

Biến Định dạng Mô tả
http_proxy http://proxy:8080 Proxy cho lưu lượng HTTP
https_proxy http://proxy:8080 Proxy cho lưu lượng HTTPS
ftp_proxy http://proxy:8080 Proxy cho lưu lượng FTP
no_proxy localhost,127.0.0.1,.local Các địa chỉ không dùng proxy (ngoại lệ)
HTTP_PROXY http://proxy:8080 Trùng với http_proxy (chữ hoa)
HTTPS_PROXY http://proxy:8080 Trùng với https_proxy (chữ hoa)

Thiết lập tạm thời (phiên hiện tại)

export http_proxy="http://192.168.1.100:8080"
export https_proxy="http://192.168.1.100:8080"
export ftp_proxy="http://192.168.1.100:8080"
export no_proxy="localhost,127.0.0.1,*.local"

# Sao chép sang chữ hoa để tương thích
export HTTP_PROXY="http://192.168.1.100:8080"
export HTTPS_PROXY="http://192.168.1.100:8080"
export FTP_PROXY="http://192.168.1.100:8080"
export NO_PROXY="localhost,127.0.0.1,*.local"

Các biến này chỉ có hiệu lực trong phiên terminal hiện tại.

Với xác thực

export http_proxy="http://username:password@192.168.1.100:8080"
export https_proxy="http://username:password@192.168.1.100:8080"

⚠️ Nếu mật khẩu chứa ký tự đặc biệt, hãy sử dụng mã hóa URL: @ → %40, : → %3A

Kiểm tra các biến đã thiết lập

# Hiển thị tất cả các biến proxy
env | grep -i proxy

# Kiểm tra biến cụ thể
echo $http_proxy
echo $https_proxy

Tắt proxy

unset http_proxy
unset https_proxy
unset ftp_proxy
unset HTTP_PROXY
unset HTTPS_PROXY
unset FTP_PROXY

🌍 Cấu hình toàn hệ thống (/etc/environment)

Tệp /etc/environment chứa các biến môi trường hệ thống được áp dụng cho tất cả người dùng và được tải khi hệ thống khởi động.

Cấu hình hệ thống vĩnh viễn

Bước 1: Chỉnh sửa tệp

sudo nano /etc/environment

Bước 2: Thêm các biến

Thêm các dòng sau vào cuối tệp:

http_proxy="http://192.168.1.100:8080"
https_proxy="http://192.168.1.100:8080"
ftp_proxy="http://192.168.1.100:8080"
no_proxy="localhost,127.0.0.1,*.local"

HTTP_PROXY="http://192.168.1.100:8080"
HTTPS_PROXY="http://192.168.1.100:8080"
FTP_PROXY="http://192.168.1.100:8080"
NO_PROXY="localhost,127.0.0.1,*.local"

Bước 3: Áp dụng thay đổi

# Khởi động lại hệ thống (khuyến nghị)
sudo reboot

# Hoặc áp dụng cho phiên hiện tại
source /etc/environment

💡 Mẹo: Tệp /etc/environment không hỗ trợ thay thế biến và mở rộng lệnh. Chỉ sử dụng các giá trị đơn giản. Đối với logic phức tạp hơn, hãy sử dụng /etc/profile hoặc /etc/bash.bashrc.

🐧 Cấu hình trong Ubuntu/Debian

Ubuntu và Debian là các bản phân phối Linux phổ biến nhất. Chúng ta sẽ xem xét cả cấu hình qua GUI (cho phiên bản desktop) và qua dòng lệnh (cho phiên bản server).

🎨 Qua GUI (Ubuntu Desktop)

GNOME Settings

  1. Mở Settings (Cài đặt)
  2. Chọn Network (Mạng)
  3. Nhấn vào biểu tượng bánh răng bên cạnh kết nối
  4. Tab Proxy
  5. Chọn Manual (Thủ công)
  6. Nhập địa chỉ và cổng cho HTTP, HTTPS, FTP, Socks
  7. Nhấn Apply (Áp dụng)

⌨️ Qua dòng lệnh

gsettings (cho GNOME)

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host '192.168.1.100'
gsettings set org.gnome.system.proxy.http port 8080

🔴 Cấu hình trong CentOS/RHEL

CentOS và Red Hat Enterprise Linux sử dụng cấu trúc cấu hình tương tự. Năm 2025, nhiều người chuyển sang Rocky Linux và AlmaLinux, nơi áp dụng các nguyên tắc tương tự.

Cấu hình hệ thống cho các bản phân phối dựa trên RHEL

Phương pháp 1: /etc/profile.d/

Tạo một tệp cho cài đặt proxy:

sudo nano /etc/profile.d/proxy.sh

Thêm nội dung:

#!/bin/bash

export http_proxy="http://192.168.1.100:8080"
export https_proxy="http://192.168.1.100:8080"
export ftp_proxy="http://192.168.1.100:8080"
export no_proxy="localhost,127.0.0.1,*.local"

export HTTP_PROXY="http://192.168.1.100:8080"
export HTTPS_PROXY="http://192.168.1.100:8080"
export FTP_PROXY="http://192.168.1.100:8080"
export NO_PROXY="localhost,127.0.0.1,*.local"

Làm cho tệp có thể thực thi: sudo chmod +x /etc/profile.d/proxy.sh

Phương pháp 2: /etc/environment

Cùng phương pháp như Ubuntu/Debian — chỉnh sửa /etc/environment

📦 Cấu hình APT qua proxy

Quan trọng: APT (Advanced Package Tool) trong Ubuntu/Debian KHÔNG sử dụng biến môi trường hệ thống một cách tự động. Cần có cấu hình riêng để hoạt động qua proxy.

Cấu hình proxy cho APT

Phương pháp 1: apt.conf.d/ (khuyến nghị)

Tạo tệp cấu hình:

sudo nano /etc/apt/apt.conf.d/02proxy

Thêm nội dung:

Acquire::http::Proxy "http://192.168.1.100:8080";
Acquire::https::Proxy "http://192.168.1.100:8080";
Acquire::ftp::Proxy "http://192.168.1.100:8080";

Với xác thực

Acquire::http::Proxy "http://username:password@192.168.1.100:8080";
Acquire::https::Proxy "http://username:password@192.168.1.100:8080";

Phương pháp 2: Cấu hình tạm thời (một lệnh)

sudo apt-get -o Acquire::http::proxy="http://192.168.1.100:8080" update

Chỉ áp dụng cho lệnh apt hiện tại.

Kiểm tra cài đặt APT

# Hiển thị cài đặt APT hiện tại
apt-config dump | grep -i proxy

# Kiểm tra cập nhật qua proxy
sudo apt-get update

Ngoại lệ (không dùng proxy cho một số host)

Acquire::http::Proxy "http://192.168.1.100:8080";
Acquire::http::Proxy::ppa.launchpad.net "DIRECT";

"DIRECT" có nghĩa là kết nối trực tiếp mà không cần proxy cho host được chỉ định.

📦 Cấu hình YUM/DNF qua proxy

YUM (cho CentOS 7 trở về trước) và DNF (cho CentOS 8+, Fedora, Rocky Linux, AlmaLinux) là các trình quản lý gói cho các bản phân phối dựa trên Red Hat. Chúng cũng yêu cầu cấu hình proxy riêng.

Cấu hình toàn cục YUM/DNF

YUM (CentOS 7 trở về trước)

Chỉnh sửa tệp cấu hình:

sudo nano /etc/yum.conf

Thêm vào phần [main]:

[main]
proxy=http://192.168.1.100:8080
proxy_username=your_username
proxy_password=your_password

Nếu proxy không yêu cầu xác thực, hãy bỏ qua proxy_username và proxy_password.

DNF (CentOS 8+, Fedora, Rocky Linux, AlmaLinux)

Chỉnh sửa tệp cấu hình:

sudo nano /etc/dnf/dnf.conf

Thêm vào phần [main]:

[main]
proxy=http://192.168.1.100:8080
proxy_username=your_username
proxy_password=your_password

Cấu hình cho một kho lưu trữ cụ thể

Bạn có thể cấu hình proxy chỉ cho một kho lưu trữ cụ thể trong các tệp /etc/yum.repos.d/*.repo:

[epel]
name=Extra Packages for Enterprise Linux 8
baseurl=https://download.fedoraproject.org/pub/epel/8/$basearch
proxy=http://192.168.1.100:8080
proxy_username=username
proxy_password=password

Tắt proxy cho một kho lưu trữ cụ thể

[local-repo]
name=Local Repository
baseurl=http://192.168.1.50/repo
proxy=_none_

proxy=_none_ sẽ tắt proxy cho kho lưu trữ này.

Kiểm tra cài đặt

# Đối với YUM
sudo yum repolist

# Đối với DNF
sudo dnf repolist

# Hiển thị cấu hình
sudo dnf config-manager --dump | grep -i proxy

👤 Cấu hình trong .bashrc và .profile

Đối với cài đặt proxy người dùng, chỉ áp dụng cho người dùng cụ thể, hãy sử dụng các tệp .bashrc hoặc .profile trong thư mục chính của họ.

Cấu hình người dùng

Chỉnh sửa .bashrc

nano ~/.bashrc

Thêm vào cuối tệp:

# Proxy settings
export http_proxy="http://192.168.1.100:8080"
export https_proxy="http://192.168.1.100:8080"
export ftp_proxy="http://192.168.1.100:8080"
export no_proxy="localhost,127.0.0.1,*.local"

export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$https_proxy
export FTP_PROXY=$ftp_proxy
export NO_PROXY=$no_proxy

Áp dụng thay đổi:

source ~/.bashrc

Tạo các hàm để quản lý proxy

# Hàm bật proxy
proxy_on() {
  export http_proxy="http://192.168.1.100:8080"
  export https_proxy="http://192.168.1.100:8080"
  export HTTP_PROXY=$http_proxy
  export HTTPS_PROXY=$https_proxy
  echo "Proxy enabled"
}

# Hàm tắt proxy
proxy_off() {
  unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
  echo "Proxy disabled"
}

# Hàm kiểm tra proxy
proxy_status() {
  echo "http_proxy: $http_proxy"
  echo "https_proxy: $https_proxy"
}

Sử dụng: proxy_on, proxy_off, proxy_status

🛠️ Cấu hình cho các ứng dụng (curl, wget, git)

Một số tiện ích phổ biến có cách riêng để cấu hình proxy hoặc tệp cấu hình của chúng.

📡 curl

curl sử dụng biến môi trường, nhưng bạn cũng có thể chỉ định proxy trong tham số:

curl -x http://192.168.1.100:8080 https://example.com

# Với xác thực
curl -x http://user:pass@192.168.1.100:8080 https://example.com

# Qua .curlrc
echo 'proxy = "http://192.168.1.100:8080"' >> ~/.curlrc

📥 wget

wget cũng sử dụng biến môi trường, nhưng có tệp cấu hình riêng:

# ~/.wgetrc
http_proxy = http://192.168.1.100:8080
https_proxy = http://192.168.1.100:8080
use_proxy = on

🔧 git

Git có hệ thống cấu hình proxy riêng:

# Toàn cục cho tất cả các kho lưu trữ
git config --global http.proxy http://192.168.1.100:8080
git config --global https.proxy http://192.168.1.100:8080

# Cho một kho lưu trữ cụ thể
git config http.proxy http://192.168.1.100:8080

# Tắt proxy
git config --global --unset http.proxy
git config --global --unset https.proxy

🐳 Docker

Docker yêu cầu cấu hình proxy cho cả daemon và client:

# /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.1.100:8080"
Environment="HTTPS_PROXY=http://192.168.1.100:8080"
Environment="NO_PROXY=localhost,127.0.0.1"

🎁 ProxyCove — proxy chuyên nghiệp cho Linux: Tương thích hoàn toàn với tất cả các bản phân phối, hỗ trợ danh sách IP trắng và xác thực, hoạt động với mọi ứng dụng. Đăng ký ngay → và nhận +$1.3 với mã khuyến mãi ARTHELLO

Phần cuối sắp ra mắt!

Trong phần cuối cùng: Tệp PAC, cấu hình tự động, khắc phục sự cố thường gặp và các khuyến nghị tốt nhất.

Tệp PAC, cấu hình tự động và khắc phục sự cố — Phần cuối

Trong phần cuối cùng này: Hướng dẫn đầy đủ về Tệp PAC (Proxy Auto-Configuration), giao thức WPAD để tự động phát hiện proxy, chẩn đoán và giải quyết các vấn đề proxy điển hình trong Windows và Linux. Các khuyến nghị và phương pháp tốt nhất cuối cùng cho năm 2025.

📜 PAC là gì

PAC (Proxy Auto-Configuration) là một tệp JavaScript tự động xác định máy chủ proxy nào sẽ được sử dụng cho một URL cụ thể. Điều này cho phép tạo ra các quy tắc định tuyến lưu lượng linh hoạt mà không cần cấu hình thủ công cho từng máy khách.

Ưu điểm của tệp PAC

✅ Linh hoạt

Các proxy khác nhau cho các trang web khác nhau, truy cập trực tiếp cho tài nguyên cục bộ, khả năng chịu lỗi với nhiều proxy.

✅ Tập trung hóa

Một thay đổi trong tệp PAC áp dụng cho tất cả máy khách mà không cần cấu hình lại từng máy.

✅ Logic dựa trên điều kiện

Chọn proxy dựa trên tên miền, dải IP, thời gian trong ngày, ngày trong tuần và các yếu tố khác.

✅ Hiệu suất

Cân bằng tải giữa nhiều máy chủ proxy, chuyển đổi tự động khi proxy chính không khả dụng.

Khi nào nên sử dụng tệp PAC

  • Mạng công ty — proxy khác nhau cho tài nguyên nội bộ và bên ngoài
  • Định tuyến phức tạp — proxy khác nhau cho các quốc gia hoặc dịch vụ khác nhau
  • Dự phòng — chuyển đổi tự động sang proxy dự phòng khi proxy chính gặp sự cố
  • Tối ưu hóa — hướng lưu lượng truy cập qua tuyến đường hiệu quả nhất

💻 Cú pháp và cấu trúc của tệp PAC

Tệp PAC là tệp văn bản có phần mở rộng .pac, chứa hàm JavaScript FindProxyForURL(url, host).

Cấu trúc cơ bản

function FindProxyForURL(url, host) {
  // Logic của bạn ở đây
  // Trả về một chuỗi chứa cài đặt proxy
  return "PROXY proxy.example.com:8080";
}

Tham số của hàm

Tham số Mô tả Ví dụ
url URL đầy đủ mà trình duyệt đang truy cập https://example.com/page
host Chỉ tên miền từ URL example.com

Giá trị trả về

Giá trị Mô tả
DIRECT Kết nối trực tiếp không qua proxy
PROXY host:port Proxy HTTP/HTTPS
SOCKS host:port Proxy SOCKS (v4/v5)
SOCKS5 host:port SOCKS5 rõ ràng
PROXY p1:8080; PROXY p2:8080; DIRECT Nhiều tùy chọn (fallback)

Các hàm PAC tích hợp

Hàm Mô tả
isPlainHostName(host) Kiểm tra xem host có phải là tên đơn giản (không có dấu chấm) không
dnsDomainIs(host, domain) Kiểm tra xem host có thuộc miền không
localHostOrDomainIs(host, domain) So sánh host với miền
isResolvable(host) Kiểm tra xem host có phân giải được bằng DNS không
isInNet(host, pattern, mask) Kiểm tra xem IP có nằm trong mạng con không
shExpMatch(str, pattern) So khớp mẫu (* và ?)
weekdayRange(day1, day2) Kiểm tra ngày trong tuần
dateRange(...) Kiểm tra phạm vi ngày
timeRange(...) Kiểm tra thời gian trong ngày

📚 Các ví dụ thực tế về tệp PAC

Ví dụ 1: Proxy đơn giản cho tất cả các yêu cầu

function FindProxyForURL(url, host) {
  return "PROXY proxy.company.com:8080";
}

Ví dụ 2: Không dùng proxy cho các địa chỉ cục bộ

function FindProxyForURL(url, host) {
  // Các host cục bộ — kết nối trực tiếp
  if (isPlainHostName(host) ||
      dnsDomainIs(host, ".local") ||
      isInNet(host, "192.168.0.0", "255.255.0.0") ||
      isInNet(host, "10.0.0.0", "255.0.0.0") ||
      host == "localhost" ||
      host == "127.0.0.1")
  {
      return "DIRECT";
  }

  // Tất cả những thứ khác qua proxy
  return "PROXY proxy.company.com:8080";
}

Ví dụ 3: Các proxy khác nhau cho các miền khác nhau

function FindProxyForURL(url, host) {
  // Mạng xã hội qua proxy chuyên dụng
  if (shExpMatch(host, "*.facebook.com") ||
      shExpMatch(host, "*.twitter.com") ||
      shExpMatch(host, "*.instagram.com"))
  {
      return "PROXY social-proxy.company.com:8080";
  }

  // Truyền phát video qua proxy khác
  if (shExpMatch(host, "*.youtube.com") ||
      shExpMatch(host, "*.netflix.com"))
  {
      return "PROXY video-proxy.company.com:8080";
  }

  // Tài nguyên cục bộ trực tiếp
  if (isInNet(host, "10.0.0.0", "255.0.0.0"))
  {
      return "DIRECT";
  }

  // Tất cả những thứ khác qua proxy chính
  return "PROXY main-proxy.company.com:8080";
}

Ví dụ 4: Khả năng chịu lỗi với fallback

function FindProxyForURL(url, host) {
  // Địa chỉ cục bộ trực tiếp
  if (isPlainHostName(host) ||
      isInNet(host, "192.168.0.0", "255.255.0.0"))
  {
      return "DIRECT";
  }

  // Thử qua proxy chính, sau đó là proxy dự phòng, sau đó trực tiếp
  return "PROXY proxy1.company.com:8080; " +
         "PROXY proxy2.company.com:8080; " +
         "DIRECT";
}

Trình duyệt sẽ thử kết nối qua proxy1, nếu không thành công thì qua proxy2, nếu vẫn thất bại thì kết nối trực tiếp.

Ví dụ 5: Định tuyến dựa trên thời gian

function FindProxyForURL(url, host) {
  // Trong giờ làm việc (8:00-18:00) và các ngày trong tuần
  if (weekdayRange("MON", "FRI") &&
      timeRange(8, 18))
  {
      return "PROXY work-proxy.company.com:8080";
  }

  // Buổi tối và cuối tuần — proxy khác
  return "PROXY night-proxy.company.com:8080";
}

Ví dụ 6: Cấu hình phức tạp cho công ty

function FindProxyForURL(url, host) {
  // Các host cục bộ không qua proxy
  if (isPlainHostName(host) ||
      dnsDomainIs(host, ".local") ||
      dnsDomainIs(host, ".company.com") ||
      isInNet(host, "10.0.0.0", "255.0.0.0") ||
      isInNet(host, "172.16.0.0", "255.240.0.0") ||
      isInNet(host, "192.168.0.0", "255.255.0.0") ||
      host == "localhost" ||
      host == "127.0.0.1")
  {
      return "DIRECT";
  }

  // Lưu lượng HTTPS qua proxy SSL chuyên dụng
  if (url.substring(0, 6) == "https:")
  {
      return "PROXY ssl-proxy.company.com:8443; DIRECT";
  }

  // Nội dung media qua proxy cache
  if (shExpMatch(url, "*.mp4") ||
      shExpMatch(url, "*.mp3") ||
      shExpMatch(url, "*.jpg") ||
      shExpMatch(url, "*.png"))
  {
      return "PROXY cache-proxy.company.com:3128";
  }

  // HTTP qua proxy chính với failover
  return "PROXY proxy1.company.com:8080; " +
         "PROXY proxy2.company.com:8080; " +
         "DIRECT";
}

🚀 Triển khai tệp PAC

Sau khi tạo tệp PAC, bạn cần đặt nó đúng cách và cấu hình máy khách để sử dụng nó.

Đặt tệp PAC

1. Máy chủ Web (HTTP/HTTPS)

Đặt tệp proxy.pac trên máy chủ web:

http://proxy.company.com/proxy.pac
https://proxy.company.com/proxy.pac

⚠️ MIME-type phải là: application/x-ns-proxy-autoconfig

2. Hệ thống tệp (file://)

# Windows
file:///C:/proxy.pac
file://\\server\share\proxy.pac

# Linux
file:///etc/proxy.pac

Không khuyến nghị cho môi trường sản xuất, nhưng thuận tiện cho việc kiểm thử.

Cấu hình MIME-type trong Apache

# Trong httpd.conf hoặc .htaccess
AddType application/x-ns-proxy-autoconfig .pac

Cấu hình MIME-type trong Nginx

# Trong nginx.conf
types {
  application/x-ns-proxy-autoconfig pac;
}

Cấu hình máy khách

Windows

Settings → Network & Internet → Proxy → "Use setup script" → Nhập URL tệp PAC

Linux (GNOME)

gsettings set org.gnome.system.proxy mode 'auto'
gsettings set org.gnome.system.proxy autoconfig-url 'http://proxy.company.com/proxy.pac'

Firefox

Settings → Network → Settings → Automatic proxy configuration → URL auto-configuration

🔍 WPAD — Tự động phát hiện proxy

WPAD (Web Proxy Auto-Discovery Protocol) là một giao thức cho phép trình duyệt tự động tìm tệp PAC mà không cần cấu hình URL rõ ràng. Năm 2025, nó được hỗ trợ bởi tất cả các trình duyệt và hệ điều hành chính.

WPAD hoạt động như thế nào

  1. Phương pháp DHCP: Máy khách yêu cầu tùy chọn 252 từ máy chủ DHCP, máy chủ trả về URL tệp PAC
  2. Phương pháp DNS: Máy khách cố gắng tìm host wpad.domain.com qua DNS
  3. Tải PAC: Nếu tìm thấy, máy khách sẽ cố gắng tải http://wpad.domain.com/wpad.dat

Cấu hình WPAD qua DNS

Tạo bản ghi DNS A hoặc CNAME:

wpad.company.com. IN A 192.168.1.100
# hoặc
wpad.company.com. IN CNAME proxy-server.company.com.

Đặt tệp PAC tại địa chỉ: http://wpad.company.com/wpad.dat

Cấu hình WPAD qua DHCP

Trong cấu hình máy chủ DHCP, thêm tùy chọn 252:

# ISC DHCP (dhcpd.conf)
option wpad code 252 = text;
option wpad "http://proxy.company.com/proxy.pac";

⚠️ Vấn đề bảo mật WPAD

  • WPAD hijacking: Kẻ tấn công có thể trả lời sai WPAD và chuyển hướng lưu lượng qua proxy của họ
  • DNS spoofing: Giả mạo bản ghi DNS wpad.domain.com
  • Khuyến nghị: Chỉ sử dụng WPAD trong mạng công ty đáng tin cậy
  • Thay thế: Chỉ định rõ ràng URL tệp PAC an toàn hơn so với phát hiện tự động

🔧 Khắc phục sự cố: Chẩn đoán vấn đề

Các vấn đề và giải pháp điển hình

Vấn đề 1: Proxy không hoạt động

Triệu chứng: Các trang web không mở được, lỗi kết nối

Giải pháp:
  • Kiểm tra khả năng truy cập của máy chủ proxy: ping proxy-host
  • Kiểm tra cổng: telnet proxy-host 8080 hoặc nc -zv proxy-host 8080
  • Đảm bảo proxy không bị tường lửa chặn
  • Kiểm tra địa chỉ và cổng chính xác trong cài đặt

Vấn đề 2: Lỗi 407 (Proxy Authentication Required)

Triệu chứng: Yêu cầu xác thực, mã lỗi 407

Giải pháp:
  • Kiểm tra tên người dùng và mật khẩu chính xác
  • Đảm bảo bạn sử dụng định dạng chính xác: http://user:pass@proxy:port
  • Kiểm tra xem thông tin đăng nhập có hết hạn không
  • Đối với xác thực IP: đảm bảo IP của bạn đã được thêm vào danh sách trắng
  • Kiểm tra xem địa chỉ IP bên ngoài của bạn có thay đổi không

Vấn đề 3: Hoạt động chậm qua proxy

Triệu chứng: Tải trang chậm, hết thời gian chờ

Giải pháp:
  • Kiểm tra tốc độ proxy: curl -x proxy:port -w "@curl-format.txt" https://example.com
  • Thử một máy chủ proxy khác (nếu có)
  • Kiểm tra tải trên máy chủ proxy
  • Đảm bảo bạn không sử dụng proxy cho các tài nguyên cục bộ (thêm ngoại lệ)
  • Kiểm tra cài đặt DNS (DNS chậm có thể làm chậm proxy)

Vấn đề 4: Tệp PAC không hoạt động

Triệu chứng: Cấu hình tự động không được áp dụng

Giải pháp:
  • Kiểm tra khả năng truy cập của tệp PAC: mở URL trong trình duyệt
  • Đảm bảo MIME-type chính xác: application/x-ns-proxy-autoconfig
  • Kiểm tra cú pháp JavaScript trong tệp PAC
  • Sử dụng các công cụ kiểm thử PAC: pactester (Linux) hoặc DevTools của trình duyệt
  • Kiểm tra bộ nhớ đệm: xóa bộ nhớ đệm của trình duyệt

🧪 Kiểm thử proxy

Các công cụ kiểm thử

Kiểm tra kết nối (curl)

# Kiểm tra proxy HTTP
curl -x http://proxy:8080 -I https://www.google.com

# Với xác thực
curl -x http://user:pass@proxy:8080 https://www.google.com

# Hiển thị IP bên ngoài (kiểm tra xem proxy có hoạt động không)
curl -x http://proxy:8080 https://ifconfig.me
curl -x http://proxy:8080 https://api.ipify.org

Kiểm tra cổng (netcat)

# Linux
nc -zv proxy-host 8080

# Windows (PowerShell)
Test-NetConnection -ComputerName proxy-host -Port 8080

Kiểm thử tệp PAC (Linux)

# Cài đặt pactester
sudo apt-get install libpacparser1 # Ubuntu/Debian

# Kiểm thử tệp PAC
pactester -p /path/to/proxy.pac -u https://www.google.com

Kiểm tra cài đặt hiện tại (Windows PowerShell)

# Hiển thị cài đặt proxy hiện tại
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object ProxyEnable, ProxyServer, AutoConfigURL

# Hiển thị proxy WinHTTP
netsh winhttp show proxy

Công cụ trực tuyến

  • whatismyip.com — kiểm tra IP bên ngoài của bạn
  • ifconfig.me — hiển thị IP ở dạng console
  • browserleaks.com/proxy — thông tin chi tiết về proxy
  • ipleak.net — kiểm tra rò rỉ DNS, WebRTC

🔒 Bảo mật khi sử dụng proxy

Khuyến nghị bảo mật

✅ Sử dụng proxy HTTPS

Proxy HTTPS mã hóa dữ liệu giữa máy khách và máy chủ proxy, bảo vệ khỏi bị chặn lưu lượng.

✅ Không lưu mật khẩu ở dạng văn bản thuần

Sử dụng trình quản lý mật khẩu, biến môi trường hoặc tệp cấu hình được mã hóa.

✅ Kiểm tra chứng chỉ

Khi sử dụng proxy MITM, hãy đảm bảo bạn tin tưởng vào chứng chỉ gốc của máy chủ proxy.

✅ Giảm thiểu rò rỉ DNS

Sử dụng DNS-over-HTTPS hoặc cấu hình các truy vấn DNS qua proxy để ngăn chặn rò rỉ.

❌ Những điều cần tránh

  • Không sử dụng proxy công cộng miễn phí cho dữ liệu nhạy cảm
  • Không bỏ qua cảnh báo chứng chỉ SSL
  • Không lưu mật khẩu proxy trong lịch sử lệnh (sử dụng dấu cách ở đầu lệnh trong bash)
  • Không sử dụng proxy HTTP không mã hóa để truyền mật khẩu

🎯 Các phương pháp tốt nhất năm 2025

1️⃣ Chọn đúng loại proxy

Để scraping và phân tích web: Proxy dân cư (Residential) hoặc di động (Mobile)
Cho mạng công ty: Proxy trung tâm dữ liệu (Datacenter) với danh sách IP trắng
Để vượt qua chặn địa lý: Proxy dân cư ở quốc gia mong muốn

2️⃣ Sử dụng tệp PAC cho định tuyến phức tạp

Tệp PAC lý tưởng cho các môi trường công ty, nơi các tài nguyên khác nhau yêu cầu các proxy khác nhau. Đảm bảo quản lý tập trung và linh hoạt.

3️⃣ Thiết lập ngoại lệ

Các địa chỉ cục bộ (localhost, 127.0.0.1, mạng riêng) không nên đi qua proxy. Điều này sẽ tăng tốc độ truy cập tài nguyên cục bộ.

4️⃣ Thực hiện khả năng chịu lỗi

Trong tệp PAC, sử dụng các tùy chọn fallback: nhiều proxy với khả năng kết nối trực tiếp trong trường hợp tất cả proxy không khả dụng.

5️⃣ Giám sát và ghi nhật ký

Thường xuyên kiểm tra hoạt động của proxy, theo dõi tốc độ kết nối và khả năng truy cập. Ghi nhật ký lỗi để phản ứng nhanh.

6️⃣ Tài liệu hóa cấu hình

Tạo tài liệu mô tả tất cả các cài đặt proxy, tệp PAC, ngoại lệ và quy trình khôi phục. Điều này sẽ tiết kiệm thời gian khi khắc phục sự cố.

📝 Kết luận và khuyến nghị

Tóm tắt loạt bài viết

Windows

Trong Windows, hãy sử dụng GUI cho các cài đặt đơn giản, PowerShell để tự động hóa, registry để tinh chỉnh. Biến môi trường là cần thiết cho các tiện ích console.

Linux

Phương pháp chính trong Linux là biến môi trường trong /etc/environment hoặc ~/.bashrc. Đừng quên cấu hình riêng cho APT và YUM/DNF.

Tệp PAC

Tệp PAC cung cấp sự linh hoạt tối đa cho các kịch bản phức tạp. Hãy sử dụng chúng trong môi trường công ty và để định tuyến lưu lượng thông minh.

Khắc phục sự cố

Hầu hết các vấn đề được giải quyết bằng cách kiểm tra khả năng truy cập của proxy, tính chính xác của thông tin đăng nhập và cài đặt. Sử dụng curl, netcat và DevTools của trình duyệt để chẩn đoán.

🏆 ProxyCove — Lựa chọn lý tưởng của bạn

🌍

Phạm vi toàn cầu

195+ quốc gia

Tốc độ cao

Lên đến 10 Gbps

🔐

Bảo mật

IP + Đăng nhập/Mật khẩu

👨‍💼

Hỗ trợ 24/7

Bằng tiếng Việt

💎

Giá cả phải chăng

Từ $1.5/GB

📊

API

Tích hợp đầy đủ

Bạn đã sẵn sàng làm việc với các proxy chuyên nghiệp chưa?

Đăng ký tại ProxyCove, nạp tiền với mã khuyến mãi ARTHELLO và nhận ngay $1.3 tiền thưởng!