Trang chủ / Linux / Bài 6: Cấu hình mạng cho Ubuntu server 16.04 LTS

Bài 6: Cấu hình mạng cho Ubuntu server 16.04 LTS

Trong bài viết này mình sẽ hướng dẫn các bạn cấu hình mạng (network) cho Ubuntu server 16.04 LTS. Một phần thiết yếu của cuộc sống. Linux mà có mạng internet thì như cá gặp nước còn không có thì rất đau đầu.

Các dịch vụ liên quan.

Để cấu hình mạng cho Ubuntu kết nối được internet chúng ta cần chú ý các dịch vụ sau:

  • networking.service : nhiệm vụ của nó là up hay down các interface (card mạng) được liệt kê ở trong file /etc/network/interfaces. Nếu bạn quan tâm có thể đọc script của nó tại /lib/systemd/system/networking.service hoặc đọc thêm thông tin về nó bằng cách sử dụng lệnh:
  • NetworkManager.service : là một dịch vụ cho phép chúng ta quản lý network. Nó cung cấp cho cả giao diện đồ họa và cả giao diện command line (lệnh nmcli) để chúng ta cấu hình network.
  • systemd-networkd.service : cũng là một dịch vụ cho phép chúng ta quản lý network. Nó mới hơn NetworkManager.service và là một phần của systemd. Nó buộc chúng ta phải edit các file cấu hình kèm theo mới có thể cấu hình network cho hệ thống.
NetworkManager.servicesystemd-networkd.service là 2 phương pháp chính để quản lý network trong Ubuntu 16.04 LTS. Chúng ta chỉ cần lựa chọn sử dụng 1 trong 2 cái là được.

Mặc định thì khi cài đặt Ubuntu Desktop 16.04 LTS thì:

  • Dịch vụ networking.service và NetworkManager.service sẽ được active.
  • Còn dịch vụ systemd-networkd.service sẽ được load sẵn nhưng không active.

Còn cài đặt phiên bản Ubuntu Server 16.04 LTS thì:

  • Chỉ có mỗi dịch vụ networking.service được active thôi.
  • Dịch vụ NetworkManager.service sẽ không được cài đặt sẵn.
  • Còn dịch vụ systemd-networkd.service sẽ được load sẵn nhưng không active, nếu bạn cần dùng thì active nó lên.

Cách đặt tên card mạng trong systemd.

Cách đặt tên card mạng trong hệ thống sử dụng systemd có sự thay đổi rất nhiều so với các phiên bản Linux trước đây. Bạn có thể xem thông tin chi tiết tại: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

Việc đặt tên được quản lý bởi kernel và được mô tả ở phần comment của kernel source. Xem thêm tại: https://github.com/systemd/systemd/blob/master/src/udev/udev-builtin-net_id.c#L20

Tóm tắt lại thì tên card mạng được đặt theo kiểu:

Hai ký tự đầu đại diện cho kiểu card mạng:

  • en — Ethernet
  • sl — serial line IP (slip)
  • wl — wlan
  • ww — wwan

Kiểu tên:

  • p – pci geographical location (pci-e slot)
  • s – hotplug slot index number
  • o – onboard cards
  • f – function (used for cards with more than one port)
  • u – USB port
  • i – USB port interface

Ví dụ: Trong ví dụ dưới đây mình sẽ hiển thị tên card mạng của echip-laptop. Các bạn có thể thấy card mạng đầu tiên có tên là enp3s0f2; có nghĩa là card mạng ethernet, pci slot 3, hotplug slot 0…

Nếu các bạn không thích cách đặt tên card mạng kiểu mới này mà muốn đổi về kiểu cũ như eth0, eth1 thì vẫn làm được. Nhưng mình nghĩ là không cần thiết làm rắc rối thêm 🙂

Giới thiệu công cụ ifconfig.

Công cụ ifconfig trong Linux có tác dụng giống như công cụ ipconfig trong Windows vậy. Để tìm hiểu thêm về công cụ này bạn có thể sử dụng lệnh:

Để xem thông tin tất cả card mạng trong hệ thống ta dùng lệnh:

Để up hoặc down card mạng nào đó ta có thể sử dụng lệnh:

Để thêm hoặc xoá địa chỉ ip cho một card mạng ta có thể sử dụng lệnh:

Cấu hình mạng cho Ubuntu Server 16.04 LTS bằng cách sửa file interfaces.

Như đã giới thiệu trong phần trên. Khi hệ thống khởi động dịch vụ networking.service nó sẽ đọc file /etc/network/interfaces để lấy thông tin card mạng và khởi động nó lên. Chúng ta có thể sử dụng trình soạn thảo nano để cấu hình mạng cho Ubuntu như sau:

Cách này là các đơn giản, dễ dùng nhất. Dù là hệ thống Ubuntu cũ hay mới có dùng systemd hay là Upstart cũng làm được.

Cấu hình mạng cho Ubuntu bằng công cụ nmcli.

Như đã giới thiệu ở phần trên. Công cụ nmcli (Network Manager Command Line Interface) là một phần đi kèm với dịch vụ NetworkManager.service. Nó cho phép chúng ta cấu hình mạng cho Ubuntu bằng giao diện dòng lệnh. Tuy nhiên nếu chúng ta có cài đặt và sử dụng NetworkManager thì thông thường là cấu hình bằng giao diện đồ hoạ luôn cho dễ nhìn.

Mặc định thì NetworkManager chỉ được cài đặt trên Ubuntu Desktop chứ không được cài đặt trên Ubuntu Server. Ở đây mình sẽ giới thiệu sơ qua về lệnh nmcli mà thôi. Nếu bạn nào có hứng thú có thể tự tìm hiểu thêm bằng cách gõ lệnh:

Để xem các connection:

Để xem trạng thái các card mạng:

Để connect hay disconnect card mạng:

Còn nhiều lắm. Nếu viết ra hết bài sẽ rất dài. Mà thực ra cả trên desktop và trên server chúng ta cũng không dùng nó.

Cấu hình mạng cho Ubuntu bằng systemd-networkd.

Để cấu hình mạng cho Ubuntu bằng systemd-networkd. Chúng ta sẽ tạo ra các file có dạng <độ ưu tiên>-<tên> .network đặt trong  /etc/systemd/network/.

Nhớ là sử dụng systemd-networkd.service thì phải start nó lên và tắt NetworkManager.service đi vì ta chỉ cần 1 trong 2 thôi. Và bật thêm dịch vụ systemd-resolved.service để sử dụng DNS do DHCP cấp.

Ví dụ:

10-my-static.network

10-my-dhcp.network

10-my-wireless.network

Xem video hướng dẫn.

Giới thiệu chipchip

Chipchip là một chú gà con đam mê công nghệ và ham học hỏi. Thích màu hồng. Câu nói yêu thích "Kiến thức không của riêng ai, kiến thức là để chia sẻ"

Đọc thêm

Kho ứng dụng Flatpak – khi những ứng dụng “bất chấp” nền tảng

Flatpak là một dự án mã nguồn mở xuất phát từ ý tưởng tạo ra …

Gửi phản hồi

Nhắn tin cho chúng tôi