/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Network Configuration In Linux/Ubuntu >= 17.4

1. Các file cấu hình:

  • Network interface

- Debian-based: /etc/network/interfaces
- Red Hat-based: /etc/sysconfig/network-scripts/
- Ubuntu (>= 17.04): /etc/netplan/

  • DNS server: /etc/resolv.conf
  • /etc/nsswitch.conf
Ví dụ:
  • Kiểm tra thông tin IP hiện tại với lệnh: ip a
khanhvc@ubutu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:73:8d:d0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.73/22 brd 192.168.3.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::9d21:bf12:41f0:7dfb/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:73:8d:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.68/22 brd 192.168.3.255 scope global dynamic noprefixroute ens38
       valid_lft 28788sec preferred_lft 28788sec
    inet6 fe80::ba76:35f6:4158:5f73/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

khanhvc@ubutu:~$

Hiện tại trong thiết bị có 3 card mạng (1 lo-loopback, 1 ens33 và ens38) 
  • Để cấu hình IP cho Ubuntu chúng ta có thể thay đổi nội dung file /etc/netplan/01-network-manager-all.yaml bằng lệnh vim

khanhvc@ubutu:~$sudo vim /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
    ethernets:
        ens33:
            dhcp4: true
        ens38:
            addresses: [192.168.0.116/22]
            nameservers:
              addresses: [8.8.8.8]
            dhcp4: no
    version: 2
    renderer: NetworkManager


Cấu hình trên có nghĩa là card mạng ens33 để lấy ip tự động - DHCP, card mạng ens38 đặt ip tĩnh IP là 192.168.0.116/22, DNS là 8.8.8.8
  • nhấn Esc + : wq! -> enter để lưu cấu hình và thoát khỏi vim
  • Thực hiện apply cấu hình vừa thay đổi
 sudo netplan apply

  • Kiểm tra lại thông tin ip address 
khanhvc@ubutu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:73:8d:d0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.73/22 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 3560sec preferred_lft 3560sec
    inet6 fe80::20c:29ff:fe73:8dd0/64 scope link
       valid_lft forever preferred_lft forever
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:73:8d:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.116/22 brd 192.168.3.255 scope global noprefixroute ens38
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe73:8dda/64 scope link
       valid_lft forever preferred_lft forever
khanhvc@ubutu:~$

Chúng ta thấy card ens33 dynamic có nghĩa là đang được cấu hình IP address từ DHCP server

2. Các câu lệnh - commands
  • nmtui: Giao diện đồ họa cơ bản để cấu hình network
  • net-tools package:
- ethtool
- ifconfig
- iwconfig
- route
  • iproute2 package
ip: là câu lệnh phổ biến dần thay thế cho ifconfig


2.1 IP Address:
  • Thêm IP vào interface ens38
sudo ip address add 192.168.0.117/22 dev ens38

  • Xóa IP vào interface ens38
sudo ip address del 192.168.0.117/22 dev ens38

 

  • Xem thông tin IP address bao gồm MAC address
khanhvc@ubutu:~$ ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:73:8d:d0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.73/22 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 24533sec preferred_lft 24533sec
    inet6 fe80::20c:29ff:fe73:8dd0/64 scope link
       valid_lft forever preferred_lft forever
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:73:8d:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.117/22 scope global ens38
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe73:8dda/64 scope link
       valid_lft forever preferred_lft forever
khanhvc@ubutu:~$

  • Hoặc cụ thể một interface
khanhvc@ubutu:~$ ip address show dev ens38
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:73:8d:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.117/22 scope global ens38
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe73:8dda/64 scope link
       valid_lft forever preferred_lft forever
khanhvc@ubutu:~$

  • Thiết lập interface up/down
sudo ip link set ens38 down


  • Kiểm tra sau khi thiết lập

khanhvc@ubutu:~$ ip address show dev ens38

4: ens38: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000

    link/ether 00:0c:29:73:8d:da brd ff:ff:ff:ff:ff:ff

khanhvc@ubutu:~$ 


hoặc
sudo ip link set ens38 up

2.2 Routing Table

  • Thiết lập default gateway là 192.168.0.7 thông qua interface ens33
sudo ip route add default via 192.168.0.7 dev ens33

  • Xóa default gateway
sudo ip route del default via 192.168.0.7 dev ens33

  • Kiểm tra bảng route hiện tại
khanhvc@ubutu:~$ ip route show
default via 192.168.0.7 dev ens33 proto dhcp metric 100
192.168.0.0/22 dev ens33 proto kernel scope link src 192.168.0.73 metric 100
khanhvc@ubutu:~$

  • Thêm route tĩnh
sudo ip route add 192.168.100.0/24 via 192.168.0.7 dev ens33

  • Xóa route tĩnh
sudo ip route del 192.168.100.0/24 via 192.168.0.7 dev ens33

  • Kiểm tra packet mà route đi qua. Ví xem để đến ip 8.8.8.8 sẽ đi qua route nào.
khanhvc@ubutu:~$ ip route get 8.8.8.8
8.8.8.8 via 192.168.0.7 dev ens33 src 192.168.0.73 uid 1000
    cache
khanhvc@ubutu:~$ 


  • Kiểm tra bảng ARP 

khanhvc@ubutu:~$ ip neigh
192.168.0.16 dev ens33 lladdr 50:e5:49:a4:01:dd REACHABLE
192.168.0.7 dev ens33 lladdr 00:d7:8f:0d:b8:3f REACHABLE
192.168.0.48 dev ens33 lladdr 94:de:80:a6:fb:30 REACHABLE
khanhvc@ubutu:~$


3. Troubleshooting
  • ping
  • traceroute: ICMP
  • tracepath: UDP
  • host
  • dig
  • nslookup
  • netstat
  • ss
Cài traceroute trên ubuntu
sudo apt-get install traceroute

Cài traceroute trên CentOS
sudo yum install traceroute

Command Giải Thích
ping -c 4 google.com.vn Ping google.com.vn với 4 gói tin
traceroute 8.8.8.8 Kiểm tra để đi đến được google.com.vn thì cần qua những next-hop nào
tracepath google.com.vn Tương tự như traceroute



Xong!

Juniper - Save And Transfer File Configuration With TFTP

Nên tham khảo bài TFTP trước khi xem bài này


NỘI DUNG:

1. Lưu Cấu Hình Hiện Tại Thành File Lên Switch

2. Copy File Config Từ Switch Đến TFTP

3. Copy File Từ TFTP Vào Switch

4. Backup Cấu Hình Tự Động


THỰC HIỆN:


1. Lưu Cấu Hình Hiện Tại Thành File Lên Switch

Commands Diễn Giải
configure Vào mode config
save 2021-04-27_IP127.246.cfg Thực hiện lưu cấu hình hiện tại vào file có tên 2021-04-27_IP127.246.cfg
exit Thoát khỏi mode config
file list Liệt kê/xem các file cấu hình mà mình tự lưu đã lưu trong thiết bị


2. Copy File Config Từ Switch Đến TFTP

Commands Diễn Giải
start shell Khởi động shell trên Junos
cd /var/home/admin Chuyển dấu nhắc lệnh vào đường dẫn /var/home/admin
ls Liệt kê (nhằm mục đích chọn file để copy) các file có trong đường dẫn /var/home/admin
tftp Khởi động tftp client trên switch
connect 125.234.103.242 Kết nối đến TFTP server có địa chỉ IP là 125.234.103.242
put 2021-04-27_IP127.246.cfg Đẩy file 2021-04-27_IP127.246.cfg (là file vừa tạo ra ở phần 1) lên TFTP server
^D% Nhấn phím Ctrl + D để disconnect khỏi TFTP server
exit Thoát chế độ shell trên switch


Chúng ta cũng có thể copy các file cấu hình hiện tại trên switch lên TFTP

Commands/File List Diễn Giải
file list /config/ Hiển thị các file config của switch
juniper.conf.gz Là file cấu hình đang active trên switch
juniper.conf.1.gz Nếu chúng ta rollback thì nội dung của file juniper.conf.gz sẽ được thay bằng nội dung của file juniper.conf.1.gz


3. Copy File Từ TFTP Vào Switch

Commands Diễn Giải
start shell Khởi động shell trên Junos
tftp 125.234.103.242 Kết nối vào tftp có địa chỉ ip tftp 125.234.103.242
get 2021-04-27_IP127.246.cfg.txt Copy file 2021-04-27_IP127.246.cfg.txt từ TFTP về switch
quit Disconnect khỏi TFTP server
exit Thoát chế độ shell trên switch



4. Backup Cấu Hình Tự Động

Juniper cho phép sao lưu cấu hình tự động thông qua FTP, HTTP, SCP sau mỗi lần chúng ta lưu cấu hình (commit). Tên file tạo ra theo định dạng là hostname+time

    system {

              archival {

                  configuration {

                          transfer-on-commit;

                          archive-sites {

                                  "ftp://username@<IP address of FTP server>" password <password>;

                                  }

                          }

               }

     }


Xong!

Using Commands Cat, Head, Tail, Less & More In Linux/Ubuntu/CentOS

Mục Lục:

1. Lệnh Cat
2. Lệnh Head
3. Lệnh Tail
4. Lệnh Less
5. Lệnh More

Nội Dung:

1. Lệnh Cat: Dùng để đọc, và xem nội dung của file

Command Giải Thích
cat /etc/passwd Hiển thị nội dung file passwd
cat -n /etc/passwd Hiển thị số dòng và nội dung file passwd
cat file1.txt file2.txt Nối nội dung file1.txt, file2.txt và hiển thị ra màn hình
cat file1.txt file2.txt > file12.txt Nội dung của file1.txt và file2.txt sẽ được copy vào file12.txt
cat file1.txt >> file12.txt Nếu file12.txt có nội dung rồi thì nội dung file1.txt sẽ được chèn vào dưới của nội dung file12.txt
cat > file.txt Tạo ra file.txt và nội dung cho phép nhập từ bàn phím. Nhấn Ctrl + D để kết nhập dữ liệu

2. Lệnh Head: Hiển thị các dòng đầu tiên của file, mặc định hiển thị 10 dòng đầu tiên, tuy nhiên chúng ta có thể tùy chọn thay đổi các tham biến được 

Command Giải Thích
head /etc/passwd Hiển thị 10 dòng đầu tiên của file passwd
head -5 /etc/passwd Hiển thị 5 dòng đầu tiên của file passwd
head -v /etc/passwd Hiển thị 10 dòng đầu tiên của file passwd và có hiển thị tiêu đề
head -c 20 /etc/passwd Hiển thị ra 20 byte(20 ký tự) đầu tiên của file

3. Lệnh Tail: Tương tự head, tuy nhiên tail hiển thị các dòng cuối cùng của file.

Command Giải Thích
tail -5 /etc/passwd Hiển thị 5 dòng cuối cùng của file passwd
tail -c 20 /etc/passwd Hiển thị ra 20 byte(20 ký tự) cuối của file
tail -f logfile.txt Hiển thị 10 dòng cuối cùng của file. Thường áp dụng để xem các file log của hệ thống, nhấn Crtl + C để thoát.

4. Lệnh Less: Với các file lớn nếu dùng lệnh cat để xem nội dung thì tốt rất nhiều bộ nhớ sẽ làm ảnh hưởng đến hệ thống. Với less giúp chúng ta xem 1 phần nội dung của file và chúng ta có thể chuyển chuyển lên xuống để xem nội dung toàn bộ file.

Cú pháp:

less  /etc/passwd

Các file thường sử dụng trong lệnh less:

  • Space: Hiển thị nội dung trang kế tiếp (trang dưới)
  • b: Hiển thị nội dung trang trên
  • G: Hiển thị trang cuối cùng
  • g: Hiển thị trang đầu tiên
  • /{chuỗi cần tìm}: Tìm kiếm nội dung
  • ?{chuỗi cần tìm}: Tìm kiếm nội dung
  • v: Cho phép chỉnh sửa nội dung file hiện tại
  • q: Thoát 


5. Lệnh More: Dùng để mở file và tương tác, tuy nhiên với lệnh more chúng ta KHÔNG thể cuộn lên trang trước như less.

Cú pháp: 

more  /etc/passwd


Xong!

Juniper - Clearing IDLE TTY Sessions in Junos



Khi có nhiều kết nối đồng thời đến thiết bị bạn có thể ngắt kết nối của user mà bạn muốn.

Hiển thị các session hiện tại đang kết nối trên switch bằng lệnh:
run show system users no-resolve




chúng ta có thể clear TTY sesion, ví dụ clear TTY có tên là u0 thi thực hiện bằng lệnh:

run request system logout terminal u0


Kiểm tra lại thì không session u0 đã được ngắt kết nối.


AWK Command In Linux/Ubuntu/CentOS

Command Giải Thích Kết Quả
echo "Linux commands" | awk '{$2="DONG LENH";print $0}' Thay đổi nội dung của cột thứ 2 của chuỗi "Linux command" trong lệnh echo thành "DONG LENH" và in toàn bộ nội của chuỗi sau khi thay đổi Linux DONG LENH
echo 'foo:123:bar:456' | awk -F: '{print $2}' In ra cột thứ 2 trong chuổi 'foo:123:bar:456' (F: có nghĩa căn cứ vào dấu ":" để tách cột). 123
echo 'foo:123:bar:456' | awk -F: '{print $NF}' In ra cột cuối cùng 456
echo 'foo:123:bar:456' | awk -F: '{print $(NF-1)}' IN ra cột trước cột cuối cùng 1 cột bar
awk '{print}' file.txt In toàn bộ nội dung của file.txt
awk '{print $2}' file.txt In ra nội dung của cột thứ 2 trong file.txt
awk -F: '{print $1}' /etc/passwd In ra nội dung của cột thứ nhất trong file passwd
awk '$2 > 300' file.txt In ra nội dung của dòng đó nếu giá trị của cột thứ 2 > 300
awk '{if($2 > 300) print $0 }' file.txt In ra cả dòng nếu giá trị của cột thứ 2 lớn hơn 300
awk '{if($2 > 300) print $2 }' file.txt In ra giá trị của cột thứ 2 nếu giá trị đó lớn hơn 300

Xong!

Sed Command in Linux/Ubuntu/CentOS - Tìm Kiếm & Thay Thế

Mục Lục

1. Cài đặt Sed

2. Ví dụ


Nội Dung:

1. Cài đặt Sed

sudo apt-get install sed

Kiểm tra version sau khi cài đặt

sed --version


2. Ví dụ

Command Giải Thích
sed 1s/thu/THU/g file.txt Tìm chữ "thu" ở dòng thứ 1 của file có tên file.txt, thay thế bằng chữ "THU" và hiển thị nội dung ra của file và thông tin vừa thay đổi ra màn hình
sed 1,5s/thu/THU/g file.txt Tìm chữ "thu" ở dòng thứ 1 đến dòng thứ 5 của file có tên file.txt và thay thế bằng chữ "THU" và hiển thị nội dung ra của file ra màn hình
sed -i 1,5s/thu/THU/g file.txt Tìm chữ "thu" ở dòng thứ 1 đến dòng thứ 5 của file có tên file.txt và thay thế bằng chữ "THU" và lưu file, KHÔNG hiển thị nội dung ra của file ra màn hình
sed -i 1,5s/thu/THU/gc file.txt Hiển thị thông tin yêu cầu xác nhận trước thực hiện thay thế
sed -i '2i NoiDung' file.txt Chèn chữ "NoiDung" vào dòng thứ 2 của file.txt
sed 6,9s/thu/THU/g file.txt >filecp.txt Tìm chữ "thu" ở dòng thứ 6 đến dòng thứ 9 của file.txt, thay thế bằng chữ "THU" và lưu nội dung file và kết quả vừa thay thế vào filecp.txt
sed -n "/THU/p" filecp.txt Hiển thị tất cả các dòng có chứa chữ "THU" trong filecp.txt
sed -n "/1/ s/10/MUOI/p" filecp.txt Tìm trong filecp.txt nếu có "1" và tìm tiếp nếu có "10" thì thay thế bằng "MUOI", và hiển thị ra màn hình của dòng sau khi thay thế
sed -n "2p; 5p" filecp.txt Hiển thị dòng thứ 2 và dòng thứ 5 của filecp.txt
sed "2 s/hai/HAI/" filecp.txt Nếu dòng thứ 2 của filecp.txt có "hai" thì thay bằng "HAI" và hiển thị ra. Nếu không có thì hiển thị nội dung hiện tại
sed -i "s/10/MUOI/" file.txt filecp.txt Tìm "10" trong file.txt và filecp.txt nếu có thì thay bằng "MUOI" và lưu lại
sed "/12/Id" filecp.txt Tìm kiếm trong filecp.txt nếu có "12" thì xóa dòng đó, sau đó hiển thị kết quả sau khi xóa ra màn hình

Xong!
/*header slide*/