Quản lý mạng trong linux.
1.Cấu hình network interface trên Debian.
/etc/network/interfaces
File /etc/network/interfaces là file cấu hình interface card mạng chính trên Debian. Ví dụ:
root@m4700:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 10.42.189.198
broadcast 10.42.189.207
netmask 255.255.255.240
gateway 10.42.189.193
Ở ví dụ trên, card eth0 đang cấu hình tự động bật cùng hệ thống(auto eth0
) và cấu hình nhận dhcp(iface eth0 inet dhcp
). Card eth1 cũng cấu hình bật khi khởi động(auto eth1
) và cấu hình ip tĩnh với các giá trị address, broadcast, netmask, gateway.
Có thể dùng lệnh man interfaces
để xem thêm về file /etc/network/interfaces.
/sbin/ifdown và /sbin/ifup
Lệnh ifup
và ifdown
là hai lệnh dùng để cấu hình cho các interface mà được xác định ở trong file /etc/network/interfaces
Lệnh ifdown
là lệnh dùng để tắt một interface.
Khi interface ở trạng thái tắt(down) thì nó không thể dùng để kết nối với mạng.
Lệnh ifup
là lệnh dùng để bật một interface để có thể sử.
2.Cấu hình network interface trên RHEL.
/etc/sysconfig/network
File /etc/sysconfig/network là file cấu hình rộng cho tất cả các card mạng. Nó cho phép xác định có kết nối mạng hay không, hostname là gì, gateway là gì,.. Trên RHEL 7, file mặc định sẽ không có thiết lập nào.
[root@rhel71 ~]# cat /etc/sysconfig/network
# Created by anaconda
/etc/sysconfig/network-scripts/ifcfg-
Mỗi card mạng đều có thể cấu hình độc lập với file /etc/sysconfig/network-scripts/ifcfg-*(với * là tên của card mạng).
Ví dụ:
[root@cen3 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6108c07e-440b-4078-96ac-7dcff5043a86
DEVICE=ens33
ONBOOT=yes
IPADDR=10.88.88.30
PREFIX=24
GATEWAY=10.88.88.2
DNS1=8.8.8.8
[root@cen3 ~]#
Với một số giá trị trong file config:
- DEVICE : tên card mạng nên điền chính xác tên card mạng thì hệ thống mới nhận biết được card nào để cấu hình card mạng cho nó.
- NAME : là tên kết nối.
- ONBOOT : là tùy chọn khi hệ thống khởi động, “yes” để tự động bật card mạng cùng hệ thống.
- BOOTPROTO : cấu hình IP tĩnh hay DHCP. Nếu là - DHCP thì để giá trị “dhcp”, nếu để tĩnh thì giá trị là “static”
- IPV6INIT : cấu hình hỗ trợ cài đặt IPv6 trên card mạng này(yes/no).
- IPADDR : địa chỉ IP tĩnh.
- PREFIX : subnet mask của lớp mạng IP sử dụng.
- GATEWAY : địa chỉ IP cổng gateway.
- DNS1 : thông tin DNS server.
nmcli
nmcli(network managerment command line interfaces) là một công cụ quản lý mạng phổ biến bằng command line trên linux.
Bạn nên chạy câu lệnh nmcli connection reload
sau khi thay đổi cấu hình mạng.
3.ifconfig.
Sử dụng lệnh ifconfig
một mình sẽ liệt kê tất cả những card mạng, card không dây, loopback và một vài thông tin của chúng.
lamth@m4700:~$ ifconfig
eno1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether f0:1f:af:26:21:4b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf7e00000-f7e20000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 24603 bytes 24024913 (24.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 24603 bytes 24024913 (24.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.162 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::f63f:538e:7fba:57ff prefixlen 64 scopeid 0x20<link>
ether 3c:a9:f4:42:4c:fc txqueuelen 1000 (Ethernet)
RX packets 728018 bytes 920067697 (920.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 314598 bytes 45009276 (45.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Hoặc có thể xem thông tin về một card mạng bằng cách thêm tên card mạng phía sau. Ví dụ:
lamth@m4700:~$ ifconfig wlp3s0
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.162 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::f63f:538e:7fba:57ff prefixlen 64 scopeid 0x20<link>
ether 3c:a9:f4:42:4c:fc txqueuelen 1000 (Ethernet)
RX packets 728967 bytes 920257457 (920.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 315136 bytes 45202316 (45.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lamth@m4700:~$
Up and down an interface
Lệnh ifconfig
cũng có thể giúp up hay down một interface. Khác vớiifup
, ifconfig <interface> up
sẽ khởi động lại interface và giữ cấu hình cũ, trong khi ifup
đọc lại file chứa cấu hình (mới) và sử dụng cấu hình này để khởi động lại interface.
Đặt địa chỉ ip
Có thể đặt ip tạm thời cho một interface với lệnh ifconfig
cho đến khi reboot hoặc có một chu kỳ ifup/ipdown.
Cú pháp:
ifconfig <interface> <ip> netmask <netmask của dải mạng>
4.dhclient
Linux thường có chương trình /sbin/dhclient. Daemon này cho phép một interface nhận cấu hình ip tự động từ một dhcp server. Khi để cấu hình card mạng là dhcp hay bootp(mục BOOTPROTO), thì ifup sẽ chạy deamon dhclient. Khi nhận được cấu hình mới, dhclient sẽ ghi đè lên cấu hình cũ.
5.arp
Giao thức arp là giao thức phân giải địa chỉ ip và địa chỉ mac. Bảng arp có thể được hiển thị bởi công cụ arp
.
root@barry:~# arp -a
? (192.168.1.191) at 00:0C:29:3B:15:80 [ether] on eth1
agapi (192.168.1.73) at 00:03:BA:09:7F:D2 [ether] on eth1
anya (192.168.1.1) at 00:12:01:E2:87:FB [ether] on eth1
faith (192.168.1.41) at 00:0E:7F:41:0D:EB [ether] on eth1
arp -d
để xóa một bản ghi trong bảng.
6.route
Bạn có thể xem bảng routing vơi lệnh route
( hoặc netstat -r
).
<pre><font color="#8AE234"><b>lamth@m4700</b></font>:<font color="#729FCF"><b>~</b></font>$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 600 0 0 wlp3s0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet9
10.11.11.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
10.88.88.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 virbr0
</pre>
7.ping
ping
là lệnh thường dùng để kiểm tra xem máy tính có kết nối được đến một host nào đó hay chưa.
lamth@m4700:~$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=55 time=207 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=55 time=36.6 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=55 time=53.2 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=55 time=45.1 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=55 time=37.9 ms
64 bytes from 1.1.1.1: icmp_seq=6 ttl=55 time=34.8 ms
8./proc/net/dev
là file lưu thông số trạng thái của các card mạng trên máy. Dùng watch cat /proc/net/dev
để theo dõi trạng thái các card mạng.
lamth@m4700:~$ watch cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
virbr0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
wlp3s0: 1012672300 816512 0 0 0 0 0 0 53462942 356699 0 0 0 0 0 0
vmnet1: 0 0 0 0 0 0 0 0 0 939 0 0 0 0 0 0
vmnet8: 0 3579 0 0 0 0 0 0 0 4116 0 0 0 0 0 0
lo: 25978356 31003 0 0 0 0 0 0 25978356 31003 0 0 0 0 0 0
virbr0-nic: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vmnet9: 0 0 0 0 0 0 0 0 0 938 0 0 0 0 0 0
docker0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eno1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7.Network manager.
Network manager là một bộ công cụ mà giúp cho việc quản lý mạng đơn giản hơn.
Nó có hai thành phần chính:
- Một dịch vụ trong hệ thống chịu trách nhiệm quản lý và báo cáo nhưng thay đổi mạng.
- Một ứng dụng front-end: nmtui, nmcli, nm-tray, network-manager-gnome (nm-apple), plasma-nm.
NetworkManager giữ thông tin kết nối ở những mạng đã biết trong các file cấu hình được gọi là profile. Nó được lưu trữ ở trong /etc/NetworkManager/system-connections/.
Một số công cụ của Network manager:
nmtui
: Là một ứng dụng dựa trên nền TUI dùng để tương tác với networkmanager. Nếu không có đối xố đầu tiên thì người dùng sẽ được nhắc chọn các lựa chọn: - edit: Để hiển thị, thêm, sửa xóa một kết nối. - connect: Hiển thị các kết nối có sẵn với tùy chọn active hoặc deactive chúng. - hostname: Để đặt hostname cho hệ thống.nmcli
: Là một công cụ sử dụng dòng lệnh để quản lý NetworkManager và báo cáo trạng thái mạng.nmcli
được dùng để tạo, thêm, sửa xóa. active, deactive các kết nối mạng, đồng thời cũng quản lý và hiểu thị trạng thái về thiết bị mạng. Thường được dùng cho các server, headless computer, terminal để quản lý mạng mà không cần đến GUI. Nó cũng hay được sử dụng trong các Script để quản lý mạng.