แกแ แฃแแแ แแกแแ แแแแแแ NetworkManager แฅแกแแแแก แแแ แแแแก แฎแแแกแแฌแงแแแ Linux-แแก แแ แซแแแแแแก แฎแแแแ nmcli แฃแขแแแแขแแก แแแแแงแแแแแแ.
แแแแฃแแแแฃแ แ
แแก แแแแแฉแแแ 2010 แฌแแแก แแ แแแแ แแกแแแแก แแแฎแแ แฅแกแแแแก แแแขแแ แคแแแกแแแแก แแ แแแแจแแ แแแแก แแแแคแแแฃแ แแชแแแก แแแขแแ แแแขแแฃแแ แแแ. แแแฃแฎแแแแแแ แแแแกแ, แ แแ แแแแแแ แแ แแแแแแแแ แแแแแ แแงแแแแแก
ncmli แแ แซแแแแแแก แกแแแขแแฅแกแ
แแแแแแแ, แกแแแขแแฅแกแ แแกแ แแแแแแงแฃแ แแแ:
$ nmcli <options> <section> <action>
- แแคแชแแแแ แแ แแก แแแ แแแแขแ แแแ, แ แแแแแแแช แแแแกแแแฆแแ แแแแ nmcli แแแแ แแชแแแก แแแฎแแแฌแแแแแแก,
- แแแแงแแคแแแแแ (แแแแงแแคแแแแแ) - แแแแกแแแฆแแ แแแก แแ แแแ แแแแก แ แแแแแ แคแฃแแฅแชแแแแแก แแแแแงแแแแแแก,
- แฅแแแแแแ - แแแซแแแแ แกแแจแฃแแแแแแก แแแฃแแแแแ, แ แ แฃแแแ แแแแแแแแก แ แแแแฃแ แแ.
แกแฃแ แแ แแก 8 แแแแงแแคแแแแแ, แ แแแแแแแแแ แแแแแแฃแแ แแกแแชแแ แแแแ แแ แซแแแแแแแแก แแแ แแแแฃแ แแแแแแแฅแขแแแ (แแแฅแแแแแแแแแ):
- แแแฎแแแ แแแ แแแฎแแแ แแแแก แฃแฌแแแก ncmcli แแ แซแแแแแแแก แแ แแแ แแแแแงแแแแแแก.
- แแแแแแ แแแ แฃแแแแก NetworkManager-แแก แกแขแแขแฃแกแก แแ แแแแแแแฃแ แแแแคแแแฃแ แแชแแแก.
- แฅแกแแแจแ แแแแชแแแก แแ แซแแแแแแแก แฅแกแแแแก แแแแจแแ แแก แกแขแแขแฃแกแแก แจแแแแแฎแแแกแ แแ แแแแจแแ แแแแก แฉแแ แแแแก/แแแแแ แแแแกแแแแก.
- แ แแแแ แแแแชแแแก แแ แซแแแแแแแก WiFi แฅแกแแแแก แแแแจแแ แแก แกแขแแขแฃแกแแก แจแแแแแฎแแแกแ แแ แแแแจแแ แแแแก แฉแแ แแแแก/แแแแแ แแแแกแแแแก.
- แแแแแขแแ แแก แแแแชแแแก แแ แซแแแแแแแก NetworkManager-แแก แแฅแขแแแแแแก แแแแแขแแ แแแแแกแแแแก แแ แฅแกแแแฃแ แ แแแแจแแ แแแแก แแแแแแแ แแแแแก แชแแแแแแแแแแ แแแแแแ แแแแแกแแแแก.
- แแแแจแแ แ แแแแชแแแก แแ แซแแแแแแแก แฅแกแแแแก แแแขแแ แคแแแกแแแแก แแแ แแแแกแแแแก, แแฎแแแ แแแแจแแ แแแแก แแแแแขแแแแกแ แแ แแ แกแแแฃแแแก แฌแแจแแแกแแแแก.
- แแแฌแงแแแแแแแ แซแแ แแแแแแ แแแแแแงแแแแแ แแแฌแงแแแแแแแแกแแแ แแแแแแจแแ แแแฃแแ แแแ แแแแขแ แแแแก แจแแกแแชแแแแแแ (แ แแแแ แแชแแ แแแขแแ แคแแแกแแก แกแแฎแแแ) แแ แแแฌแงแแแแแแแแแแก แแแกแแแแแจแแ แแแแแ แแ แกแแแฃแแ แแแแจแแ แแก แแแแแงแแแแแแ.
- แกแแแแฃแแแ แ แแแแกแขแ แแ แแแก nmcli-แก, แ แแแแ แช NetworkManager "แกแแแแฃแแแ แแแแแขแก", แ แแแแแแช แฃแกแแแแก แกแแแแฃแแแ แจแแขแงแแแแแแแแแก. แแก แแแแงแแคแแแแแ แแจแแแแแแ แแแแแแงแแแแแ, แ แแแแแ nmcli แแกแ แแฃแจแแแแก แแแแฃแแแกแฎแแแแแ แฅแกแแแแแแแ แแแแแแจแแ แแแแกแแก.
แแแ แขแแแ แแแแแแแแแแ
แกแแแแ แแแแฌแงแแแ, แแแ แฌแแฃแแแแ, แ แแ NetworkManager แแฃแจแแแแก แแ nmcli-แก แจแแฃแซแแแ แแแฃแแแแจแแ แแแก แแแก:
$ nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
แแฃแจแแแแ แฎแจแแ แแ แแฌแงแแแ แฅแกแแแแก แแแแจแแ แแก แงแแแแ แแ แแคแแแแก แแแฎแแแ:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
แแก แแ แซแแแแแ แแงแแแแแก ะดะตะนััะฒะธะต แแแแจแแ แแก แแแแงแแคแแแแแแก แฉแแแแแแ.
แกแแขแแกแขแ แแแแฅแแแ แแฃแจแแแแก Ubuntu 20.04. แแ แจแแแแฎแแแแแจแ, แฉแแแ แแแแแแแ แกแแแ แกแแแแแแแแ แแแแจแแ แ: enp0s3, enp0s8 แแ enp0s9.
แแแ แแแ แแแแจแแ แแแ
แแแแจแแแแแแแแแแ แแแแกแแแแแก, แ แแ nmcli-แจแ แขแแ แแแแแ Connection แแแฃแแแกแฎแแแแ แแ แแแฃแแก, แ แแแแแแช แจแแแชแแแก แงแแแแ แแแคแแ แแแชแแแก แแแแจแแ แแก แจแแกแแฎแแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแก แแ แแก แฅแกแแแแก แแแแคแแแฃแ แแชแแ. แแแแจแแ แ แแแแชแแแก แแแแจแแ แแแ แแแแแแจแแ แแแฃแ แงแแแแ แแแคแแ แแแชแแแก, แแแ แจแแ แแก แแแฃแแแก แคแแแแก แแ IP แแแกแแแแ แแแก แแแคแแ แแแชแแแก. แแก แแ แแก Layer 2 แแ Layer 3 OSI แฅแกแแแแก แแแแแแจแ.
แ แแแแกแแช แแฅแแแ แแงแแแแแ แฅแกแแแก Linux-แจแ, แแฅแแแ แฉแแแฃแแแแ แแ แแงแแแแแ แแแแจแแ แแแก, แ แแแแแแแช แกแแแแแแแ แแแแแฃแแ แแฅแแแแ แฅแกแแแฃแ แแแฌแงแแแแแแแแแแแ, แ แแแแแแแช, แแแแแก แแฎแ แแ, แแ แแก แแแแแแฃแขแแ แแ แแแแแกแขแแแแ แแแฃแแ แฅแกแแแฃแ แ แแแขแแ แคแแแกแแแ. แ แแแแกแแช แแแฌแงแแแแแแแ แแงแแแแแก แแแแจแแ แก, แแก แแแแแแแ แแฅแขแแฃแ แ แแ แแแแฆแแแแฃแแ. แแฃ แแแแจแแ แ แแ แแแแแแงแแแแแ, แแก แแ แแแฅแขแแฃแ แแ แแ แแแแแขแแแ แแฃแแแ.
แฅแกแแแแก แแแแจแแ แแแแก แแแแแขแแแ
ncmli แแ แแแ แแแ แกแแจแฃแแแแแแก แแแซแแแแ แกแฌแ แแคแแ แแแแแแขแแ แแ แแแฃแงแแแแแแแ แแแแแแแคแแแฃแ แแ แแ แแแแจแแ แแแ. แแแแแแแแแ, Wired แแแแจแแ แ 2-แแก แแแกแแแแขแแแแแ (enp0s8-แแ), แแฅแแแ แฃแแแ แจแแแกแ แฃแแแ แจแแแแแแ แแ แซแแแแแ แกแฃแแแ แแแแฎแแแ แแแแแก แกแแฎแแ:
$ sudo nmcli connection add type ethernet ifname enp0s8
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully added.
แขแแแแก แแคแชแแแจแ แฉแแแ แแแแฃแแแแแแ, แ แแ แแก แแฅแแแแ Ethernet แแแแจแแ แ, แฎแแแ ifname (แแแขแแ แคแแแกแแก แกแแฎแแแ) แแคแชแแแจแ แแแแฃแแแแแแ แฅแกแแแแก แแแขแแ แคแแแกแก, แ แแแแแก แแแแแงแแแแแแช แแแแแแ.
แแ, แ แ แแแฎแแแแ แแ แซแแแแแแก แแแจแแแแแก แจแแแแแ:
$ nmcli connection show
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
Wired connection 2 2279d917-fa02-390c-8603-3083ec5a1d3e ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet --
แจแแแฅแแแ แแฎแแแ แแแแจแแ แ, ethernet-enp0s8. แแแก แแแแแญแแแฃแแ แฐแฅแแแแ UUID แแ แแแแจแแ แแก แขแแแ แแงแ Ethernet. แแแแแ แแแแแแ แแแ แแก up แแ แซแแแแแแก แแแแแงแแแแแแ:
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
แแแแแ แแแแแ แจแแแแแแฌแแแ แแฅแขแแฃแ แ แแแแจแแ แแแแก แกแแ:
$ nmcli connection show --active
NAME UUID TYPE DEVICE
Wired connection 1 ac3241e4-b424-35d6-aaa7-07498561688d ethernet enp0s3
ethernet-enp0s8 09d26960-25a0-440f-8b20-c684d7adc2f5 ethernet enp0s8
Wired connection 3 52d89737-de92-35ec-b082-8cf2e5ac36e6 ethernet enp0s9
แแแแแขแแแฃแแแ แแฎแแแ แแแแจแแ แ ethernet-enp0s8, แแก แแฅแขแแฃแ แแ แแ แแงแแแแแก enp0s8 แฅแกแแแฃแ แแแขแแ แคแแแกแก.
แแแแจแแ แแแแก แแแงแแแแแ
ncmli แแ แแแ แแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแ แขแแแแ แจแแชแแแแแ แแ แกแแแฃแแ แแแแจแแ แแแแก แแแ แแแแขแ แแแ. แแแแแแแแแ, แแฅแแแ แฃแแแ แจแแชแแแแแ แแฅแแแแ แแแแแแแฃแ แ (DHCP) IP แแแกแแแแ แแ แกแขแแขแแแฃแ แ IP แแแกแแแแ แแแ.
แแแฅแแแ, แฉแแแ แฃแแแ แแแแแงแแแแ IP แแแกแแแแ แแ 192.168.4.26. แแแแกแแแแแก แฉแแแ แแแงแแแแแ แแ แแ แซแแแแแแก. แแแ แแแแ แแแ แแแแแ แแแแงแแแแแก IP แแแกแแแแ แแก, แฎแแแ แแแแ แ แแแแแแฅแแก IP แแแกแแแแ แแแก แแแงแแแแแแก แแแแแแก แฎแแแแ:
$ nmcli connection modify ethernet-enp0s8 ipv4.address 192.168.4.26/24
$ nmcli connection modify ethernet-enp0s8 ipv4.method manual
แแกแแแ แแ แแแแแแแฌแงแแแ แฅแแแฅแกแแแแก แแแฆแแแก แแแงแแแแแ. แฉแแแแ แกแแขแแกแขแ แแแแจแแ แแกแแแแก แแก แแ แแก 255.255.255.0, แแ /24 แฃแแแแกแ แแแ แจแ แฃแขแแแแชแแแกแแแแก (CIDR).
แชแแแแแแแแแแก แแแแฅแแแแแแแกแแแแก, แแฅแแแ แฃแแแ แแแแแ แแแ แแ แจแแแแแ แแแแแฅแขแแฃแ แแ แแแแจแแ แ:
$ nmcli connection down ethernet-enp0s8
Connection 'ethernet-enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
$ nmcli connection up ethernet-enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveC
แแฃ, แแแ แแฅแแ, แแญแแ แแแแแ DHCP-แแก แแแงแแแแแ, แแแแแแงแแแแ แแแขแแแแขแฃแ แ แแแชแแแแ แกแแฎแแแแซแฆแแแแแแแก:
$ nmcli connection modify ethernet-enp0s8 ipv4.method auto
แแแฌแงแแแแแแแแแแแ แแฃแจแแแแ
แแแแกแแแแแก แฉแแแ แแแงแแแแแ แแแฌแงแแแแแแแแก แแแแงแแคแแแแแแก.
แแแฌแงแแแแแแแแก แกแขแแขแฃแกแแก แจแแแแฌแแแแ
$ nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected Wired connection 1
enp0s8 ethernet connected ethernet-enp0s8
enp0s9 ethernet connected Wired connection 3
lo loopback unmanaged --
แแแฌแงแแแแแแแแก แแแคแแ แแแชแแแก แแแแฎแแแแ
แแแแกแแแแแก แแแแแแงแแแแ แฉแแแแแแแก แแแฅแแแแแแ แแแฌแงแแแแแแแแก แแแแงแแคแแแแแแแแ (แแฅแแแ แฃแแแ แแแฃแแแแแ แแแฌแงแแแแแแแแก แกแแฎแแแ). แแ แแแ แแแ แแฉแแแแแแก แฃแแแ แแ แแแคแแ แแแชแแแก, แฎแจแแ แแ แ แแแแแแแแ แแแแ แแแ.
แแแแแ แจแแแฎแแแแ enp0s8 แแแขแแ แคแแแกแก, แ แแแแแกแแช แฉแแแแ แแฎแแแ แแแแจแแ แ แแงแแแแแก. แแแแแ แแแแ แฌแแฃแแแแ, แ แแ แแก แแงแแแแแก แแฃแกแขแแ แแ IP แแแกแแแแ แแก, แ แแแแแแช แแแ แ แแแแแงแแแแ:
$ nmcli device show enp0s8
GENERAL.DEVICE: enp0s8
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:81:16:20
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ethernet-enp0s8
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/6
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.4.26/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.4.0/24, nh = 0.0.0.0, mt = 103
IP6.ADDRESS[1]: fe80::6d70:90de:cb83:4491/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 103
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
แกแแแแแแ แแแแ แ แแแคแแ แแแชแแแ. แแแแแแงแแ แแแแแแ แ:
- แฅแกแแแแก แแแขแแ แคแแแกแแก แกแแฎแแแ: enp0XXX
- แฒแแแจแแ แแก แขแแแ: แกแแแแแแแแ Ethernet แแแแจแแ แ.
- แฉแแแ แแฎแแแแแ แแแฌแงแแแแแแแแก MAC แแแกแแแแ แแก.
- แแแแแแแแฃแแแ แแแแแชแแแแก แแแฅแกแแแแแฃแ แ แแ แแแฃแแ (MTU). - แแ แแ แแแแแขแแก แกแแกแแ แแแแแ แแแแแชแแแแ แแแแแแก แแแฅแกแแแแแฃแ แ แแแแ, แ แแแแแแช แจแแแซแแแแ แแแแแแชแแก แแ แแขแแแแแแ แคแ แแแแแแขแแชแแแก แแแ แแจแ.
- แแแฌแงแแแแแแแ แแแแแแแ แแแแแแจแแ แแแฃแแแ.
- แแแแจแแ แแก แกแแฎแแแแ แแแแ แแแฌแงแแแแแแแแก แแงแแแแแก: ethernet-enp0s8.
- แแแฌแงแแแแแแแ แแงแแแแแก IP แแแกแแแแ แแ, แ แแแแแแช แแแ แ แแแแแแแกแขแแแแ แแ: 192.168.4.26/24.
แกแฎแแ แแแคแแ แแแชแแ แแฎแแแ แแแ แจแ แฃแขแแแแชแแแกแ แแ แแแแจแแ แแก แแแ แแแญแแก แแแแฃแแแกแฎแแแ แแแ แแแแขแ แแแก. แแกแแแ แแแแแแแแแแฃแแแ แแแแแ แแขแฃแ แฅแกแแแแ.
แแแขแแ แแฅแขแแฃแแ nmcli แ แแแแฅแขแแ แ
nmcli-แก แแกแแแ แแฅแแก แแแ แขแแแ แแแขแแ แแฅแขแแฃแแ แ แแแแฅแขแแ แ, แ แแแแแแแแแช แจแแแซแแแแ แฃแคแ แ แแแแคแแ แขแฃแแ แแงแแก แแแแแแ แแแกแแแแก แแฃแจแแแแ. แแแแแแแแแ, Ethernet-enp0s8 แแแแจแแ แแ แแแกแแจแแแแแ, แแแแแแงแแแแ ะดะตะนััะฒะธะต แ แแแแฅแขแแ แแแ:
$ nmcli connection edit ethernet-enp0s8
แแแก แแกแแแ แแฅแแก แแชแแ แ แแแฎแแแ แแแ, แ แแแแแแช, แแฃแแชแ, แแแแแ แฃแคแ แ แแชแแ แแ, แแแแ แ แแแแกแแแแก แแแ แกแแ:
===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ethernet-enp0s8'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli>
แแฃ แแแ แแคแแแ แแแญแแแแก แแ แซแแแแแแก แแ แแแแญแแ แแ Enter-แก, nmcli แแฉแแแแแแก แงแแแแ แแแแจแแ แแก แแแแกแแแแแก:
===============================================================================
Connection profile details (ethernet-enp0s8)
===============================================================================
connection.id: ethernet-enp0s8
connection.uuid: 09d26960-25a0-440f-8b20-c684d7adc2f5
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: enp0s8
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1593967212
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --
แแแแแแแแแ, DHCP-แแ แแแแจแแ แแก แแแกแแงแแแแแแแ, แแแ แแคแแ goto ipv4 แแ แแแแฌแแแแฃแแแ แจแแแงแแแแแ:
nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search,
dns-options, dns-priority, addresses, gateway, routes, route-metric,
route-table, routing-rules, ignore-auto-routes, ignore-auto-dns,
dhcp-client-id, dhcp-iaid, dhcp-timeout, dhcp-send-hostname,
dhcp-hostname, dhcp-fqdn, dhcp-hostname-flags, never-default, may-fail,
dad-timeout
nmcli ipv4>
แจแแแแแ แฉแแฌแแ แแ set แแแแแแ auto แแ แแแแฌแแแแฃแแแ แจแแแงแแแแแ:
nmcli ipv4> set method auto
Do you also want to clear 'ipv4.addresses'? [yes]:
แแฃ แแกแฃแ แ แกแขแแขแแแฃแ แ IP แแแกแแแแ แแแก แแแกแฃแคแแแแแแ, แแแแฌแแแแฃแแแ แจแแแงแแแแแ. แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ, แฉแแฌแแ แแ No แแ แแแแญแแ แแ Enter. แจแแแแซแแแแ แจแแแแแฎแแ, แแฃ แคแแฅแ แแแ, แ แแ แแแแญแแ แแแแแ แแแแแแแแจแ. แแแแ แแ แจแแแแฎแฃแแ แกแขแแขแแแฃแ แ IP แแแกแแแแ แแแก แจแแแแฎแแแแแจแแช แแ, DHCP แแฅแแแแ แแแแแงแแแแแฃแแ, แแฃ แแแแแแ แแแงแแแแแฃแแแ แแแขแแแแขแฃแ แแ.
แแแแแแงแแแแ แจแแแแฎแแแก แแ แซแแแแแ แแฅแแแแ แชแแแแแแแแแแก แจแแกแแแแฎแแ:
nmcli ipv4> save
Connection 'ethernet-enp0s8' (09d26960-25a0-440f-8b20-c684d7adc2f5) successfully updated.
nmcli ipv4>
แแแ แแคแแ quit nmcli แแแขแแ แแฅแขแแฃแแ แ แแแแฅแขแแ แแแแ แแแกแแกแแแแแแ. แแฃ แแแแแฌแงแแแขแ แฌแแกแแแแก, แแแแแแงแแแแ แฃแแแแ แแ แซแแแแแ.
แแ แแก แงแแแแแคแแ แ แแ แแ แแก
แแแฎแกแแแแ nmcli Interactive Editor แแ แแแฎแแ แ แแแแแแ แแแ แแแแขแ แแ แแ แ แแแแแแ แแแแกแแแ แแฅแแก แแแแแแฃแ แแแ แแแแขแ แก. แแแขแแ แแฅแขแแฃแแ แ แแแแฅแขแแ แ แจแแกแแแแจแแแแ แแแกแขแ แฃแแแแขแแ, แแแแ แแ แแฃ แแกแฃแ แ แแแแแแงแแแแ nmcli แแ แ แแแแแแ แแแจแ แแ แกแแ แแแขแแแจแ, แแแแญแแ แแแแแ แแ แซแแแแแแก แฎแแแแก แ แแแฃแแแ แฃแแ แแแ แกแแ.
แแฎแแ, แ แแแแกแแช แแฅแแแ แแแฅแแ แกแแคแฃแซแแแแแ, แจแแแแแฌแแแ
แ แแแแแแแก แฃแคแแแแแแแก แจแแกแแฎแแ
แแแแแฃแ แ แกแแ แแแ แแแ - แ แแแแแแแ
แฌแงแแ แ: www.habr.com