June 18, 2015

Hướng dẫn cấu hình mạng cho Ubuntu

Ubuntu cũng nhưcác hệ điều hành linux khác coi card mạng là một devicce và lưu cấu hình trong file text, sau đó tải lên mỗi khi khởi động máy. Bài viết này giới thiệu một số công cụ để kiểm tra và cấu hình card mạng cho ubuntu.

Mỗi máy tính cần có một card mạng Ethernet có dây hoặc không dây, được liệt kê trong thư mục /dev với tên gọi bắt đầu bằng 3 chữ cái eth. Ví dụ
– eth0 cho card mạng thứ nhất
– eth1 cho card mạng thứ 2, ....

Để xem máy có bao nhiêu card mạng, gõ lệnh sau
                # ifconfig -a | grep eth
Để kiểm tra xem các card mạng đã được cấu hình hay chưa gõ các lệnh sau
               # ifconfig  
Lệnh này cung cấp thông tin về địa chỉ MAC, địa chỉ IP, gateway... của tất cả các card mạng. Nếu muốn xem thông tin từng card mạng gõ lệnh này cộng với tên card mạng được list ở bước trên ví dụ # ifconfìg eth0

Để xem các định tuyến đi qua các mạng như thế nào gõ lệnh sau:
               # route -n



Để gán ip, cấu hình cho card mạng và kiểm tra chúng ta dùng lệnh sau. Lệnh này sẽ có tác dụng ngay tức thì tuy nhiên cấu hình này không ghi vào file config nên sẽ mất khi khởi động lại máy tính

# ifconfig ethX IP-address netmask subnet-mask

Ví dụ
# ifconfig eth0 192.168.1.2 netmask 255.255.255.0



Muốn card mạng được khai báo IP cố định, chúng ta đặt các lệnh cấu hình card mạng trong file cấu hình có đường dẫn là /etc/network/interface. Có thể dùng lệnh vi hoặc gedit để tạo file cấu hình card mạng này và chỉnh sửa nó

#sudo gedit /etc/network/interfaces

Nội dung file như sau:


  • auto lo
  • iface lo inet loopback
  • auto eth0
  • iface eth0 inet static
  • address 192.168.1.2
  • netmask 255.255.255.1.0
  • gateway 192.168.1.1
Sau khi khai báo cấu hình trong file interfaces nói trên, cần khởi động lại máy hoặc dùng lệnh sau để khởi động lại dịch vụ mạng để lấy cấu hình mới. Lưu ý 2 dòng đầu tiên là dành cho card loopback, không nên thay đổi.

# sudo reboot
# sudo /etc/init.d/networking restart




Nếu muốn cấu hình card mạng nhận IP từ DHCP server chúng ta khai báo các dòng lệnh sau trong file /etc/network/interfaces thay cho 5 dòng lệnh cấu hình card mạng ở bước trên


  • auto eth0
  • iface eth0 inet dhcp
Sau đó reboot hoặc restart dịch vụ mạng như ở bước trên



Sau khi có địa chỉ mạng, nếu muốn hệ thống có thể truy cập internet, vào các website và chạy các lệnh get app, chúng ta cần chỉ ra một DNS server để hệ thống biết cách phân giải tên miền. Khai báo DNS trong file /etc/resolv với lệnh gedit như sau

#sudo gedit /etc/resolv

Và sửa nội dung file này như sau:

nameserver 8.8.8.8
nameserver 8.8.8.4

Trong đó 8.8.8.8 là DNS chính của google, còn 8.8.8.4 là DNS phụ của google. Bạn có thể thay thế hai địa chỉ DNS này bằng địa chỉ DNS riêng của bạn hoặc của nhà cung cấp dịch vụ nào gần nhất.


Để đặt một card mạng nào đó làm default gateway chúng ta gõ dòng lệnh sau

# route add default gw ip-getway  hoặc
# route add -net 0.0.0.0 mask 0.0.0.0 dev {interface-name}


Ví dụ 
# route add default gw 192.168.1.1
# route add -net 0.0.0.0 mask 0.0.0.0 dev eth0


Để add một routing tĩnh đến một mạng nào đó ta dùng lệnh

# route add -net x.x.x.x mask y.y.y.y  dev {interface-name}

Trong đó x.x.x.x là địa chỉ mạng, còn y.y.y.y là subnet-mask. Ví dụ:

# route add -net 192.168.5.0 mask 255.255.255.0 dev eth0

Để gỡ bỏ một route tĩnh hay một default gateway chúng ta thay lệnh route add ở trên bằng lệnh route delete như ví dụ sau

# route delete -net 192.168.5.0 mask 255.255.255.0 dev eth0
# route delete default gw 192.168.1.1


Để tạm ngừng (disable) một card mạng chúng ta dùng lệnh

# sudo ifconfig eth0 down

Để bật lại một card mạng ta dùng lệnh

# sudo ifconfig eth0 up

Lưu ý. Tất cả các lệnh trên đều phải dùng với sudo ở đằng trước để đảm bảo có quyền cao nhất



Ngoài công cụ cấu hình mạng  bằng đồ họa cho Ubuntu. Ubuntu hướng dẫn cho người quản trị mạng cấu hình thông tin về mạng thông qua giao diện dòng lệnh.
Để mở cửa số terminal  trong Ubuntu nhấn tổ hợp: Ctrl + Alt + T
Giao diện Ethernet Interfaces
Phần này xác định tên chính của card mạng có dạng: ethX, trong đó X là thứ tự card mạng. Thứ tự được đánh từ 1 đến n tùy theo số lượng card mạng đang dùng trên máy của bạn
Xác định card mạng hiện có
Một cách nhanh nhất để xác định được card mạng đang tồn tại trên máy tính bằng lệnh: ifconfig
ifconfig -a | grep eth
eth0      Link encap:Ethernet  HWaddr 00:15:c5:4a:16:5a
Ngoài ra còn có chương trình khác giúp bạn có đầy đủ thông tin về card mạng đang tồn tại trên máy bằng lệnh: lshw . Trong ví dụ dưới đây, lshw  hiển thị “Ethernet interface” với tên là eth0  với các thông tin về Bus, chi tiết về driver và khả năng tương thích.
sudo lshw -class network
  *-network
       description: Ethernet interface
       product: BCM4401-B0 100Base-TX
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: eth0
       version: 02
       serial: 00:15:c5:4a:16:5a
       size: 10MB/s
       capacity: 100MB/s
       width: 32 bits
       clock: 33MHz
       capabilities: (snipped for brevity)
       configuration: (snipped for brevity)
       resources: irq:17 memory:ef9fe000-ef9fffff

Thay đổi tên cho card mạng.

Tên của card mạng được cấu hình trong file/etc/udev/rules.d/70-persistent-net.rules.Nếu bạn muốn tìm tên, hoặc tìm địa chỉ MAC và sửa lại tên theo giá trị  NAME=ethX sau đó khởi động lại máy.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:15:c5:4a:16:5a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:15:c5:4a:16:5b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Cấu hình card mạng trong Ubuntu

ethtool là một chương trình hiển thị các thông tin và thay đổi các thông số car mạng ví dụ:  auto-negotiation, port speed, duplex mode, vàWake-on-LAN. Chương trình này không được cài đặt sẵn, bạn phải cài đặt từ lệnh sau.
sudo apt-get install ethtool
Lệnh dưới đây cho phép xem các thông tin về tính năng cũng như các cài đặt sẵn có của card mạng.
sudo ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Half 1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: d
        Current message level: 0x000000ff (255)
        Link detected: yes
Lưu ý nhưng lệnh của  ethtool  là những lệnh tạm thời, nó sẽ bị mất khi khởi động lại máy. Nếu muốn cài đặt thông tin chính xác bạn phải sửa  file/etc/network/interfaces.
The following is an example of how the interface identified as eth0 could be permanently configured with a port speed of 1000Mb/s running in full duplex mode.
auto eth0
iface eth0 inet static
pre-up /usr/sbin/ethtool -s eth0 speed 1000 duplex full

0 comments:

Post a Comment