NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
16/06/2023
Lượt xem

Cách thiết lập WireGuard trên Ubuntu 20.04

16/06/2023
38 phút đọc
Lượt xem

Đánh giá

5/5 - (100 bình chọn)

WireGuard là một VPN (Virtual Private Network) hỗ trợ kết nối IPv4 và IPv6. VPN cho phép bạn truy cập vào các mạng không đáng tin cậy giống như bạn đang ở trên mạng riêng tư. Bạn có thể truy cập internet an toàn, bảo mật thông tin khi kết nối vào một mạng không đáng tin cậy. Trong bài viết này, Vietnix sẽ hướng dẫn bạn thiết lập WireGuard trên Ubuntu 20.04.

Yêu cầu để thiết lập WireGuard trên Ubuntu 20.04

Để thực hiện được các bước trong bài viết này, bạn cần:

Yêu cầu để thiết lập WireGuard trên Ubuntu 20.04
Yêu cầu để thiết lập WireGuard trên Ubuntu 20.04
  • Một máy chủ Ubuntu 20.04 với người dùng không phải là root có quyền sudo và tường lửa đã được kích hoạt. Trong bài viết này, máy chủ sẽ được gọi là WireGuard Server.
  • Bạn sẽ cần một máy tính khách (client) để kết nối với WireGuard Server của bạn. Trong bài viết này, máy khách sẽ được gọi là WireGuard Peer. Bạn có thể sử dụng máy tính của mình hoặc máy chủ từ xa, điện thoại di động để làm WireGuard Peer.
  • Nếu sử dụng WireGuard với IPv6, bạn cần đảm bảo rằng máy chủ của bạn đã được cấu hình hỗ trợ lưu lượng này. 

Bước 1: Cài đặt WireGuard và tạo cặp khóa

Đầu tiên, cài đặt WireGuard trên máy chủ của bạn. Để bắt đầu, hãy cập nhật chỉ mục gói của máy chủ WireGuard và cài đặt WireGuard bằng các lệnh sau.

sudo apt update

sudo apt install wireguard

Tiếp theo tạo một cặp khóa riêng tư và khóa công khai cho máy chủ. Bạn sẽ sử dụng các lệnh wg genkeywg pubkey đã được tích hợp sẵn để tạo khóa. Sau đó, khóa riêng tư sẽ được thêm vào file cấu hình của WireGuard.

Bạn cũng cần thay đổi quyền truy cập vào khóa mà bạn vừa tạo bằng lệnh chmod. Vì theo mặc định file có thể được đọc bởi bất kỳ người dùng nào trên máy chủ của bạn.

Tạo khóa riêng tư cho WireGuard và thay đổi quyền truy cập bằng các lệnh sau:

wg genkey | sudo tee /etc/wireguard/private.key

sudo chmod go= /etc/wireguard/private.key

Lệnh sudo chmod go= ... sẽ xóa bỏ quyền truy cập trên file cho người dùng và nhóm ngoài người dùng root. Chỉ có root mới có thể truy cập vào khóa riêng tư.

Bạn sẽ nhận được một dòng đầu ra được mã hóa base64. Đó chính là khóa riêng tư. Một bản sao của khóa riêng tư cũng được lưu trữ trong tệp /etc/wireguard/private.key để sử dụng sau này bằng phần ghi của lệnh tee. Khóa riêng tư sẽ được thêm vào file cấu hình WireGuard sau này.

Bước tiếp theo là tạo khóa công khai tương ứng với khóa riêng tư. Bạn sử dụng lệnh sau để tạo file khóa công khai:

sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

Lệnh này bao gồm ba lệnh riêng rẽ và được kết nối với nhau bằng toán tử | (pipe):

  • sudo cat /etc/wireguard/private.key: Lệnh này giúp đọc file khóa riêng và đưa ra những output theo tiêu chuẩn.
  • wg pubkey: Lấy output từ lệnh đầu tiên làm input theo tiêu chuẩn và xử lý để tạo ra một khóa công khai.
  • sudo tee /etc/wireguard/public.key: Lấy output từ lệnh tạo khóa công khai và chuyển hướng kết quả vào file có tên /etc/wireguard/public.key.

Khi chạy lệnh này, bạn sẽ nhận được một dòng duy nhất được mã hóa base64. Đó chính là khóa công khai cho WireGuard Server của bạn. Hãy lưu lại nó.

Bước 2: Lựa chọn địa chỉ IPv4 và IPv6

Trong phần này, bạn sẽ tạo một file cấu hình cho máy chủ và thiết lập WireGuard tự động khởi động khi máy chủ của bạn khởi động lại. Bạn cũng sẽ xác định địa chỉ IPv4 và IPv6 riêng để sử dụng với WireGuard Server và các peer của nó.

Nếu bạn sử dụng cả địa chỉ IPv4 và IPv6 thì hãy làm theo cả hai phần dưới đây. Nếu không, bạn chỉ cần làm theo phần phù hợp với nhu cầu mạng VPN của bạn.

Lựa chọn dải địa chỉ IPv4

Nếu bạn sử dụng WireGuard Server với các peer IPv4, server cần một phạm vi địa chỉ IPv4 riêng để sử dụng với client và giao diện tunnel. Bạn có thể chọn bất kỳ dải địa chỉ IP nào từ các khối địa chỉ sau:

  • 10.0.0.0 đến 10.255.255.255 (tiền tố 10/8).
  • 172.16.0.0 đến 172.31.255.255 (tiền tố 172.16/12).
  • 192.168.0.0 đến 192.168.255.255 (tiền tố 192.168/16).

Dải địa chỉ IP được lựa chọn sử dụng trong bài viết là 10.8.0.0/24. Phạm vi này sẽ cho phép kết nối với 255 peer khác nhau. Đây là địa chỉ thông thường nên không trùng lặp hoặc xung đột với các phạm vi IP riêng tư khác. Nếu địa chỉ này không tương thích với cấu hình mạng của bạn, hãy tự lựa chọn một địa chỉ phù hợp với cấu hình mạng của bạn.

WireGuard Server sẽ sử dụng một địa chỉ trong dải địa chỉ IP này cho địa chỉ tunnel riêng của IPv4. Trong bài viết sử dụng dải 10.8.0.1/24. Bạn có thể sử dụng bất kỳ địa chỉ nào trong phạm vi từ 10.8.0.1 đến 10.8.0.255. Hãy note lại địa chỉ IP mà bạn chọn nếu bạn sử dụng một địa chỉ khác với 10.8.0.1/24. Bạn sẽ thêm địa chỉ IPv4 này vào file cấu hình xác định trong Bước 3: Tạo cấu hình WireGuard Server.

Lựa chọn dải địa chỉ IPv6

Nếu bạn đang sử dụng WireGuard với IPv6, bạn sẽ cần tạo một tiền tố cho địa chỉ IPv6 dựa trên thuật toán trong RFC 4193. Các địa chỉ mà bạn sử dụng với WireGuard sẽ được liên kết với một giao diện ảo của tunnel. Bạn sẽ cần thực hiện một vài bước để tạo tiền tố IPv6 ngẫu nhiên và duy nhất trong khối fd00::/8.

Cách để có được tiền tố IPv6 duy nhất là kết hợp thời gian trong ngày với giá trị định danh duy nhất từ hệ thống như số serial hoặc ID thiết bị. Những giá trị đó được băm và cắt ngắn. Kết quả là một tập hợp các bit được sử dụng như một địa chỉ duy nhất trong khối địa chỉ IPv6 riêng fd00::/8.

Lấy thời gian hiện tại ở dạng 64 bit bằng cách sử dụng tiện ích date:

date +%s%N

Bạn sẽ nhận được số có dạng như Số giây (phần %s trong lệnh date) và nanosecond (phần %N) kể từ 1970-01-01 00:00:00 UTC được kết hợp với nhau:

Output

1628101352127592197

Hãy ghi lại giá trị đó để sử dụngtrong phần sau phần này. Tiếp theo, bạn sao chép giá trị machine-id từ tệp /var/lib/dbus/machine-id. ID này là duy nhất đối với hệ thống của bạn và không nên thay đổi trong suốt thời gian server tồn tại.

cat /var/lib/dbus/machine-id

Bạn sẽ nhận được kết quả như sau:

/var/lib/dbus/machine-id

20086c25853947c7aeee2ca1ea849d7d

Bây giờ, bạn cần kết hợp dấu thời gian với machine-id và băm giá trị kết quả bằng thuật toán SHA-1. Lệnh sẽ sử dụng sẽ như sau:

printf <timestamp><machine-id> | sha1sum

Chạy lệnh thay thế giá trị timestamp và machine identity của bạn:

printf 162810135212759219720086c25853947c7aeee2ca1ea849

Bạn sẽ nhận được một giá trị băm (hash value) như sau:

Output

4f267c51857d6dc93a0bca107bca2f0d86fac3bc -

Lưu ý rằng output của lệnh sha1sum là ở hệ thập lục phân (hexadecimal). Vì vậy output sử dụng hai ký tự để biểu diễn một byte dữ liệu. Ví dụ, 4f26 trong output ví dụ là hai byte đầu tiên của dữ liệu được băm.

Thuật toán trong RFC chỉ yêu cầu 40 bit cuối cùng (đuôi) hoặc 5 byte của output đã băm. Do đó, bạn cần sử dụng lệnh cut để in ra 5 byte mã hóa thập lục phân cuối cùng từ giá trị băm:

printf 4f267c51857d6dc93a0bca107bca2f0d86fac3bc | cut -c 31-

Tham số -c cho lệnh cut chỉ chọn một tập hợp cụ thể các ký tự. Đối số 31- cho biết cut in ra tất cả các ký tự từ vị trí 31 đến cuối dòng output.

Bạn sẽ nhận được kết quả như sau:

Output

0d86fac3bc

Trong output ví dụ này, tập byte là: 0d 86 fa c3 bc.

Bây giờ bạn có thể tạo tiền tố mạng IPv6 duy nhất bằng cách nối 5 byte đã tạo ra với tiền tố fd. Hãy phân tách 2 byte bằng dấu : để dễ đọc. Mỗi mạng con trong tiền tố duy nhất của bạn có thể chứa tổng cộng 18,446,744,073,709,551,616 địa chỉ IPv6. Bạn có thể giới hạn kích thước mạng con thành /64 để đơn giản hơn.

Khi sử dụng các byte được tạo ra với kích thước mạng con /64, tiền tố kết quả sẽ là như sau:

Unique Local IPv6 Address Prefix

fd0d:86fa:c3bc::/64

Dải địa chỉ fd0d:86fa:c3bc::/64 sẽ sử dụng để chỉ định các địa chỉ IP riêng cho các giao diện tunnel WireGuard trên máy chủ và peer. Để cấp phát một địa chỉ IP cho máy chủ, thêm số 1 sau các ký tự :: ở cuối cùng. Địa chỉ kết quả sẽ là fd0d:86fa:c3bc::1/64

Các peer có thể sử dụng bất kỳ địa chỉ IP nào trong phạm vi này. Thường thì bạn sẽ tăng giá trị địa chỉ thêm một đơn vị mỗi khi thêm một peer ví dụ như fd0d:86fa:c3bc::2/64. Hãy ghi nhớ địa chỉ IP và tiếp tục cấu hình WireGuard Server trong các phần tiếp theo của bài viết này.

Bước 3: Tạo cấu hình WireGuard Server

Trước khi tạo cấu hình cho WireGuard Server, bạn sẽ cần có:

  • Khóa riêng tư từ Bước 1 – Cài đặt WireGuard và Tạo cặp khóa.
  • Nếu bạn đang sử dụng WireGuard với IPv4, bạn cần địa chỉ IP đã chọn cho máy chủ ở Bước 2(a). Trong ví dụ này, địa chỉ IP là 10.8.0.1/24.
  • Nếu bạn đang sử dụng WireGuard với IPv6, bạn cần địa chỉ IP cho máy chủ tạo ra ở Bước 2(b). Trong ví dụ này, địa chỉ IP là fd0d:86fa:c3bc::1/64.

Sau khi có khóa riêng tư và địa chỉ IP, hãy tạo một file cấu hình mới bằng nano. Để tạo file mới bạn hãy chạy lệnh sau:

sudo nano /etc/wireguard/wg0.conf

Sau khi tạo được file, bạn thêm các dòng dưới đây vào file. Thay thế khóa riêng tư vào giá trị base64_encoded_private_key_goes_here và địa chỉ IP trên dòng Address. Bạn cũng có thể thay đổi dòng ListenPort nếu bạn muốn WireGuard trên cổng khác:

[Interface]

PrivateKey = base64_encoded_private_key_goes_here

Address = 10.8.0.1/24, fd0d:86fa:c3bc::1/64

ListenPort = 51820

SaveConfig = true

Dòng SaveConfig đảm bảo khi một giao diện WireGuard bị tắt, các thay đổi sẽ được lưu vào file cấu hình.

Sau khi thực hiện xong, bạn lưu và đóng tệp /etc/wireguard/wg0.conf. Nếu bạn đang sử dụng nano, bạn có thể thực hiện lưu và đóng bằng cách ấn CTRL+X, sau đó nhấn YENTER. Bây giờ bạn đã có cấu hình máy chủ ban đầu. Bạn có thể thêm các tuỳ chọn tùy thuộc vào cách bạn sử dụng máy chủ VPN WireGuard của mình.

Bước 4: Điều chỉnh cấu hình mạng cho WireGuard Server

Nếu bạn sử dụng WireGuard để kết nối một peer đến WireGuard Server để truy cập vào các dịch vụ trên server thì bạn không cần thực hiện phần này. Nếu bạn muốn định tuyến lưu lượng Internet của WireGuard Peer qua WireGuard Server thì bạn cần làm theo phần sau đây.

Đầu tiên, bạn cần cấu hình chuyển tiếp IP. Để cấu hình chuyển tiếp IP, mở file /etc/sysctl.conf bằng nano hoặc trình chỉnh sửa bất kỳ:

sudo nano /etc/sysctl.conf

Nếu bạn đang sử dụng IPv4 với WireGuard, hãy thêm dòng sau vào cuối file:

net.ipv4.ip_forward=1

Nếu bạn đang sử dụng IPv6 với WireGuard, hãy thêm dòng sau vào cuối file:

net.ipv6.conf.all.forwarding=1

Nếu bạn đang sử dụng cả IPv4 và IPv6, hãy thêm cả hai dòng vào cuối file. Lưu và đóng file khi bạn hoàn thành.

Để đọc file và tải các giá trị mới cho phiên làm việc hiện tại của bạn, bạn chạy lệnh sau:

sudo sysctl -p
Output

net.ipv6.conf.all.forwarding = 1

net.ipv4.ip_forward = 1

Bây giờ WireGuard Server có thể chuyển tiếp lưu lượng từ thiết bị ethernet VPN ảo đến các thiết bị khác trên server và đến Internet công cộng. Khi sử dụng cấu hình này, bạn có thể định tuyến toàn bộ lưu lượng web từ WireGuard Peer qua địa chỉ IP của server. Địa chỉ IP công khai của máy khách sẽ được ẩn đi.

Tuy nhiên, trước khi lưu lượng được định tuyến qua server, bạn cần phải cấu hình một số quy tắc tường lửa. Những quy tắc này sẽ đảm bảo lưu lượng đến và đi từ WireGuard Server và Peers được chuyển tiếp đúng nhất.

Bước 5: Cấu hình tường lửa cho WireGuard Server

Thực hiện bước này để đảm bảo việc điều chỉnh lưu lượng truy cập giữa server và các client được thực hiện chính xác. Tuy nhiên, bạn không cần thực hiện bước này nếu bạn sử dụng VPN WireGuard để truy cập vào tài nguyên bị giới hạn trên VPN.

Để cho phép lưu lượng VPN WireGuard đi qua tường lửa của server, bạn cần bật chức năng masquerading. Đây là một khái niệm iptables cung cấp chuyển đổi địa chỉ mạng động (NAT) để điều chỉnh các kết nối của client.

Đầu tiên, bạn cần tìm tên giao diện mạng công cộng của WireGuard Server bằng cách sử dụng lệnh con ip route:

ip route list default

Giao diện công cộng là chuỗi được tìm thấy trong outpu nằm sau từ “dev”. Ví dụ, ở trong kết quả này, giao diện được đặt tên là eth0:

Output

default via 203.0.113.1 dev eth0 proto static

Hãy ghi nhớ tên thiết bị của bạn vì bạn sẽ thêm nó vào các quy tắc iptables ở bước tiếp theo.

Để thêm các quy tắc tường lửa cho WireGuard Server. Bạn hãy mở file /etc/wireguard/wg0.conf với nano hoặc trình soạn thảo bất kỳ.

sudo nano /etc/wireguard/wg0.conf

Ở cuối file, sau dòng SaveConfig = true, bạn dán vào các dòng sau đây:


PostUp = ufw route allow in on wg0 out on eth0

PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

PreDown = ufw route delete allow in on wg0 out on eth0

PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Các dòng PostUp sẽ chạy khi WireGuard Server khởi động tunnel VPN ảo. Trong ví dụ này, ba quy tắc ufwiptables sẽ được thêm:

  • ufw route allow in on wg0 out on eth0: Rule này sẽ cho phép chuyển tiếp lưu lượng IPv4 và IPv6 vào giao diện mạng VPN wg0 đến giao diện mạng eth0 trên máy chủ. Quy tắc hoạt động kết hợp với giá trị sysctl net.ipv4.ip_forwardnet.ipv6.conf.all.forwarding mà bạn đã cấu hình ở phần trước.
  • iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE: Rule này cấu hình giả và chỉnh sửa lưu lượng IPv4 vào giao diện mạng VPN wg0 giống như bắt nguồn trực tiếp từ địa chỉ IPv4 công khai của WireGuard Server.
  • ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE: Cấu hình giả và chỉnh sửa lưu lượng IPv6 vào giao diện mạng VPN wg0 giống như bắt nguồn trực tiếp từ địa chỉ IPv6 công khai của WireGuard Server.

Các rule PreDown được chạy khi WireGuard Server ngừng kết nối virtual VPN tunnel. Những rule này ngược với PostUp và hoạt động để hoàn tác các rule chuyển tiếp và rule giả cho giao diện VPN khi VPN bị ngừng.

Trong cả hai trường hợp, hãy chỉnh sửa cấu hình phù hợp với VPN của bạn. Ví dụ, nếu chỉ sử dụng IPv4, bạn có thể loại bỏ các dòng lệnh với lệnh ip6tables.

Ngược lại, nếu bạn chỉ sử dụng IPv6, hãy chỉnh sửa cấu hình để chỉ còn các lệnh ip6tables. Nên có các dòng lệnh ufw khi kết hợp mạng IPv4 và IPv6. Sau đó, bạn hãy lưu và đóng tệp khi bạn hoàn tất.

Phần cuối cùng của việc cấu hình tường lửa trên WireGuard Server là cho phép lưu lượng vào và ra từ cổng UDP của WireGuard. Nếu bạn không thay đổi cổng trong file /etc/wireguard/wg0.conf của máy chủ, cổng sẽ được mở là 51820. Nếu bạn chọn một cổng khác khi chỉnh sửa cấu hình, hãy thay thế trong lệnh UFW sau đây.

Trong trường hợp bạn quên mở cổng SSH, hãy thêm vào lệnh:

sudo ufw allow 51820/udp

sudo ufw allow OpenSSH

Lưu ý: Nếu bạn đang sử dụng tường lửa khác hoặc đã tùy chỉnh cấu hình UFW, có thể bạn cần thêm các quy tắc tường lửa bổ sung. Ví dụ bạn quyết định định tuyến tất cả lưu lượng mạng của mình qua kết nối VPN. Bạn cần đảm bảo lưu lượng cổng 53 cho các yêu cầu DNS, cổng 80 và 443 cho lưu lượng HTTP và HTTPS tương ứng. Nếu có các giao thức khác đang sử dụng qua kết nối VPN, bạn cũng cần thêm các quy tắc cho chúng.

Sau khi thêm các quy tắc đó, bạn hãy khởi động lại UFW để tải các thay đổi từ tất cả các file bạn đã sửa đổi:

sudo ufw disable

sudo ufw enable

Bạn có thể kiểm tra các quy tắc đã được áp dụng bằng cách chạy lệnh ufw status. Khi chạy lệnh đó, bạn sẽ nhận được output giống như sau:

sudo ufw status
Output

Status: active

To Action From

51280/udp ALLOW Anywhere

22/tcp ALLOW Anywhere

51280/udp (v6) ALLOW Anywhere (v6)

22/tcp (v6) ALLOW Anywhere (v6)

WireGuard Server đã được cấu hình để xử lý lưu lượng VPN chính xác. Với các quy tắc tường lửa đã được trên, bạn có thể bắt đầu dịch vụ WireGuard để lắng nghe kết nối peer.

Bước 6: Khởi động WireGuard Server

WireGuard có thể được cấu hình để chạy dưới dạng dịch vụ systemd bằng cách sử dụng tập lệnh wg-quick được tích hợp sẵn. Bạn có thể sử dụng lệnh wg để tạo tunnel mỗi khi muốn sử dụng VPN. Nhưng việc lặp đi lặp lại như vậy rất dễ xảy ra lỗi. Thay vào đó, bạn có thể sử dụng systemctl để quản lý tunnel với sự trợ giúp của tập lệnh wg-quick.

Sử dụng dịch vụ systemd có nghĩa là bạn có thể cấu hình WireGuard khởi động cùng boot. Bạn có thể kết nối với VPN bất cứ lúc nào miễn là máy chủ đang chạy. Để làm điều này, hãy kích hoạt dịch vụ wg-quick cho tunnel wg0 bằng cách thêm nó vào systemctl:

sudo systemctl enable wg-quick@wg0.service

Chú ý rằng lệnh chỉ định wg0 của thiết bị tunnel như một phần của tên dịch vụ. Tên này tương ứng với file cấu hình /etc/wireguard/wg0.conf. Cách tiếp cận này về tên gọi có nghĩa là bạn có thể tạo nhiều tunnel VPN riêng mà bạn muốn sử dụng trên máy chủ.

Ví dụ, bạn có thể có một thiết bị tunnel và tên là prod. File cấu hình sẽ là /etc/wireguard/prod.conf. Mỗi cấu hình tunnel có thể chứa các cài đặt tường lửa IPv4, IPv6 và client khác nhau. Như vậy, bạn có thể hỗ trợ nhiều kết nối khác nhau. Mỗi kết nối có địa chỉ IP và quy tắc định tuyến riêng.

Sau đó bắt đầu dịch vụ bằng lệnh:

sudo systemctl start wg-quick@wg0.service

Bạn có thể kiểm tra lại dịch vụ WireGuard đang hoạt động với lệnh sau. Bạn sẽ thấy active (running) trong output:

sudo systemctl status wg-quick@wg0.service
Output
● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
     Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2021-08-25 15:24:14 UTC; 5s ago
       Docs: man:wg-quick(8)
             man:wg(8)
             https://www.wireguard.com/
             https://www.wireguard.com/quickstart/
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
    Process: 3245 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
   Main PID: 3245 (code=exited, status=0/SUCCESS)

Aug 25 15:24:14 wg0 wg-quick[3245]: [#] wg setconf wg0 /dev/fd/63
Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ip -4 address add 10.8.0.1/24 dev wg0
Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ip -6 address add fd0d:86fa:c3bc::1/64 dev wg0
Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ip link set mtu 1420 up dev wg0
Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ufw route allow in on wg0 out on eth0
Aug 25 15:24:14 wg0 wg-quick[3279]: Rule added
Aug 25 15:24:14 wg0 wg-quick[3279]: Rule added (v6)
Aug 25 15:24:14 wg0 wg-quick[3245]: [#] iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
Aug 25 15:24:14 wg0 wg-quick[3245]: [#] ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
Aug 25 15:24:14 wg0 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

Output hiển thị các lệnh ip được sử dụng để tạo thiết bị wg0 ảo và gán các địa chỉ IPv4 và IPv6 mà bạn đã thêm vào file cấu hình. Bạn có thể sử dụng các quy tắc này để khắc phục sự cố trong tunnel. Hoặc bạn có thể dùng lệnh wg trực tiếp nếu muốn thử cấu hình VPN interface bằng tay.

WireGuard là một giải pháp tuyệt vời để đảm bảo tính riêng tư, bảo mật và ổn định của hệ thống. Tuy nhiên, để đạt được hiệu suất tối đa và đảm bảo cho việc vận hành máy chủ được ổn định và mượt mà, cần phải chú ý đến tốc độ. VPS Vietnix sẽ là giải pháp tối ưu đảm bảo toàn bộ những yếu tố này. Vietnix cung cấp các gói VPS NVMe, VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp và VPS GPU với nhiều mức giá và cấu hình đa dạng để đáp ứng các nhu cầu khác nhau của khách hàng.

Với cấu hình mạnh mẽ, tình năng bảo mật – backup dữ liệu cùng đội ngũ kỹ thuật giàu chuyên môn, Vietnix là một lựa chọn tuyệt vời cho các nhà phát triển và doanh nghiệp đang tìm kiếm giải pháp VPS tốc độ cao để đạt được hiệu suất tối đa. Hãy liên hệ với Vietnix để được tư vấn về gói VPS theo nhu cầu của bạn.

Bước 7: Cấu hình WireGuard Peer

Cấu hình một WireGuard peer tương tự như thiết lập WireGuard Server. Khi đã cài đặt phần mềm khách, bạn sẽ tạo ra một cặp khóa riêng tư và công khai. Sau đó xác định địa chỉ IP cho peer hoặc peer, xác định một file cấu hình cho peer. Tiếp theo là thiết lập tunnel bằng cách sử dụng tập lệnh wg-quick.

Bạn có thể thêm nhiều peer vào VPN của mình. Nếu bạn thêm nhiều peer vào VPN, hãy đảm bảo các địa chỉ IP không bị xung đột với nhau.

Để cấu hình WireGuard Peer, bạn cần cài đặt gói WireGuard bằng các lệnh apt dưới đây. Trên WireGuard peer, chạy câu lệnh:

sudo apt update
sudo apt install wireguard

Tạo cặp khóa cho WireGuard Peer

Thực hiện tương tự như thao tác trên máy chủ. Hãy gõ câu lệnh sau để tạo khóa riêng cho máy khách:

wg genkey | sudo tee /etc/wireguard/private.key

sudo chmod go= /etc/wireguard/private.key

Bạn sẽ nhận được khoá riêng tư dưới dạng một dòng mã hóa base64. Bản sao của khoá này cũng được lưu trữ trong /etc/wireguard/private.key. Chú ý note lại khóa riêng tư vì bạn sẽ cần thêm nó vào file cấu hình WireGuard.

Tiếp theo, sử dụng lệnh sau để tạo file khóa công khai:

sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

Bạn sẽ nhận được một dòng mã hóa base64 là khóa công khai cho WireGuard Peer. Hãy ghi lại khoá ở đâu đó. Bạn sẽ cần phân phối khóa công khai cho WireGuard Server để thiết lập kết nối mã hóa.

Tạo file cấu hình cho Peer của WireGuard

Khi đã có cặp khóa, bạn có thể tạo một file cấu hình cho peer. File này chứa tất cả thông tin cần thiết để thiết lập kết nối đến WireGuard Server.

Để tạo file cấu hình, bạn cần:

  • Khóa riêng được mã hóa base64 đã tạo trên peer.
  • Dải địa chỉ IPv4 và IPv6 mà bạn đã xác định trên WireGuard Server.
  • Khóa công khai được mã hóa base64 từ WireGuard Server.
  • Địa chỉ IP công khai và port number của WireGuard Server. Thông thường đây sẽ là địa chỉ IPv4. Nếu máy chủ của bạn có địa chỉ IPv6 và máy khách của bạn có kết nối IPv6 đến internet, bạn có thể sử dụng IPv6 thay vì IPv4.

Khi đã có đủ những điều kiện trên, hãy mở file /etc/wireguard/wg0.conf mới trên máy WireGuard Peer bằng nano hoặc trình chỉnh sửa bất kỳ:

sudo nano /etc/wireguard/wg0.conf

Bạn hãy thêm các dòng sau vào file.

[Interface]

PrivateKey = base64_encoded_peer_private_key_goes_here

Address = 10.8.0.2/24

Address = fd0d:86fa:c3bc::2/64

[Peer]

PublicKey = U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=

AllowedIPs = 10.8.0.0/24, fd0d:86fa:c3bc::/64

Endpoint = 203.0.113.1:51820

Lưu ý dòng Address đầu tiên sử dụng địa chỉ IPv4 từ mạng con 10.8.0.0/24 mà bạn đã chọn trước đó. Địa chỉ IP này cần khác với địa chỉ IP của máy chủ. Vì vậy, tăng địa chỉ IP lên 1 mỗi khi bạn thêm một peer là cách dễ nhất để phân bổ địa chỉ IP.

Tương tự, dòng Address thứ hai sử dụng địa chỉ IPv6 từ mạng con mà bạn đã tạo trước đó. Bạn có thể sử dụng bất kỳ địa chỉ nào ở trong dải.

Phần quan trọng khác của file là dòng AllowedIPs cuối cùng. Hai dải IPv4 và IPv6 chỉ cho peer gửi lưu lượng qua VPN nếu hệ thống đích có địa chỉ IP thuộc một trong hai phạm vi này. Khi sử dụng chỉ thị AllowedIPs, bạn có thể giới hạn VPN trên peer để kết nối với các peer và dịch vụ khác trên VPN. Bạn có thể cấu hình để đưa tất cả lưu lượng qua VPN và sử dụng WireGuard Server làm gateway.

Nếu bạn chỉ sử dụng IPv4, hãy bỏ phần đuôi fd0d: 86fa: c3bc :: / 64 (bao gồm dấu phẩy ,). Ngược lại, nếu bạn chỉ sử dụng IPv6, để lại tiền tố fd0d: 86fa: c3bc :: / 64 và bỏ qua dải địa chỉ IPv4 10.8.0.0/24.

Trong cả hai trường hợp, nếu bạn muốn gửi toàn bộ lưu lượng của peer qua VPN và sử dụng WireGuard Server làm gateway cho toàn bộ lưu lượng. Bạn có thể sử dụng 0.0.0.0/0 đại diện cho toàn bộ dải địa chỉ IPv4 và ::/0 cho toàn bộ dải địa chỉ IPv6.

(Optional) Cấu hình một Peer để định tuyến toàn bộ lưu lượng qua tunnel

Nếu peer là một hệ thống từ xa và bạn chọn định tuyến toàn bộ lưu lượng của peer qua bằng cách sử dụng các đường đi 0.0.0.0/0 hoặc ::/0. Bạn sẽ cần hoàn thành các bước trong phần này. Ngược lại, nếu peer của bạn là một hệ thống cục bộ thì có thể bỏ qua phần này.

Với các peer từ xa truy cập qua SSH hoặc một giao thức khác bằng địa chỉ IP công khai, bạn cần thêm một số quy tắc bổ sung vào file wg0.conf của peer. Những quy tắc này giúp bạn có thể kết nối với hệ thống bên ngoài khi tunnel được kết nối. Nếu không, khi tunnel được thiết lập, toàn bộ lưu lượng thông thường được xử lý trên giao diện mạng công cộng sẽ không được định tuyến để tránh giao diện tunnel wg0. Từ đó dẫn đến hệ thống từ xa không thể truy cập được.

Đầu tiên, bạn cần xác định địa chỉ IP mà hệ thống sử dụng làm gateway mặc định. Bạn chạy lệnh ip route sau đây:

ip route list table main default

Bạn sẽ nhận được kết quả như sau:

Output

default via 203.0.113.1 dev eth0 proto static

Lưu ý đến địa chỉ IP 203.0.113.1 và thiết bị eth0. Tên thiết bị của bạn có thể khác.

Tiếp theo, tìm địa chỉ IP công cộng của hệ thống bằng lệnh ip address show:

ip -brief address show eth0

Bạn sẽ nhận được kết quả như sau:

Output

eth0 UP 203.0.113.5/20 10.20.30.40/16 2604:a880:400:d1::3d3:6001/64 fe80::68d5:beff:feff:974c/64

Trong kết quả của ví dụ, địa chỉ IP 203.0.113.5 (không bao gồm /20 ở cuối) là địa chỉ công cộng được gán cho thiết bị eth0. Bạn cần thêm đêm địa chỉ này vào cấu hình WireGuard.

Tiếp theo, hãy mở tệp /etc/wireguard/wg0.conf của WireGuard Peer với nano hoặc trình chỉnh sửa bất kỳ.

sudo nano /etc/wireguard/wg0.conf

Trước dòng [Peer], bạn thêm vào 4 dòng sau đây:

PostUp = ip rule add table 200 from 203.0.113.5

PostUp = ip route add table 200 default via 203.0.113.1

PreDown = ip rule delete table 200 from 203.0.113.5

PreDown = ip route delete table 200 default via 203.0.113.1

[Peer]

. . .

Những dòng này sẽ tạo một rule định tuyến và thêm một định tuyến tùy chỉnh để đảm bảo lưu lượng công cộng đến hệ thống sử dụng default gateway.

  • PostUp = ip rule add table 200 from 203.0.113.5: Lệnh này tạo quy tắc kiểm tra các mục định tuyến trong bảng được đánh số 200 khi IP khớp với địa chỉ công cộng 203.0.113.5 của hệ thống.
  • PostUp = ip route add table 200 default via 203.0.113.1: Lệnh này đảm bảo rằng bất kỳ lưu lượng nào được xử lý bởi bảng 200 sẽ sử dụng cổng gateway 203.0.113.1 cho định tuyến.

Các dòng PreDown sẽ gỡ bỏ quy tắc và tự định tuyến khi tunnel bị tắt.

Lưu ý: Số bảng 200 có thể tùy chỉnh khi xây dựng các quy tắc. Bạn có thể sử dụng một giá trị giữa 2 và 252. Hoặc bạn có thể sử dụng tên tùy chỉnh bằng cách thêm nhãn vào tệp /etc/iproute2/rt_tables và sau đó tham chiếu đến tên thay vì giá trị số.

(Optional) Cấu hình trình DNS Resolvers của Wireguard Peer

Nếu bạn đang sử dụng WireGuard Server như một cổng VPN cho tất cả lưu lượng, bạn cần thêm một dòng vào phần [Interface] để chỉ định trình DNS resolvers. Nếu không thêm cài đặt này, các yêu cầu DNS của bạn có thể không được bảo mật bởi VPN. Các yêu cầu có thể được tiết lộ cho Nhà cung cấp Dịch vụ Internet của bạn hoặc bên thứ ba khác.

Nếu bạn sử dụng WireGuard để truy cập tài nguyên trên mạng VPN hoặc trong cấu hình ngang hàng với các peer thì bạn có thể bỏ qua phần này.

Để thêm DNS resolvers vào cấu hình peer, trước tiên xác định máy chủ DNS mà WireGuard Server của bạn đang sử dụng. Chạy lệnh sau trên WireGuard Server. Thay thế tên thiết bị ethernet của bạn vào eth0 nếu tên thiết bị của bạn khác eth0:

resolvectl dns eth0

Bạn sẽ nhận được kết quả như sau:

Output

Link 2 (eth0): 67.207.67.2 67.207.67.3 2001:4860:4860::8844 2001:4860:4860::8888

Địa chỉ IP được hiển thị là các DNS resolvers mà máy chủ đang sử dụng. Bạn có thể chọn sử dụng bất kỳ, chỉ IPv4 hoặc IPv6 tùy thuộc vào nhu cầu của bạn. Nhớ ghi chú lại các DNS resolvers mà bạn sẽ sử dụng.

Tiếp theo, bạn cần thêm các DNS resolvers đã chọn vào file cấu hình của WireGuard Peer. Trên WireGuard Peer, mở tệp /etc/wireguard/wg0.conf bằng nano hoặc trình chỉnh sửa bất kỳ:

sudo nano /etc/wireguard/wg0.conf

Trước dòng [Peer], hãy thêm vào đoạn sau:

DNS = 67.207.67.2 2001:4860:4860::8844

[Peer]

. . .

Tương tự như trên, tùy thuộc vào yêu cầu IPv4 và IPv6 của bạn, bạn có thể chỉnh sửa theo nhu cầu của mình.

Sau khi kết nối với VPN ở bước tiếp theo, bạn có thể kiểm tra xem bạn đang gửi truy vấn DNS qua VPN bằng cách sử dụng một trang web như DNS leak test.com.

Bạn cũng có thể kiểm tra peer của bạn đang sử dụng những resolver đã cấu hình bằng lệnh resolvectl dns. Bạn sẽ nhận được output hiển thị các DNS resolver mà bạn đã cấu hình cho tunnel VPN:

Output

Global: 67.207.67.2 67.207.67.3

. . .

Với thiết lập này, bạn đã sẵn sàng để thêm khóa công khai của peer vào máy chủ. Sau đó, bạn có thể bắt đầu tunnel WireGuard trên peer.

Bước 8: Thêm khóa công khai của Peer vào WireGuard Server

Trước khi kết nối đến máy chủ, bạn cần thêm khóa công khai của peer vào WireGuard Server. Bước này đảm bảo bạn sẽ có thể kết nối và định tuyến lưu lượng qua VPN. Nếu không hoàn thành bước này, WireGuard Server sẽ không cho phép peer gửi hoặc nhận bất kỳ lưu lượng nào qua tunnel.

Bạn có thể xem bản sao của khóa công khai được mã hóa base64 cho WireGuard Peer bằng cách chạy lệnh:

sudo cat /etc/wireguard/public.key
Output

PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=

Sau đó, bạn đăng nhập vào WireGuard server và chạy lệnh sau:

sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.8.0.2,fd0d:86fa:c3bc::2

Chú ý rằng phần allowed-ips lấy một danh sách các địa chỉ IPv4 và IPv6 được phân tách bằng dấu phẩy. Bạn có thể chỉ định các địa chỉ IP riêng nếu bạn muốn hạn chế địa chỉ IP peer có thể gán chính nó. Hoặc một phạm vi giống ví dụ khi các peer có thể sử dụng bất kỳ địa chỉ IP nào trong dải VPN. Lưu ý rằng không có hai peer nào có cùng cài đặt allowed-ips.

Nếu bạn muốn cập nhật allowed-ips cho một peer, bạn có thể chạy lại cùng một lệnh nhưng thay đổi các địa chỉ IP. Có nhiều địa chỉ IP được hỗ trợ. Ví dụ, để thêm một IP như 10.8.0.100 vào các IP hiện có là 10.8.0.2fd0d:86fa:c3bc::2, bạn sẽ chạy lệnh sau:

sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= allowed-ips 10.8.0.2,10.8.0.100,fd0d:86fa:c3bc::2

Sau khi chạy lệnh thêm peer, hãy kiểm tra trạng thái của tunnel trên máy chủ bằng lệnh wg:

sudo wg
Output

interface: wg0

public key: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=

private key: (hidden)

listening port: 51820

peer: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=

allowed ips: 10.8.0.2/32, fd0d:86fa:c3bc::/128

Chú ý rằng dòng peer hiển thị khóa công khai của WireGuard Peer. Thêm vào đó là các địa chỉ IP hoặc phạm vi địa chỉ được phép sử dụng để gán cho mình một địa chỉ IP.

Sau khi bạn đã xác định các thông số kết nối của peer trên máy chủ, bước tiếp theo là khởi động tunnel trên peer.

Bước 9: Kết nối WireGuard Peer với tunnel

Máy chủ và peer của bạn đã được cấu hình để hỗ trợ lựa chọn IPv4, IPv6, chuyển tiếp gói tin và DNS. Tiếp theo là kết nối peer với VPN tunnel.

Để VPN hoạt động trong trường hợp sử dụng cụ thể, hãy sử dụng lệnh wg-quick để thiết lập kết nối theo cách thủ động. Nếu bạn muốn tự động chạy tunnel giống như đã làm trên máy chủ, hãy làm theo Bước 6 thay vì sử dụng lệnh wq-quick.

Trong trường hợp bạn đang định tuyến tất cả lưu lượng qua VPN và đã thiết lập chuyển tiếp DNS. Bạn cần cài đặt tiện ích resolvconf trên WireGuard Peer trước khi chạy tunnel. Chạy lệnh sau để cài đặt tiện ích:

sudo apt install resolvconf

Để bắt đầu kết nối, hãy chạy lệnh sau trên WireGuard Peer:

sudo wg-quick up wg0

Bạn sẽ nhận được kết quả như sau:

Output

[#] ip link add wg0 type wireguard

[#] wg setconf wg0 /dev/fd/63

[#] ip -4 address add 10.8.0.2/24 dev wg0

[#] ip -6 address add fd0d:86fa:c3bc::2/64 dev wg0

[#] ip link set mtu 1420 up dev wg0

[#] resolvconf -a tun.wg0 -m 0 -x

Lưu ý các địa chỉ IPv4 và IPv6 đã được chỉ định cho peer.

Nếu bạn đã thiết lập AllowedIPs trên peer để là 0.0.0.0/0::/0 (hoặc sử dụng phạm vi khác với phạm vi bạn chọn cho VPN) thì kết quả sẽ như sau:

Output

[#] ip link add wg0 type wireguard

[#] wg setconf wg0 /dev/fd/63

[#] ip -4 address add 10.8.0.2/24 dev wg0

[#] ip -6 address add fd0d:86fa:c3bc::2/64 dev wg0

[#] ip link set mtu 1420 up dev wg0

[#] resolvconf -a tun.wg0 -m 0 -x

[#] wg set wg0 fwmark 51820

[#] ip -6 route add ::/0 dev wg0 table 51820

[#] ip -6 rule add not fwmark 51820 table 51820

[#] ip -6 rule add table main suppress_prefixlength 0

[#] ip6tables-restore -n

[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820

[#] ip -4 rule add not fwmark 51820 table 51820

[#] ip -4 rule add table main suppress_prefixlength 0

[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1

[#] iptables-restore -n

Bạn có thể kiểm tra trạng thái của tunnel trên peer bằng lệnh wg:

sudo wg
Output
interface: wg0
 public key: PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg=
 private key: (hidden)
 listening port: 49338
 fwmark: 0xca6c

peer: U9uE2kb/nrrzsEU58GD3pKFU3TLYDMCbetIsnV8eeFE=
 endpoint: 203.0.113.1:51820
 allowed ips: 10.8.0.0/24, fd0d:86fa:c3bc::/64
 latest handshake: 1 second ago
 transfer: 6.50 KiB received, 15.41 KiB sent

Bạn cũng có thể kiểm tra trạng thái trên máy chủ một lần nữa và bạn cũng sẽ nhận được output tương tự.

Xác minh rằng peer của bạn đang sử dụng VPN bằng cách sử dụng các lệnh ip routeip -6. Nếu bạn đang sử dụng VPN cho tất cả lưu lượng Internet, hãy kiểm tra giao diện nào được sử dụng cho lưu lượng dành cho DNS của CloudFlare 1.1.1.12606: 4700: 4700 :: 1111.

Nếu bạn chỉ sử dụng WireGuard để truy cập các tài nguyên trên VPN, hãy thay thế một địa chỉ IPv4 hoặc IPv6 hợp lệ. Ví dụ 10.8.0.1 hoặc fd0d:86fa:c3bc::1.

Sử dụng lệnh ip route get 1.1.1.1 để kiểm tra:

ip route get 1.1.1.1
Output

1.1.1.1 dev wg0 table 51820 src 10.8.0.2 uid 1000

cache

Chú ý đến thiết bị wg0 được sử dụng và địa chỉ IPv4 10.8.0.2 mà bạn đã gán cho peer. Tương tự, nếu bạn đang sử dụng IPv6, hãy chạy lệnh sau:

ip -6 route get 2606:4700:4700::1111
Output

2606:4700:4700::1111 from :: dev wg0 table 51820 src fd0d:86fa:c3bc::2 metric 1024 pref medium

Lưu ý về giao diện wg0 và địa chỉ IPv6 fd0d:86fa:c3bc::2 mà bạn đã gán cho peer.

Nếu peer của bạn có trình duyệt web cài đặt, bạn cũng có thể truy cập vào ipleak.net và ipv6-test.com để xác nhận rằng peer của bạn đang định tuyến lưu lượng qua VPN.

Khi bạn muốn ngắt kết nối từ VPN trên peer, sử dụng lệnh wg-quick:

sudo wg-quick down wg0

Bạn sẽ nhận được kết quả cho thấy tunnel VPN đã đóng:

Output

[#] ip link delete dev wg0

[#] resolvconf -d tun.wg0 -f

Nếu bạn thiết lập AllowedIPs trên peer thành 0.0.0.0/0::/0 (hoặc sử dụng các dải khác ngoài những dải mà bạn chọn cho VPN) thì đầu ra sẽ giống như sau:

Output

[#] ip rule delete table 200 from 203.0.113.5

[#] ip route delete table 200 default via 203.0.113.1

[#] ip -4 rule delete table 51820

[#] ip -4 rule delete table main suppress_prefixlength 0

[#] ip -6 rule delete table 51820

[#] ip -6 rule delete table main suppress_prefixlength 0

[#] ip link delete dev wg0

[#] resolvconf -d tun.wg0 -f

[#] iptables-restore -n

[#] ip6tables-restore -n

Để kết nối lại với VPN, hãy chạy lại lệnh wg-quick up wg0 trên peer. Nếu bạn muốn hoàn toàn xóa cấu hình của một peer khỏi WireGuard Server, bạn có thể chạy lệnh sau đây. Hãy thay thế khóa công khai chính xác cho peer mà bạn muốn xóa:

sudo wg set wg0 peer PeURxj4Q75RaVhBKkRTpNsBPiPSGb5oQijgJsTa29hg= r

Thông thường, bạn chỉ cần xóa cấu hình của một peer nếu peer không còn tồn tại hoặc nếu các khóa mã hóa của nó bị thay đổi hoặc xâm phạm. Nếu không thì bạn hãy giữ nguyên cấu hình cho peer. Như vậy peer có thể kết nối lại với VPN mà không cần yêu cầu thêm khóa và allowed-ips.

Bạn có thể sử dụng dịch vụ VPS Vietnix nếu gặp vấn đề khi thực hiện các thao tác trên hoặc cảm thấy chúng quá phức tạp. Vietnix có nhiều kinh nghiệm trong lĩnh vực cung cấp các giải pháp lưu trữ, với hơn 11 năm kinh nghiệm, và đã kích hoạt hơn 100.000 dịch vụ cho hơn 50.000 khách hàng cá nhân, doanh nghiệp. Khi sử dụng dịch vụ của VPS Vietnix, bạn sẽ được hỗ trợ cài đặt hệ thống hay các ứng dụng một cách nhanh chóng. Ngoài ra, đội ngũ kỹ thuật túc trực 24/7 sẽ hỗ trợ bạn giải quyết mọi vấn đề phát sinh trong thời gian ngắn nhất.

Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Hotline: 1800 1093.
  • Email: sales@vietnix.com.vn.

Lời kết 

Qua bài viết này, Vietnix đã hướng dẫn bạn đã cài đặt gói và công cụ WireGuard trên cả hệ thống máy chủ và máy khách Ubuntu 20.04. Bạn đã học được cách thiết lập các quy tắc tường lửa cho WireGuard và cấu hình các thiết lập kernel. Bạn cũng đã học được cách tạo khóa mã hóa WireGuard riêng tư và công khai, cách cấu hình máy chủ và peer (hoặc các peer) để kết nối với nhau. Nếu bạn có bất cứ góp ý hay thắc mắc gì, hãy để lại bình luận ở dưới bài viết nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Kết nối với mình qua

Kết nối với mình qua

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG

Chỉ số tăng trưởng

Điểm Desktop

100 (+39)

Điểm Mobile

100 (+67)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

99 (+28)

Điểm Mobile

100 (+50)

Core Web Vitals

Passed

Lĩnh vực

SEO

Chỉ số tăng trưởng

Điểm Desktop

99 (+26)

Điểm Mobile

98 (+59)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

100 (+8)

Điểm Mobile

98 (+35)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Chỉ số tăng trưởng

Điểm Desktop

100 (+61)

Điểm Mobile

100 (+61)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Võ Thiên Tòng

25 Tháng 2 lúc 21:09

·

Mình muốn gửi lời cảm ơn chân thành đến Team Vietnix, anh Hưng Nguyễn, anh Vietnix Trung, em Quốc Huy đã hỗ trợ tối ưu Page Speed Insight (PSI) cho website vanvoiminhhoa.vn của mình.
Biết đến anh Hưng đã lâu nhưng chưa có duyên sử dụng dịch vụ bên anh. Tình cờ thấy được bài Post của anh về việc hỗ trợ tối ưu PSI miễn phí chỉ với vài Slot, thấy AE cmt khá nhiều nên cũng không nghĩ tới lượt mình. Hôm sau đánh liều inbox 1 phen xem sao thì may mắn được đưa vào danh sách. Vài ngày sau được Team Vietnix liên hệ và hỗ trợ.
Kết quả đạt được:
• Điểm xanh lè xanh lét
• Tốc độ tải trang nhanh hơn hẳn
• Các chỉ số cũng được cải thiện đáng kể
• Và mình tin rằng với việc PSI được cải thiện cũng thúc đẩy những thứ khác đi lên theo!
Mình thực sự hài lòng với dịch vụ của Vietnix và muốn giới thiệu đến tất cả mọi người:
• Dịch vụ Wordpress Hosting: Tốc độ nhanh, ổn định, bảo mật cao, hỗ trợ kỹ thuật 24/7. (https://vietnix.vn/wordpress-hosting/)
• Dịch vụ Business Hosting: Dung lượng lớn, phù hợp cho website có lượng truy cập cao, tích hợp nhiều tính năng cao cấp. (https://vietnix.vn/business-hosting/)
Đặc biệt, Vietnix đang có chương trình ưu đãi:
• Giảm giá 20% trọn đời khi nhập code THIENTONG_PAGESPEED tại trang thanh toán (Chu kỳ 12 tháng trở lên)
• Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website
Cám ơn Vietnix một lần nữa!
#Vietnix #Vanvoiminhhoa #Pagespeedinsight
Trước khi tối ưu
Sau khi tối ưu
Thiện Nguyễn - CEO SEO Dạo

5 Tháng 3 lúc 16:21

·

CORE WEB VITAL YẾU TỐ XẾP HẠNG TÌM KIẾM SEO
Core Web Vitals là một tập hợp các chỉ số đo lường hiệu suất của trang web từ góc độ người dùng, được Google sử dụng để đánh giá trải nghiệm người dùng trên các trang web. Các chỉ số chính bao gồm:
– Largest contentful paint (LCP): Tốc độ render của page. Mục tiêu là dưới 2,5 giây.
– First input delay (FID): Tốc độ phản hồi của website với tương tác của người dùng. Mục tiêu là dưới 100ms.
– Cumulative Layout Shift (CLS): Độ ổn định của bố cục trang. Mục tiêu là dưới 0.1.
Tất cả các chỉ số này đo lường các khía cạnh quan trọng của trải nghiệm người dùng trên trang web. Google đã công bố rằng từ tháng 5 năm 2021, các Core Web Vitals sẽ được sử dụng làm một trong các yếu tố đánh giá trong việc xếp hạng trang web trên kết quả tìm kiếm. Do đó, hiểu và cải thiện các Core Web Vitals là rất quan trọng đối với SEO.
Tóm lại, Core Web Vitals không chỉ giúp cải thiện hiệu suất và xếp hạng trang web trên công cụ tìm kiếm, mà còn cải thiện trải nghiệm của người dùng khi họ truy cập và tương tác với trang website.
P/s: mình đang có gói hỗ trợ đặc biệt cho anh em tối ưu tốc độ bên VIETNIX:
– Giảm 20% lifetime dịch vụ Hosting Business và Hosting Wordpress chu kỳ 12 tháng trở lên.
– Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website.
Anh em có nhu cầu đăng ký qua bạn Vietnix Trung này nhé và nhập mã SEODAO_PAGESPEED để được ưu đãi nhé.😁
Trước khi tối ưu
Sau khi tối ưu SEO Dạo
Icharm review

5 Tháng 3 lúc 15:43

·

[Mình vừa được hỗ trợ tối ưu page speed website]
Trước khi được tối ưu, web của mình điểm rất thấp, đặc biệt là mobile chỉ có 39. Cơ duyên thế nào lúc lướt face lại va phải chương trình tối ưu pagespeed bên Vietnix.
Sau khi được Trần Hoàng Phúc và team Vietnix hỗ trợ nhiệt tình, điểm web vọt lên 98 99 (như hình bên dưới). Dùng thử web thì thấy quá là mượt, 10 điểm cho team Vietnix.
Nói thật thì mình thật sự ấn tượng về sự nhiệt huyết, tận tâm và rất chuyên nghiệp bên Vietnix.
Anh em có nhu cầu về hosting hay có vấn đề về website như:
1. Web load chậm
2. Khách rời web vì đợi tải nội dung, hình ảnh lâu
3. Hay tất tần tật mọi thứ về website
THÌ LIÊN HỆ NGAY VIETNIX NHÉ!
Và đừng quên dùng pass “ICHARM_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting. Quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
Trước khi tối ưu
Sau khi tối ưu
Hoàng Nguyễn

29 Tháng 2 lúc 17:04

·

Xin chào mọi người! Vừa rồi mình có sử dụng dịch vụ tối ưu website, tăng tốc độ tải trang pagespeed của Vietnix kết quả trên cả tuyệt vời nên mình viết bài này để chia sẻ thông tin với các bạn.
Lý do mình chọn dịch vụ tối ưu tốc độ website của Vietnix:
✅ Đội ngũ chuyên gia giàu kinh nghiệm: Đã tối ưu thành công cho hàng nghìn website trong nhiều lĩnh vực khác nhau. Các bạn nhân viên rất thân thiện, nhiệt tình và chủ động trong quá trình làm việc để cập nhật tiến độ.
✅ Quy trình chuyên nghiệp:
– Kiểm tra và phân tích: Vietnix sử dụng các công cụ tiên tiến để kiểm tra và phân tích tốc độ website của bạn.
– Xác định nguyên nhân: Vietnix xác định nguyên nhân khiến website tải chậm và đưa ra giải pháp tối ưu phù hợp.
– Tối ưu hóa website: Vietnix áp dụng các kỹ thuật tối ưu tiên tiến nhất để tăng tốc độ tải trang.
– Báo cáo kết quả: Vietnix cung cấp báo cáo chi tiết về kết quả tối ưu hóa website.
Công nghệ tiên tiến: Vietnix sử dụng các công nghệ tối ưu mới nhất như LiteSpeed, LSCache, Memcached, Redis, v.v.
✅ Cam kết kết quả: Vietnix cam kết tăng tốc độ website của bạn lên tối thiểu 90%.
✅ Giá cả cạnh tranh: Vietnix cung cấp dịch vụ tối ưu tốc độ website với mức giá cạnh tranh nhất trên thị trường.
📣 Để đăng ký sử dụng dịch vụ tối ưu tốc độ website và các dịch vụ khác như hosting, vps, domain… các bạn có thể đăng ký tại https://portal.vietnix.vn/aff.php?aff=57 hoặc Inbox cho sếp Vietnix Trung nhé.
Các bạn có thể kiểm tra tốc độ trang của mình https://lasan.edu.vn hoặc một vài trang khác đã sử dụng dịch vụ của Vietnix như sau:
https://pagespeed.web.dev/…/https…/v8beqewyt2…
https://pagespeed.web.dev/…/https…/etiohjvtl4…
https://pagespeed.web.dev/…/https…/yczuqpw6d1…
https://pagespeed.web.dev/…/https…/xf9y65kuzk…
https://pagespeed.web.dev/…/https…/fdrsms15en…
https://pagespeed.web.dev/…/https…/s7p9cgzeri…
Trước khi tối ưu
Sau khi tối ưu
Dũng cá xinh

30 Tháng 1 lúc 19:09

·

[Đỉnh]
Em có dùng hosting, vps, cloud vps, cloud server, dedicated server của rất nhiều bên từ trong nước đến nước ngoài để hosting khoảng 2,000+ domain. Mỗi bên đều có ưu nhược khác nhau, nhưng có 1 số bên đặc biệt “bá đạo”, trong đó có: Vietnix!!!!

Lần đầu tiên em được cả CEO Hưng Nguyễn lẫn Master về dev Vietnix Trung của 1 đơn vị hàng đầu liên quan đến Hosting, Server support từ A – Z (từ Zalo, Tele, đến FB và cả Phone)

Em có khá nhiều web dạng Big Data (bài, ảnh, database, data) lên đến hàng trăm Gb. Càng to thì nó càng có nhiều vấn đề về phần phản hồi ban đầu (nhược điểm cố hữu của php wordpress so với nativejs, reactjs, html, headless,…), và anh em Vietnix có nhã ý hỗ trợ xử lý phần Speed Insight này.

Kết quả thực sự kinh ngạc, từ cách trao đổi đến xử lý vấn đề, cut off những cái cần cut off, xử lý rất sâu vấn đề và gợi ý rất nhiều ý tưởng optimize hệ thống!!!! Thực sự quá hài lòng về kết quả cũng như cách tương tác của các đầu tầu bên Vietnix ^^!!!

Nhân cơ duyên được kết nối với những cao thủ của Vietnix, em xin chia sẻ và lan tỏa để nhiều anh em có cơ hội được sử dụng những dịch vụ tốt nhất với giá vô cùng hợp lý!!!!

1 – Với anh em chưa có hosting, em đặc biệt recommend sử dụng hosting bên Vietnix:
– Sử dụng mã DUNGCAXINH_PAGESPEED sẽ được giảm 20% trọn đời (lifetime luôn)
– Áp dụng các gói Hosting Business, Hosting wordpress và reg 1 năm trở lên
– Anh em chưa biết cách reg thì còm men hoặc ib để em hướng dẫn hoặc nhờ các bạn bên Vietnix support từ A – Z

2 – Anh em có hosting rồi và muốn build blog hoặc web = wordpress mà chưa có giao diện thì nhân tiện em đang có tài khoản Premium bên Envato, em sẽ tặng bất kỳ giao diện nào có trên Envato Themes (Link em để dưới còm men) ạ. Cả nhà còm hoặc ib em Themes mà mọi người “chim ưng”, em sẽ cho anh em tải về, up drive và gửi ạ!!! (Chương trình này kéo dài đến ngày 29 tết âm lịch ạ)

3 – BEST NHẤT luôn!!!! Anh em nào mua hosting dùng mã DUNGCAXINH_PAGESPEED sẽ được tối ưu 100 điểm tốc độ cho 1 web (đây là ưu đãi riêng của CEO Hưng Nguyễn dành cho bạn bè của #dungcaxinh ^^) (Giá trị nhất là cái vụ số 3 này anh chị em nhé ^^), cơ hội vàng để move về đơn vị hosting uy tín là đây ^^!!!!

Một lần nữa xin chân thành cám ơn 2 đồng chí em: Hưng Nguyễn và Vietnix Trung đã giải được một bài toán khó cho các trang WP Big data mà anh loay hoay bao lâu nay chưa tìm ra đáp án!!! Chúc Vietnix ngày càng phát triển và có một năm 2024 đại đại thắng nhé ^^ !!!!!
#SEO #Vietnix #dungcaxinh

Trước khi tối ưu
Sau khi tối ưu
Hiếu AI

2 Tháng 2 lúc 21:06

·

UY TÍN – TẬN TÂM – TỐC ĐỘ

3 từ trên là vẫn chưa đủ để nói về quy trình làm việc cực chuyên nghiệp của team Vietnix.Chuyện là mình có con website chính đang có lượt truy cập organic hàng ngày cũng tương đối (hình 1)

Vấn đề là, con site này đang nằm trên hosting dùng chung nên tốc độ load chưa nhanh, tốc độ load chưa nhanh thì trải nghiệm visitor chưa tốt, trải nghiệm visitor chưa tốt thì tỷ lệ chuyển đổi ra đơn hàng kiểu gì thì kiểu cũng sẽ bị ảnh hưởng.

Biết rõ là đang mất tiền nhưng không biết xử lý như lào, nghĩ mà cay.

Đang loay hoay thì vận may nó tới, hôm qua đang lướt phở bò thấy a Nguyễn Việt Dũng đăng bài, rảnh nên thả cái comment hóng hớt, ai ngờ ngoằng phát thấy ông Dũng tạo nhóm với Vietnix Trung luôn.

Ae Vietnix thì siêu tốc độ, lập tức lấy thông tin vào việc, không hỏi han lằng nhằng, không kỳ kèo chốt đơn dù lúc đấy cũng đang đêm muộn.
Sáng hôm sau dậy vẫn còn đang lơ ngơ mở điện thoại check tin nhắn thì đã thấy ae Vietnix báo xong việc, trong khi mình vẫn chưa biết có chuyện gì xảy ra @@.

Được cái bấm thử website thì thấy load siêu nhanh, chưa tới một giây là thông tin các thứ hiện hết. Quá phê, thả con ảnh trước sau (hình 2,3) để ace tiện đối chiếu nhé. Thế này thì mình gửi gắm nốt 15 em website còn lại cho team Vietnix thôi chứ không cần nghĩ ngợi gì nữa. 10/10.

Nên là:

  1. Anh chị em muốn có một con website tốc độ load nhanh như tốc độ trở mặt của nyc – Dùng ngay dịch vụ hosting của Vietnix
  2. Anh chị em có website rồi muốn tìm bên hosting uy tín, chuyên nghiệp hỗ trợ không quản ngày đêm – Liên hệ ngay Vietnix Trung
  3. Anh chị em quan tâm đến trải nghiệm khách hàng, từ những cái nhỏ nhất như tăng tốc độ website – Better call Vietnix Trung

Và đừng quên dùng pass “HIEUAI_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting, quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
#SEO #Vietnix #hieuai

Website
Trước khi tối ưu
Sau khi tối ưu

Chỉ số tăng trưởng

Điểm Desktop

100 (+43)

Điểm Mobile

100 (+74)

Core Web Vitals

Passed

Lĩnh vực

AI