Đặt máy chủ tại nhà, tại sao không? Chỉ tốn chút điện thôi

0
56

Chào các bạn, thời tiết bây giờ cũng đã hơi lành lạnh và chúng ta sắp được đón năm mới 2018 rồi. Hôm nay ngồi buồn mình viết bài hướng đã các bạn đặt máy chủ tại nhà, giải pháp giúp các bạn có thể tận dụng máy tính không dùng đến hoặc là máy tính cũ và đường truyền mạng hiện có để có Server riêng cho mình. (Các bạn có thể làm máy chủ Game, máy chủ Web, máy chủ cho ứng dụng hoặc là máy chủ lưu trữ dữ liệu v,v…).

Tại sao chúng ta lại nghĩ đến việc đặt máy chủ tại nhà:

  • Đỡ tốn chi phí thuê máy chủ
  • Tận dụng được máy tính có sẵn hoặc dư thừa để phục vụ công việc
  • Sở hữu một “Dedicated Server” đúng nghĩa (các bạn có bàn phím, chuột, nguồn điện, các nút bấm khởi động lại, bật, tắt và đường truyền mạng luôn sẵn sàng, không phải chia sẻ tài nguyên cho một người dùng khác, không sợ bị khóa tài khoản cũng như là Suspended dịch vụ, thêm bớt ổ cứng để tăng dung lượng lưu trữ,…).
  • Nâng cấp phần cứng dễ dàng cũng như toàn quyền quyết định số phận máy chủ đã thiết đặt
  • Và còn một số lợi ích khác nữa mà mình chưa nói đến ở đây bởi các bạn có thể biết được sau khi thử nghiệm mô hình này.

Tuy nhiên đằng sau đó có một số bất lợi:

  • Bạn phải chi trả cho hóa đơn tiền điện cao hơn bình thường
  • Máy tính cá nhân mà bạn dùng không phải sản xuất với mục đích chạy ngày đêm liên tục và gánh vác những tác vụ nặng do đó khả năng hư hỏng cũng cao hơn và dữ liệu sẽ không an toàn lắm nếu các bạn không có một giải pháp dùng Raid hoặc là lưu trữ dữ liệu thường xuyên.
  • Tốc độ mạng ở gia đình và cá nhân và ngay cả công ty cũng không thể sánh bằng đặt máy chủ ở Datacenter hoặc các công ty cung cấp dịch vụ.
  • Phòng bạn đặt máy tính để làm máy chủ (server) sẽ nóng như phòng trọ sinh viên ở Sài Gòn cho xem.
  • Còn một số nữa nhưng mình không nói ra ở đây, các bạn tự trải nghiệm nhé… 🙂

Vâng chúc ta bắt tay vào làm thôi. Những gì bạn cần đó là:

  1. Máy tính
  2. Đường truyền mạng (nên dùng cáp Ethernet, dùng Wifi không ổn định lắm).
  3. Tiền

Đó là những thứ cần thiết nhất mà chúng ta phải có.

Việc các bạn sử dụng máy chủ để làm gì hay phục vụ nhu cầu gì thì mỗi người khác nhau.

Thiết đặt Dynamic DNS

Thiết đặt Dynamic DNS cho máy chủ chúng ta, đối với các bạn chạy Windows Server thì đơn giản chỉ cần tải về cài đặt và thiết đặt rất đơn giản. Ở đây mình nói đến các bạn sử dụng Linux:

Sau khi “make install” nếu có phát sinh lỗi như  “make not found” hay là “missing gcc” thì đó là do máy tính các bạn chưa cài đặt gcc compiler. Để cài đặt các bạn chạy các dòng lệnh:

Chạy lại lần nữa “make install” nếu bạn gặp phải lỗi trước đó.

Đến đây các bạn điền username và password trên trang NoIP vào.

Sau khi mình thiết lập thành công:

Để thiết đặt lại lần nữa cho Client, các bạn chạy lệnh:

Vâng và tới đây là chúng ta đã thiết đặt xong Dynamic DNS cho máy chủ của chúng ta rồi.

Đối với một số bạn không muốn dùng đến lệnh Linux hay cảm thấy khó khăn và rườm rà. Các bạn có thể sử dụng tính năng DDNS trên Router của các bạn. Các bạn vào phần cài đặt “cục mạng” của các bạn mà mày mò nhé. Tất nhiên là chúng ta cần phải sử dụng đến dịch vụ từ bên thứ 3 như NoIP hay DYN, Afraid.org, He.net,… Có dịch vụ trả tiền, có dịch vụ miễn phí, các bạn cứ theo nhu cầu mà sử dụng thôi.

Nếu các bạn có một tên miền và trỏ tên miền này đến máy chủ đặt tại nhà thông qua dịch vụ Dynamic DNS miễn phí thì các bạn tạo một Record CNAME trong quản lý tên miền trỏ về địa chỉ tại dịch vụ Dynamic DNS đã cung cấp cho chúng ta (như trong trường hợp mình là trỏ về vngeek.ddns.net).

Tuy nhiên vấn đề được đặt ra là đối với các bạn sử dụng giao thức bảo mật SSL thì sẽ phát sinh lỗi bởi vì SSL cần phải được thiết đặt bởi Record A, tên miền hoặc subdomain của các bạn phải trỏ trực tiếp đến IP của máy chủ. Để khắc phục được điều này các bạn có lựa chọn một là trả tiền cho nhà cung cấp để được quản lý tên miền của chính mình với Dynamic DNS chứ không phải thông qua tên miền miễn phí mà nhà cung cấp dịch vụ cấp cho bạn từ trước. Tuy nhiên nếu các bạn muốn miễn phí thì sao?

Đơn giản đó là sử dụng dịch vụ cho phép trỏ tên miền của bạn trực tiếp đến máy chủ của các bạn thông qua Dynamic DNS mà họ cung cấp. Các bạn có thể dùng của

  • Dynu
  • Afraid.org

Trên Windows thì mình không nói, mình chỉ nói đến máy chủ các bạn sử dụng Linux thôi (đa phần máy chủ Linux vẫn được dùng phổ biến hơn máy chủ Windows vì hiệu năng của nó mang lại cũng như tính mở và miễn phí, lại có thể chạy trên nhiều nền tảng ảo hóa và yêu cầu phần cứng không quá cao, do đó các bạn có thể thấy rằng giá thuê máy chủ Windows bao giờ cũng cao hơn máy chủ Linux với cùng cấu hình tương đương nhau).

Để cập nhật IP tự động mình khuyến khích các bạn sử dụng ddclient.

Để cài đặt ddclient, đơn giản dùng dòng lệnh:

ddclient hỗ trợ rất nhiều dịch vụ Dynamic DNS cho các bạn tha hồ mà lựa chọn.

Các bạn lựa chọn nhà cung cấp dịch vụ mà thiết lập cho riêng mình.

Cấu hình ddclient để cập nhật IP:

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

  • Các bạn để ý phần “protocol” có thể thay đổi tùy theo nhà cung cấp.
  • Và ở dòng: use=web, web=checkip.dyndns.com/, web-skip=’IP Address’

Dòng này sẽ kiểm tra IP Wan của máy tính bạn kết nối vào Internet thông qua ISP và lấy IP trả về để summit lên trang dịch vụ Dynamic DNS.

Dòng lệnh ở trên kiểm tra hoạt động của ddclient.

Đối với một số bạn thiết lập cho nhiều hosts, có thể sử dụng cấu hình như sau tại tập tin /etc/ddclient.conf

Các bạn đừng quên cấu hình cho hosts tại trang quản lý của nhà cung cấp dịch Dynamic DNS nhé.

Vì không muốn thay đổi Name Server của tên miền VnGeek.com mà trước đó mình đã thiết lập tại CloudFlare cho nên mình tạo hai Record NS trong CloudFlare dành riêng cho subdomain của mình.

Thật sự thì rất ít khi chúng ta dùng đến NS Record nhưng giờ là lúc rất phù hợp để dùng đến nó, cũng may là CloudFlare cũng hỗ trợ miễn phí NS Record này.

Các bạn có khá nhiều lựa chọn dịch vụ, riêng mình dùng Zoneedit bởi trước đây mình dùng dịch vụ này từ hồi còn tập tành làm Game Server MU của Scfmt. Giờ quay lại cảm thấy cũng hơi bồi hồi, với lại được cái có nhiều Router cũng hỗ trợ Dynamic DNS của Zoneedit và từ đó đồng nghĩa với việc các bạn không cần phải cài đặt thêm Client để cập nhật IP tự động mỗi khi địa chỉ IP máy chủ của bạn thay đổi (cái này do ISP nhà mạng của bạn phân phát đến cho người dùng bởi số lượng IPv4 là có hạn, việc dùng IP tĩnh chỉ cần thiết cho cá nhân hay tổ chức có nhu cầu).

Cũng chính vì việc thay đổi IP liên tục cũng là nhược điểm lớn nhất khi các bạn đặt máy chủ tại nhà. Bởi giá thuê hoặc mua thêm 1 hoặc vài địa chỉ IP tĩnh còn đắt hơn cả việc các bạn bỏ tiền ra thuê một máy chủ đặt ở Datacenter ấy, trong khi đó chúng ta còn phải tốn thêm điện và chịu thêm rủi ro phần cứng có thể hao mòn và hư hỏng bất cứ lúc nào vì hệ thống chúng ta phải hoạt động liên tục.

Ngoài ra bạn có thể tận dụng Dynamic DNS được tích hợp vào Modem của các bạn.

Nếu không được tích hợp thì các bạn quay lại bước sử dụng Client để update IP nhé.

Chi phí xây dựng hệ thống

Hơi ngoài lề chút xíu, mình đã đầu tư hệ thống này tại nhà và chi phí ước tính như sau:

  • Router Alcatel: 1.100.000 VND
  • Dàn PC cũ: 5.500.000 VND
  • Cáp Ethernet Cat 6: 85.000 VND
  • Ổ điện loại tốt Husan: 100.000 VND
  • Mạng cáp quang Viettel: 200.000 VND/tháng (tốc độ 25Mbps)
  • Lưu điện Santalk (bảo vệ trường hợp cúp điện đột ngột hoặc đổi pha): 1.100.000 VND

Vậy mình chi hết 6.985.000 VND để “build” dàn máy chủ và hạ tầng mạng này. (Quá rẻ so với quy định).

Việc cài đặt phần mềm trên máy chủ thì đó là do đặc thù công việc của mỗi cá nhân và tổ chức nên mình không nói đến tại đây.

Tiếp theo đó là các bạn tiến hành mở Port Modem để bên ngoài những máy tính khác có thể kết nối vào.

Để mở port modem, các bạn có thể tham khảo các bài viết trên mạng nhé. Và mở một số Port phổ biến và cần thiết thôi nhé để bảo đảm an toàn bảo mật cho máy chủ và dịch vụ của các bạn dự định cung cấp cho người dùng:

Giao thức TCP/IP và các Port phổ biến

FTP over TLS/SSL

Protocol TCP/UDP Port Number
File Transfer Protocol (FTP)

(RFC 959)

TCP 20/21 Giao thức truyền dữ liệu FTP, cái này mỗi khi mua host các bạn sẽ được cung cấp để upload dữ liệu lên host.
Secure Shell (SSH)

(RFC 4250-4256)

TCP 22  Giao thức kết nối SSH để quản trị Linux từ xa.
Telnet

(RFC 854)

TCP 23  Giao thức Telnet thường được dùng để cung cấp những phiên giao dịch đăng nhập, giữa các máy trên mạng Internet, dùng dòng lệnh có tính định hướng người dùng. (Theo Wikipedia).
Simple Mail Transfer Protocol (SMTP)

(RFC 5321)

TCP 25 Giao thức SMTP là một chuẩn truyền tải thư điện tử qua mạng Internet.

(Theo Wikipedia).

Domain Name System (DNS)

(RFC 1034-1035)

TCP/UDP 53  DNS (viết tắt trong tiếng Anh của Domain Name System – Hệ thống tên miền) là một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền trên Internet.

(Theo Wikipedia).

Dynamic Host Configuration Protocol (DHCP)

(RFC 2131)

UDP 67/68  Dynamic Host Configuration Protocol (DHCP – giao thức cấu hình động máy chủ) là một giao thức cho phép cấp phát địa chỉ IP một cách tự động cùng với các cấu hình liên quan khác như subnet mark và gateway mặc định.

(Theo Wikipedia).

Trivial File Transfer Protocol (TFTP)

(RFC 1350)

UDP 69  TFTP là viết tắt của Trivial File Transfer Protocol, một giao thức truyền tải file, với chức năng rất cơ bản của FTP, được định nghĩa đầu tiên vào năm 1980. … Về bản chất, TFTP dựa trên UDP là giao thức không có bắt tay. Khác với TCP là cần phải có pair-socket, UDP không có khái niệm đó.

(Theo ngohaibac.net).

Hypertext Transfer Protocol (HTTP)

(RFC 2616)

TCP 80  HTTP (Tiếng Anh: HyperText Transfer Protocol – Giao thức truyền tải siêu văn bản) là một trong năm giao thức chuẩn về mạng Internet, được dùng để liên hệ thông tin giữa Máy cung cấp dịch vụ (Web server) và Máy sử dụng dịch vụ (Web client) là giao thức Client/Server dùng cho World Wide Web-WWW

(Theo Wikipedia).

Post Office Protocol (POP) version 3

(RFC 1939)

TCP 110  Post Office Protocol phiên bản 3 (POP3) là một giao thức tầng ứng dụng, dùng để lấy thư điện tử từ server mail, thông qua kết nối TCP/IP. POP3 và IMAP4 (Internet Message Access Protocol) là 2 chuẩn giao thức Internet thông dụng nhất dùng để lấy nhận email.

(Theo Wikipedia).

Network Time Protocol (NTP)

(RFC 5905)

UDP 123  NTP (Network Time Protocol – Giao thức đồng bộ thời gian mạng) là một giao thức để đồng bộ đồng hồ của các hệ thống máy tính thông qua mạng dữ liệu chuyển mạch gói với độ trễ biến đổi.

(Theo Wikipedia).

NetBIOS

(RFC 1001-1002)

TCP/UDP 137/138/139 NetBIOS đóng vai trò như một cổng giao tiếp chung nhằm giúp tạo kết nối hoặc từ chối các kết nối đến các dịch vụ của mạng.

(Theo dothanhyb.violet.vn).

Internet Message Access Protocol (IMAP)

(RFC 3501)

TCP 143 IMAP (tiếng Anh: Internet Message Access Protocol) là thế hệ mới của giao thức POP (Post Office Protocol). Nói một cách đơn giản, IMAP đặt sự kiểm soát email trên mail server trong khi nhiệm vụ của POP là tải toàn bộ thông điệp email về client server yêu cầu.

(Theo Wikipedia).

 

Hypertext Transfer Protocol over SSL/TLS (HTTPS)

(RFC 2818)

TCP 443 HTTPS, viết tắt của Hypertext Transfer Protocol Secure, là một giao thức kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet. Giao thức HTTPS thường được dùng trong các giao dịch nhạy cảm cần tính bảo mật cao.

(Theo Wikipedia).

Lightweight Directory Access Protocol over TLS/SSL (LDAPS)

(RFC 4513)

TCP/UDP 636 LDAP hay Lightweight Directory Access Protocol là một giao thức ứng dụng truy cập các cấu trúc thư mục.
FTP over TLS/SSL

(RFC 4217)

TCP 989/990 Giống như FTP nhưng an toàn và bảo mật hơn.

 

Bảng trên được tham khảo bởi trang: pearsonitcertification.com.

Đến đây thì các bạn có thể tương đối hoàn thành xong rồi phải không ạ?

Chúc các bạn thành công!

BÌNH LUẬN

Please enter your comment!
Please enter your name here