Hướng dẫn xây dựng server tại nhà dùng làm VPS chạy website. – Tien’s Blog

Đã khi nào bạn từng nghĩ mình hoàn toàn có thể tự tạo hosting tại nhà hay biến máy tính của mình thành VPS hay chưa ? Trước đây mình rất nhiều lần muốn làm cái server tại nhà để chạy website cho đở tốn 5 USD / tháng thuê vps ở những dịch vụ phân phối. Do điều kiện kèm theo thiết bị và thông số kỹ thuật server tại nhà rất phức tạp nên mãi tới năm 2020 mới làm được cái server tại nhà để chạy website. Nói server cho nó oách chứ thật ra là cái máy tính NUC cài Ubuntu và Cyber Panel .
Demo anh chị test thử : https://bdsvip.tientv.xyz

Về hiệu năng, mình hoàn toàn hài lòng khi host website tại nhà. Tuy nhiên về tính ổn định thì không thể do có nhiều vấn đề cần phải quan tâm và không dễ khắc phục. Ví dụ trường hợp mình hay gặp phải nhất là mất điện …

1. Chuẩn bị trước khi xây dựng server tại nhà

Phần cứng:

  • Máy tính, laptop, Nuc kết nối mạng và có thể chạy liên tục dùng làm server.
  • USB 4Gb

Kiến thức:

  • Domain và hosting
  • Biết sử dụng dịch vụ của Cloudflare.com
  • Cách thức kết nối SSH: Xem hướng dẫn cài và sử dụng mobaxterm
  • Nat modem nhà mạng đang sử dụng tại nhà.
  • Tạo USB boot cài hệ điều hành Linux: Xem hướng dẫn tạo usb boot Ubuntu

Chuẩn bị phần mềm

Hệ điều hành: Bạn có thể sử dụng CentOS, Ubuntu Server, Fedora,…. tuy nhiên trong bài này mình sẽ cài Ubuntu Server.

  • Ubuntu Server 20.04 LTS: https://releases.ubuntu.com/20.04
  • CentOS 7, 8: https://www.centos.org/download
  • Fedora Server: https://getfedora.org/en/server/download

Lưu ý: Khi tải Ubuntu các bạn nhớ chọn bản Server install image

Control Panel cho VPS: Các bạn có thể sử dụng các Panel trả phí như Direct Admin, Cpanel … để được hỗ trợ tốt hơn và bảo mật cao hơn. Tuy nhiên, với server tại gia này các bạn nên dùng Free là tốt nhất. Mình đề xuất aapanel hoặc Cyber Panel. Mình đã sử dụng qua 2 Panel free này tự thấy nhanh ổn định, bảo mật tốt, riêng Cyber Panel thì phân user tốt hơn.

Trong bài này mình sẽ sử dụng Cyberpanel : https://cyberpanel.net
Các panel không lấy phí khác : https://www.aapanel.com, https://www.webmin.com, http://www.sentora.org

2. Cài đặt hệ điều hành Ubuntu server

Để cài Ubutum server thì bạn tải ubuntu và tạo usb boot setup Ubuntu theo hướng dẫn : Xem hướng dẫn tạo usb boot Ubuntu

Lưu ý : Trước khi cài bạn nên xóa hàng loạt phân vùng trong SSD

Gắng USB boot cài Ubuntu vào máy tính chạy khởi động boot từ USB. Nếu thành công xuất sắc bạn sẽ nhận được màn hình hiển thị chọn ngôn từ cài Ubuntu như hình sau :
Ubuntu 64 Bit 2021 12 07 20 49 29Chọn English và Enter để tiếp tụcChọn tiếp English rồi Enter. Enter thêm lần nữa đến bước tiếp theo
Ubuntu 64 Bit 2021 12 07 20 52 32

Màn hình này hỏi bạn có cài cập nhật Ubuntu không.Bạn chọn như hình đề qua bước tiếp theo
Ubuntu 64 Bit 2021 12 07 20 52 45Chọn bàn phím cứ để mặc địnhBấm Done để qua bước tiếp theo. Tại đây bạn nên cắm dây mạng hoặc liên kết Wifi trước để nó nhận được IP từ modem luôn, khỏi phải thông số kỹ thuật bằng tay thủ công .
Ubuntu 64 Bit 2021 12 07 20 52 57Kết nối mạng để Ubuntu tự nhận IP

Lưu ý : ghi lại IP mạng để khi cài xong sử dụng nhe. Ip của mình ở trên là : 192.168.142.141

Bấm Done để qua bước tiếp theo
Ubuntu 64 Bit 2021 12 07 20 53 08Cài Proxy, mình ko sử dụng nên Done tiếp tụcUbuntu 64 Bit 2021 12 07 20 53 17Cứ để nguyên bấm Done tiếp tụcUbuntu 64 Bit 2021 12 07 20 53 25Chọn phân vùng SSD để sử dụngỞ hình trên mình sử dụng ổ đĩa 30GB. Các bạn xem có hiển thị hết dung tích SSD rồi bấm Done để qua bước tiếp theo .
Ubuntu 64 Bit 2021 12 07 20 56 30Tùy chỉnh phân vùng cài UbuntuLưu ý : Bước này mặc định Ubuntu sẽ không sử hết dung tích SSD của bạn. Nên bạn cần phải chỉnh tối đa dung tích SSD như ở phần Gạch chân màu đỏ hình trên. Ổ đĩa mình 30GB, chia cho boot 1 GB còn 28,99 GB. Bấm vào dòng gạch đỏ và chỉnh dung tích bằng dòng trên nó là được. -> bấm Done để qua bước tiếp theo
Ubuntu 64 Bit 2021 12 07 20 58 09Bước này là nhập những thông tin cho server .

  • Your name: Nhập tên tùy ý, không nhập ký tự đặt biệt
  • Your server’s name: Nhập tên server viết liền không dấu
  • Pick a username: Tên đăng nhập quản trị server, viết liền không dấu, không nhập chữ admin
  • Password: Mật khẩu đăng nhập server, nhập xong nhớ nhé.

Bấm Done qua bước sau đó
Ubuntu 64 Bit 2021 12 07 20 58 36Đánh dấu cài SSH

Bước này bạn dùng phím Space để đánh dấu lự chọn cài đặt: Install OpenSSH Server

Bấm Done để qua bước tiếp

Ubuntu 64 Bit 2021 12 07 20 58 45Để mặc định ko chọn gì cảBước này cứ để mặc định và bấm Done nhé
Quá trình thiết lập này diễn ra khoảng chừng 15 phút hơn, sau khi thiết lập thành công xuất sắc chọn Reboot Now để khởi động lại máy ( nhớ rút USB ra ) .
Ubuntu 64 Bit 2021 12 07 21 09 11Khởi động lại là xong đã cài thành công xuất sắc Ubuntu Server

3. Cài đặt Cyber Panel để quản lý server

Để thực thi setup Cyber Panel thì mình liên kết SSH vào server bầng Mobaxterm để cài cho dể. Tiện lợi copy và Paste .
IP server của mình ở trên là : 192.168.142.141 – Các bạn xem hướng dẫn thiết lập Mobaxterm mình có để linh ở đầu bài nhé .
Image 8Sau khi đăng nhập vào SSH điền User và Pass đã tạo ở phần cài Ubuntu ta được như hình dưới
Screenshot 2021 12 08 103536Sau khi SSH vào rồi, bạn gõ lệnh sudo để cấp quyền root thiết lập Cyber Panel .

sudo su -

Image 9Dán lệnh setup Cyber Panel vào

sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)

Đợi một lát, chọn số 1 để setup CyberPanel

Process check completed…
CyberPanel Installer v2.0
1. Install CyberPanel.
2. Install Addons.
3. Exit.
Please enter the number[1-3]: 1

Bạn hãy chọn : Chọn 1 Cài CyberPanel với OpenLiteSpeed

CyberPanel Installer v2.0
RAM check : 81/991MB (8.17%)
Disk check : 1/25GB (6%) (Minimal 10GB free space)
1. Install CyberPanel with OpenLiteSpeed.
2. Install Cyberpanel with LiteSpeed Enterprise.
3. Exit.
Please enter the number[1-3]: 1

Chọn y và enter để cài Full

Install Full service for CyberPanel? This will include PowerDNS, Postfix and Pure-FTPd.
Full installation [Y/n]: y

Bấm enter để mặc định không cài Remote SQL nhé

Do you want to setup Remote MySQL? (This will skip installation of local MySQL)

(Default = No) Remote MySQL [y/N]:

Bước này cài đặt Pass của Cyber (Khác với pass của Ubuntu) bấm enter để mặc định là 1234567 hoặc bạn nhập pass của bạn vào: Mình để mặc định và đổi sau

Please choose to use default admin password 1234567, randomly generate one (recommended) or specify the admin password?
Choose [d]fault, [r]andom or [s]et password: [d/r/s]

Tiếp theo, nó sẽ hỏi bạn một số thứ như: cài Memcached, LiteSpeed Memcached, Redis. Mình chọn y để cài đặt tất cả.

Please choose to use default admin password 1234567, randomly generate one (recommended) or specify the admin password?
Choose [d]fault, [r]andom or [s]et password: [d/r/s] r (Lưu ý: chọn R để random pass admin)
Admin password will be provided once installation completed…
Replace JS/CSS files to JS Delivr?
This may improve panel loading speed in Asia Pacific region…
Please select [y/N]: y
Install Memcached extension for PHP?
Please select [y/N]: y
Install LiteSpeed Memcached?
Please select [y/N]: y
Install Redis extension for PHP?
Please select [y/N]: y
Install Redis?
Please select [y/N]: y

Cuối cùng, bạn chờ quá trình cài đặt khoảng 10 – 15 phút, sau khi cài CyberPanel thành công bạn sẽ nhận được thông tin đăng nhập như sau:

Screenshot 2021 12 08 111009

Ở chỗ visit: trong hình là IP của bạn ngoài môi trường internet, bây giờ bạn chưa nat port ra thì chưa vào được. Vì thế, bạn cần thay đổi IP thành IP cục bộ (IP nãy giờ SSH đang sử dụng của mình: 192.168.142.141).

Như vậy bạn đã cài đặt CyberPanel cho VPS xong rồi đó. Bây giờ đăng nhập vào CyberPanel thông qua 192.168.142.141:8090 bằng các thông tin trên.

Image 12
Xem thêm : Hướng dẫn thiết lập bảo mật thông tin https cho trang quản trị trên CyberPanel

3. NAT Port Modem cho server

( NAT ) port được cho phép tài liệu đi qua thiết bị mạng như modem, router wifi …, mà không bị ngăn ngừa bởi tường lửa được cho phép domain về IP nhà bạn thì domain đó mới truy vấn được server web của bạn đã cài .
NAT Port trên những modem : Cái này tìm hiểu thêm thôi không phải modem nào cũng như nhau và để truy vấn được những thiết lập này bạn cần biết thông tin tài khoản admin đăng nhập modem nữa nhé ( không có thì xin nhà mạng ) .

Bước 1: Truy cập vào modem đang sử dụng. Modem nhà mình đang sử dụng là của Viettel có địa chỉ truy cập, user và pass ghi ở dưới modem: 192.168.1.1

Bước 2: Gán Ip mặc định cho con server của mình

  • Bạn vào phần Lan trong Modem tìm Ip mà thiết bị của mình nhận lúc cài ubuntu như của mình là: 192.168.142.141. Xem địa chỉ Mac của máy server là gì. Ví dụ: 54:27:1e:e4:1e:9d
  • Vào phần DHCP Binding để gán IP cho máy server của mình. Để khi khởi động máy server là thì mặc định modem sẽ cấp IP đã gán và Server. Như vậy thì những phần Nat của chúng ta không bị lỗi nhé.

Image 13Ví dụ: máy của mìnhLưu ý : Bạn nên chọn dãy IP ít sử dụng theo modem để gán .

Bước 3: Nat Port

  • Vào Security > DMZ Host (Tùy mỗi modem mà tìm DMZ nhé): Mục này mình phải điền Ip của server đã gán ở trên. Khi truy cập bên ngoài vào mạng nhà mình thì mặc định chuyển tới máy server thay vì các máy tính khác trong hệ thống mạng nhà mình.

Image 14

  • Chuyển qua Port Forwarding để cho Nat các Port dưới.
Please make sure you have opened following port for both in/out:
TCP: 8090 for CyberPanel
TCP: 80, TCP: 443 and UDP: 443 for webserver
TCP: 21 and TCP: 40110-40210 for FTP
TCP: 25, TCP: 587, TCP: 465, TCP: 110, TCP: 143 and TCP: 993 for mail service
TCP: 53 and UDP: 53 for DNS service

Screenshot 2021 12 08 115910Lưu ý : Hình trên là ví dụ chuyển Port 8090. Bạn phải làm lần lượt những port ở trên nhé .
Như vậy là Nat Port xong bạn vào đây để kiểm tra Port nát thành công xuất sắc không. Như hình dưới là thành công xuất sắc
Screenshot 2021 12 08 120154

4. Tự động cập nhật IP động cho tên miền.

Internet ở mái ấm gia đình thì mặc định IP WAN ( Địa chỉ IP của mình ngoài internet ) sẽ biến hóa liên tục. Vậy nên khi bạn dùng tên miền để truy vấn vào Server tại nhà thì bắt buộc phải chỉnh DNS khi IP WAN đổi khác. Mục này hướng dẫn update tự động hóa DNS cho tên miền .

Lưu ý : Nếu nhà bạn nào có điều kiện kèm theo sài IP tỉnh thì bỏ lỡ bước này

Để hoàn toàn có thể đổi IP tự động hóa thì mình dùng Cloudflare để triển khai. Ưu điểm của Cloudflare là update DNS cực kỳ nhanh và có API link để triển khai .

Cài đặt và cấu hình Cloudflare

Bước 1 : Đăng ký thông tin tài khoản và Chuyển DNS tên miền về Cloudflare. com -> Search google vài bước là xong
Bước 2 : Lấy API Cloudflare -> Sau khi add tên miền cần đưa về host thì bạn sẽ thấy API
Screenshot 2021 12 08 122712Bước 3 : Truy cập vào SSH server để setup và thông số kỹ thuật chạy update IP như sau

git clone https://github.com/LINKIWI/cloudflare-ddns-client.git

Image 16

cd cloudflare-ddns-client

Image 17

sudo apt install python-is-python3

Image 18

sudo make install
cloudflare-ddns --configure
  • Choose [T]oken or [K]ey: chọn chữ K rồi Enter.
  • Email: email đăng nhập cloudflare của bạn
  • API Key: dán API Key đã lấy từ bước 2 vào.
  • Comma-delimited domains: nhập domain cần cập nhật IP vào, nhiều domain thì cách nhau bằng dấu chấm phẩy (,)

Khi nhận được thông báo Configuration file written…. successfully. Gõ tiếp lệnh sau để cập nhật IP vào domain của bạn

cloudflare-ddns --update-now

Thêm cron job tự động cập nhật IP

crontab -e

Image 19Chọn 1 liên tục nhé
Trong giao diện chỉnh sửa crontab, bạn thêm dòng này vào cuối và lưu lại. Dòng này mang ý nghia là sau 5 phút sẽ update IP một lần, những bạn hoàn toàn có thể đổi khác theo ý thích nhé .

*/5 * * * * /usr/local/bin/cloudflare-ddns --update-now

Screenshot 2021 12 08 123816 1

Bấm Ctrl + Z để thoát khỏi trình soạn thảo.

Cuối cùng : Khởi động lại server .
Để kiểm tra thì bạn thử tắt Modem và xem CloudFlare có update IP không nhé .
Xem thêm : Hướng dẫn thiết lập bảo mật thông tin https cho trang quản trị trên CyberPanel

Lời kết

Như vậy là mình đã hướng dẫn những bạn những bước cụ thể nhất để thiết kế xây dựng một server riêng tại nhà ship hàng cho việc nghiêng cứu và vọc vạch rồi. Về trong thực tiễn bạn hoàn toàn có thể dùng server này để chạy những web demo cho khác hàng hoặc dùng để làm VPS chính cho những web của bạn cũng được .

5
2
votes

Đánh giá bài viết


Có thể bạn quan tâm
© Copyright 2008 - 2016 Dịch Vụ Bách khoa Sửa Chữa Chuyên nghiệp.
Alternate Text Gọi ngay