Blame
3cc512 | Mayekkuzu | 2024-12-08 13:39:47 | 1 | # Proxmox |
2 | ||||
04b05a | Mayekkuzu | 2024-12-08 14:44:17 | 3 |  |
4 | ||||
3cc512 | Mayekkuzu | 2024-12-08 13:39:47 | 5 | Proxmox - достаточно удобная в употреблении система для организации виртуальных машин на [KVM](Linux/System/KVM) и [LXC](Linux/System/LXC)-контейнеров для своих нужд. Для домашнего использования бесплатна, но обновление пакетов за деньги. |
6 | ||||
7 | Базируется на debian, может быть установлена поверх него, но так же есть уже готовый настроенный образ для установки на сервер. Так же на официальном сайте имеются образы для организации Backup-сервера proxmox. |
|||
04b05a | Mayekkuzu | 2024-12-08 14:44:17 | 8 | |
d8370a | Mayekkuzu | 2025-04-26 16:33:08 | 9 | ## RAID 1 на mdadm |
10 | ||||
11 | Возможности с GUI организовать raid на proxmox к сожалению нет. Но через cli - можно. Ставим пакет: |
|||
12 | ```bash |
|||
13 | apt install mdadm |
|||
14 | ``` |
|||
15 | ||||
16 | Далее смотрим диски, в моем случае это выглядит так: |
|||
17 | ```bash |
|||
18 | root@main-server:~# lsblk |
|||
19 | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS |
|||
20 | sda 8:0 0 931.5G 0 disk |
|||
21 | ├─VMs_1TB_SATA-vm--102--disk--0 252:0 0 15G 0 lvm |
|||
22 | ... |
|||
23 | sdb 8:16 0 3.6T 0 disk <-- Хочу RAID на этом диске |
|||
24 | sdc 8:32 0 14.6T 0 disk |
|||
25 | └─md127 9:127 0 14.6T 0 raid1 |
|||
26 | ... |
|||
27 | sdd 8:48 0 3.6T 0 disk <-- И на этом |
|||
28 | sde 8:64 0 14.6T 0 disk |
|||
29 | └─md127 9:127 0 14.6T 0 raid1 |
|||
30 | ... |
|||
31 | nvme0n1 259:0 0 931.5G 0 disk |
|||
32 | ├─VMs_1TB_NVME-vm--101--disk--0 252:3 0 32G 0 lvm |
|||
33 | ... |
|||
34 | nvme1n1 259:1 0 232.9G 0 disk |
|||
35 | ├─nvme1n1p1 259:2 0 1007K 0 part |
|||
36 | ... |
|||
37 | ``` |
|||
38 | Следовательно /dev/sdb и /dev/sdd - это мои целевые диски по 4TB |
|||
39 | ||||
40 | Собираем RAID: |
|||
41 | ```bash |
|||
42 | root@main-server:~# mdadm --create --verbose /dev/md1 -l 1 -n 2 /dev/sd{b,d} |
|||
43 | mdadm: Note: this array has metadata at the start and |
|||
44 | may not be suitable as a boot device. If you plan to |
|||
45 | store '/boot' on this device please ensure that |
|||
46 | your boot-loader understands md/v1.x metadata, or use |
|||
47 | --metadata=0.90 |
|||
48 | mdadm: size set to 3906886464K |
|||
49 | mdadm: automatically enabling write-intent bitmap on large array |
|||
50 | Continue creating array? y |
|||
51 | mdadm: Defaulting to version 1.2 metadata |
|||
52 | mdadm: array /dev/md1 started. |
|||
53 | ``` |
|||
54 | ||||
55 | Если получаем ошибку: |
|||
56 | ```bash |
|||
57 | mdadm: Unrecognised md component device - /dev/sdb |
|||
58 | mdadm: Unrecognised md component device - /dev/sdd |
|||
59 | ``` |
|||
60 | ||||
61 | То удаляем метаданные и подпись на дисках: |
|||
62 | ```bash |
|||
63 | wipefs --all --force /dev/sd{b,d} |
|||
64 | ``` |
|||
65 | ||||
66 | Далее записываем в /etc/mdadm/mdadm.conf (Если нет папки /etc/mdadm то создаем) |
|||
67 | ```bash |
|||
68 | echo "DEVICE partitions" > /etc/mdadm/mdadm.conf |
|||
69 | mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf |
|||
70 | ``` |
|||
71 | ||||
72 | Содержимое будет такое: |
|||
73 | ``` |
|||
74 | DEVICE partitions |
|||
75 | ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 name=main-server:1 UUID=70d5b802:3123a9c1:821fa70d:664623ec |
|||
76 | devices=/dev/sdb,/dev/sdd |
|||
77 | ``` |
|||
78 | ||||
79 | А отследить статус синка дисков можно командой: |
|||
80 | ```bash |
|||
81 | root@main-server:~# cat /proc/mdstat |
|||
82 | Personalities : [raid1] [raid0] [raid6] [raid5] [raid4] [raid10] |
|||
83 | md1 : active raid1 sdd[1] sdb[0] |
|||
84 | 3906886464 blocks super 1.2 [2/2] [UU] |
|||
85 | [======>..............] resync = 32.0% (1251235264/3906886464) finish=294.7min speed=150152K/sec |
|||
86 | bitmap: 21/30 pages [84KB], 65536KB chunk |
|||
87 | ``` |
|||
88 | ||||
89 | Ресинк занимает достаточно большое количество времени, а пока что создадим LVM на этом массиве: |
|||
90 | ```bash |
|||
91 | vgcreate Media4TBRaid /dev/md1 |
|||
92 | lvcreate -l 100%FREE --thinpool lv_raid Media4TBRaid |
|||
93 | ``` |
|||
94 | ||||
95 | Если раздел не отобразился в списке, добавляем через GUI. Идем в Datacenter -> Storage -> Add и заполняем ID. Обязательно выбираем Volume Group который мы указали ранее |
|||
96 | ||||
a5f876 | Mayekkuzu | 2025-04-26 16:34:55 | 97 |  |
d8370a | Mayekkuzu | 2025-04-26 16:33:08 | 98 | |
99 | Если по какой то причине имя Logical Volume вам не нравится, то переименовать можно так: |
|||
100 | ```bash |
|||
101 | lvrename Media4TBRaid /dev/Media4TBRaid/lv_raid /dev/Media4TBRaid/MediaStorage4TB |
|||
102 | ``` |
|||
103 | ||||
104 | ||||
04b05a | Mayekkuzu | 2024-12-08 14:44:17 | 105 | ## Настройка ИБП для Proxmox |
106 | ||||
107 | В моем случае это ИБП Ippon Back Basic 650 Euro. Подключаем его к серверу по USB. Проверяем его USB id |
|||
108 | ||||
109 | ```bash |
|||
110 | root@kanonik-server:~# lsusb |
|||
111 | Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub |
|||
112 | Bus 001 Device 002: ID 0665:5161 Cypress Semiconductor USB to Serial <- Это оно если что |
|||
113 | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
|||
114 | ``` |
|||
115 | ||||
116 | Проверим корректно ли работает устроиство с Proxmox |
|||
117 | ||||
118 | ```bash |
|||
119 | root@kanonik-server:~# lsusb -v -s 1:2 |
|||
120 | ||||
121 | Bus 001 Device 002: ID 0665:5161 Cypress Semiconductor USB to Serial |
|||
122 | Device Descriptor: |
|||
123 | bLength 18 |
|||
124 | bDescriptorType 1 |
|||
125 | bcdUSB 1.10 |
|||
126 | bDeviceClass 0 |
|||
127 | bDeviceSubClass 0 |
|||
128 | bDeviceProtocol 0 |
|||
129 | bMaxPacketSize0 8 |
|||
130 | idVendor 0x0665 Cypress Semiconductor |
|||
131 | idProduct 0x5161 USB to Serial |
|||
132 | bcdDevice 0.02 |
|||
133 | iManufacturer 1 INNO TECH |
|||
134 | iProduct 2 USB to Serial |
|||
135 | iSerial 3 20100826 |
|||
136 | bNumConfigurations 1 |
|||
137 | Configuration Descriptor: |
|||
138 | bLength 9 |
|||
139 | bDescriptorType 2 |
|||
140 | wTotalLength 0x0022 |
|||
141 | bNumInterfaces 1 |
|||
142 | bConfigurationValue 1 |
|||
143 | iConfiguration 3 20100826 |
|||
144 | bmAttributes 0x80 |
|||
145 | (Bus Powered) |
|||
146 | MaxPower 100mA |
|||
147 | Interface Descriptor: |
|||
148 | bLength 9 |
|||
149 | bDescriptorType 4 |
|||
150 | bInterfaceNumber 0 |
|||
151 | bAlternateSetting 0 |
|||
152 | bNumEndpoints 1 |
|||
153 | bInterfaceClass 3 Human Interface Device |
|||
154 | bInterfaceSubClass 0 |
|||
155 | bInterfaceProtocol 0 |
|||
156 | iInterface 4 Sample HID |
|||
157 | HID Device Descriptor: |
|||
158 | bLength 9 |
|||
159 | bDescriptorType 33 |
|||
160 | bcdHID 1.00 |
|||
161 | bCountryCode 0 Not supported |
|||
162 | bNumDescriptors 1 |
|||
163 | bDescriptorType 34 Report |
|||
164 | wDescriptorLength 27 |
|||
165 | Report Descriptors: |
|||
166 | ** UNAVAILABLE ** |
|||
167 | Endpoint Descriptor: |
|||
168 | bLength 7 |
|||
169 | bDescriptorType 5 |
|||
170 | bEndpointAddress 0x81 EP 1 IN |
|||
171 | bmAttributes 3 |
|||
172 | Transfer Type Interrupt |
|||
173 | Synch Type None |
|||
174 | Usage Type Data |
|||
175 | wMaxPacketSize 0x0008 1x 8 bytes |
|||
176 | bInterval 32 |
|||
177 | Device Status: 0x0000 |
|||
178 | (Bus Powered) |
|||
179 | ``` |
|||
180 | ||||
181 | Далее ставим пакет nut с репозитория |
|||
182 | ||||
183 | ```bash |
|||
184 | apt install nut -y |
|||
185 | ``` |
|||
186 | Запустим nut-scanner, проверим находит ли сканер наш ИБП |
|||
187 | ```bash |
|||
188 | root@kanonik-server:~# nut-scanner -U |
|||
189 | Scanning USB bus. |
|||
190 | [nutdev1] |
|||
191 | driver = "nutdrv_qx" |
|||
192 | port = "auto" |
|||
193 | vendorid = "0665" |
|||
194 | productid = "5161" |
|||
195 | product = "USB to Serial" |
|||
196 | vendor = "INNO TECH" |
|||
197 | bus = "001" |
|||
198 | ``` |
|||
199 | ||||
200 | Отлично, делаем бекапы конфиг-файлов перед редактированием |
|||
201 | ```bash |
|||
202 | cp /etc/nut/nut.conf /etc/nut/nut.example.conf |
|||
203 | cp /etc/nut/ups.conf /etc/nut/ups.example.conf |
|||
204 | cp /etc/nut/upsd.conf /etc/nut/upsd.example.conf |
|||
205 | cp /etc/nut/upsd.users /etc/nut/upsd.example.users |
|||
206 | cp /etc/nut/upsmon.conf /etc/nut/upsmon.example.conf |
|||
207 | cp /etc/nut/upssched.conf /etc/nut/upssched.example.conf |
|||
208 | cp /etc/nut/upssched-cmd /etc/nut/upssched-cmd.example |
|||
209 | ``` |
|||
210 | Теперь приступаем к настройке. Открываем `/etc/nut/nut.conf` и редактируем единственную директиву в конце файла: |
|||
211 | ``` |
|||
212 | MODE=netserver |
|||
213 | ``` |
|||
214 | Далее открываем `/etc/nut/ups.conf` и удалив все содержимое прописываем: |
|||
215 | ``` |
|||
216 | pollinterval = 15 |
|||
217 | maxretry = 3 |
|||
218 | ||||
219 | offdelay = 120 |
|||
220 | ondelay = 240 |
|||
221 | ||||
222 | [ippon] |
|||
223 | driver = nutdrv_qx |
|||
224 | port = auto |
|||
225 | desc = "INNO TECH" |
|||
226 | vendorid = 0665 |
|||
227 | productid = 5161 |
|||
228 | serial = 20100826 |
|||
229 | ``` |
|||
230 | Запустим `upsdrvctl start` для проверки запуска драйвера: |
|||
231 | ```bash |
|||
232 | root@kanonik-server:~# upsdrvctl start |
|||
233 | Network UPS Tools - UPS driver controller 2.8.0 |
|||
234 | Network UPS Tools - Generic Q* USB/Serial driver 0.32 (2.8.0) |
|||
235 | USB communication driver (libusb 1.0) 0.43 |
|||
236 | Duplicate driver instance detected (PID file /run/nut/nutdrv_qx-ippon.pid exists)! Terminating other driver! |
|||
237 | Using protocol: Q1 0.07 |
|||
238 | Can't autodetect number of battery packs [-1/13.60] |
|||
239 | Battery runtime will not be calculated (runtimecal not set) |
|||
240 | ``` |
|||
241 | Не обращаем внимания на ошибки, потому как ИБП простенький и в нем нет реализации сбора метрик с battery pack. |
|||
242 | ||||
243 | Открываем `/etc/nut/upsd.conf` и удалив все, прописываем: |
|||
244 | ``` |
|||
245 | LISTEN 0.0.0.0 3493 |
|||
246 | LISTEN :: 3493 |
|||
247 | ``` |
|||
248 | Теперь открываем nano `/etc/nut/upsd.users` и так же удалив все содержимое вписываем учетки администратора и юзера для службы NUT: |
|||
249 | ``` |
|||
250 | [upsadmin] |
|||
251 | # Administrative user |
|||
252 | password = ADMINPASSWORD |
|||
253 | # Allow changing values of certain variables in the UPS. |
|||
254 | actions = SET |
|||
255 | # Allow setting the "Forced Shutdown" flag in the UPS. |
|||
256 | actions = FSD |
|||
257 | # Allow all instant commands |
|||
258 | instcmds = ALL |
|||
259 | upsmon master |
|||
260 | ||||
261 | [upsuser] |
|||
262 | # Normal user |
|||
263 | password = USERPASSWORD |
|||
264 | upsmon slave |
|||
265 | ``` |
|||
266 | Далее открываем `/etc/nut/upsmon.conf` и удалив все содержимое вписываем: |
|||
267 | ``` |
|||
268 | RUN_AS_USER root |
|||
269 | MONITOR ippon@localhost 1 upsadmin ADMINPASSWORD master |
|||
270 | ||||
271 | MINSUPPLIES 1 |
|||
272 | SHUTDOWNCMD "/sbin/shutdown -h" |
|||
273 | NOTIFYCMD /usr/sbin/upssched |
|||
274 | POLLFREQ 4 |
|||
275 | POLLFREQALERT 2 |
|||
276 | HOSTSYNC 15 |
|||
277 | DEADTIME 24 |
|||
278 | MAXAGE 24 |
|||
279 | POWERDOWNFLAG /etc/killpower |
|||
280 | ||||
281 | NOTIFYMSG ONLINE "UPS %s on line power" |
|||
282 | NOTIFYMSG ONBATT "UPS %s on battery" |
|||
283 | NOTIFYMSG LOWBATT "UPS %s battary is low" |
|||
284 | NOTIFYMSG FSD "UPS %s: forced shutdown in progress" |
|||
285 | NOTIFYMSG COMMOK "Communications with UPS %s established" |
|||
286 | NOTIFYMSG COMMBAD "Communications with UPS %s lost" |
|||
287 | NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding" |
|||
288 | NOTIFYMSG REPLBATT "UPS %s battery needs to be replaced" |
|||
289 | NOTIFYMSG NOCOMM "UPS %s is unavailable" |
|||
290 | NOTIFYMSG NOPARENT "upsmon parent process died - shutdown impossible" |
|||
291 | ||||
292 | NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC |
|||
293 | NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC |
|||
294 | NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC |
|||
295 | NOTIFYFLAG FSD SYSLOG+WALL+EXEC |
|||
296 | NOTIFYFLAG COMMOK SYSLOG+WALL+EXEC |
|||
297 | NOTIFYFLAG COMMBAD SYSLOG+WALL+EXEC |
|||
298 | NOTIFYFLAG SHUTDOWN SYSLOG+WALL+EXEC |
|||
299 | NOTIFYFLAG REPLBATT SYSLOG+WALL |
|||
300 | NOTIFYFLAG NOCOMM SYSLOG+WALL+EXEC |
|||
301 | NOTIFYFLAG NOPARENT SYSLOG+WALL |
|||
302 | ||||
303 | RBWARNTIME 43200 |
|||
304 | NOCOMMWARNTIME 600 |
|||
305 | ||||
306 | FINALDELAY 5 |
|||
307 | ``` |
|||
308 | Теперь открываем `/etc/nut/upssched.conf` и удалив все содержимое вписываем: |
|||
309 | ``` |
|||
310 | CMDSCRIPT /etc/nut/upssched-cmd |
|||
311 | PIPEFN /etc/nut/upssched.pipe |
|||
312 | LOCKFN /etc/nut/upssched.lock |
|||
313 | ||||
314 | AT ONBATT * START-TIMER onbatt 30 |
|||
315 | AT ONLINE * CANCEL-TIMER onbatt online |
|||
316 | AT LOWBATT * EXECUTE onbatt |
|||
317 | AT COMMBAD * START-TIMER commbad 30 |
|||
318 | AT COMMOK * CANCEL-TIMER commbad commok |
|||
319 | AT NOCOMM * EXECUTE commbad |
|||
320 | AT SHUTDOWN * EXECUTE powerdown |
|||
321 | AT SHUTDOWN * EXECUTE powerdown |
|||
322 | ``` |
|||
323 | Для работы следующего скрипта необходимо наличие папки `/etc/nut/upssched/`, если ее нет - создадим |
|||
324 | ```bash |
|||
325 | mkdir /etc/nut/upssched/ |
|||
326 | ``` |
|||
327 | Редактируем теперь сам скрипт `/etc/nut/upssched-cmd` |
|||
328 | ``` |
|||
329 | #!/bin/sh |
|||
330 | case $1 in |
|||
331 | onbatt) |
|||
332 | logger -t upssched-cmd "UPS running on battery" |
|||
333 | ;; |
|||
334 | shutdowncritical) |
|||
335 | logger -t upssched-cmd "UPS on battery critical, forced shutdown" |
|||
336 | /usr/sbin/upsmon -c fsd |
|||
337 | ;; |
|||
338 | upsgone) |
|||
339 | logger -t upssched-cmd "UPS has been gone too long, can't reach" |
|||
340 | ;; |
|||
341 | *) |
|||
342 | logger -t upssched-cmd "Unrecognized command: $1" |
|||
343 | ;; |
|||
344 | esac |
|||
345 | ``` |
|||
346 | Чтобы скрипт запускался, дадим ему права на запуск: |
|||
347 | ```bash |
|||
348 | chmod +x /etc/nut/upssched-cmd |
|||
349 | ``` |
|||
350 | Далее рестартим систему или перезапускаем сервисы: |
|||
351 | ```bash |
|||
352 | systemctl restart nut-server |
|||
353 | systemctl restart nut-client |
|||
354 | systemctl restart nut-monitor |
|||
355 | upsdrvctl stop |
|||
356 | upsdrvctl start |
|||
357 | ``` |
|||
358 | Проверяем получаем ли информацию с ИБП: |
|||
359 | ```bash |
|||
360 | root@kanonik-server:~# upsc ippon@localhost |
|||
361 | Init SSL without certificate database |
|||
362 | battery.voltage: 13.60 |
|||
363 | device.type: ups |
|||
364 | driver.name: nutdrv_qx |
|||
365 | driver.parameter.pollfreq: 30 |
|||
366 | driver.parameter.pollinterval: 15 |
|||
367 | driver.parameter.port: auto |
|||
368 | driver.parameter.productid: 5161 |
|||
369 | driver.parameter.serial: 20100826 |
|||
370 | driver.parameter.synchronous: auto |
|||
371 | driver.parameter.vendorid: 0665 |
|||
372 | driver.version: 2.8.0 |
|||
373 | driver.version.data: Q1 0.07 |
|||
374 | driver.version.internal: 0.32 |
|||
375 | driver.version.usb: libusb-1.0.26 (API: 0x1000109) |
|||
376 | input.frequency: 50.3 |
|||
377 | input.voltage: 229.4 |
|||
378 | input.voltage.fault: 230.0 |
|||
379 | output.voltage: 230.0 |
|||
380 | ups.beeper.status: enabled |
|||
381 | ups.delay.shutdown: 30 |
|||
382 | ups.delay.start: 180 |
|||
383 | ups.load: 10 |
|||
384 | ups.productid: 5161 |
|||
385 | ups.status: OL |
|||
386 | ups.temperature: 25.0 |
|||
387 | ups.type: offline / line interactive |
|||
388 | ups.vendorid: 0665 |
|||
389 | ``` |
|||
390 | ||||
391 | Теперь можно изменять параметры переменных командой `upsrw`. Например: |
|||
392 | ``` |
|||
393 | upsrw -s battery.charge.low=40 ippon@localhost # Минимальный заряд ИБП будет 40% |
|||
394 | ``` |
|||
395 | ## LXC-контейнер со страничкой статуса ИБП |
|||
396 | По аналогии можно сделать и на виртуалке, но много ресурсов такая штука не займет |
|||
397 | ||||
398 | Скачиваем темплейт debian для LXC, создаем новый контейнер. Даем ему 8 GB виртуальный жесткий диск, 1 ядро, 128 мб оперативной памяти, назначаем IP адрес. В опциях ставим галочку на автозапуск контейнера при перезапуске сервера. Запускаем контейнер. Ставим пакеты: |
|||
399 | ```bash |
|||
400 | apt install apache2 nut-cgi nut-client -y |
|||
401 | ``` |
|||
402 | Так же делаем бекап конфигов: |
|||
403 | ```bash |
|||
404 | cp /etc/nut/nut.conf /etc/nut/nut.example.conf |
|||
405 | cp /etc/nut/hosts.conf /etc/nut/hosts.example.conf |
|||
406 | cp /etc/nut/upsset.conf /etc/nut/upsset.example.conf |
|||
407 | cp /etc/nut/upsmon.conf /etc/nut/upsmon.example.conf |
|||
408 | ``` |
|||
409 | В файле `/etc/nut/nut.conf` редактируем директиву: |
|||
410 | ``` |
|||
411 | MODE=netclient |
|||
412 | ``` |
|||
413 | В файле `/etc/nut/hosts.conf` удаляем все и прописываем: |
|||
414 | ``` |
|||
415 | MONITOR ippon@тут_пишем_ip_адрес_proxmox "IPPON Euro 650" |
|||
416 | ``` |
|||
417 | В файле `/etc/nut/upsset.conf` нужно раскомментировать строчку: |
|||
418 | ``` |
|||
419 | I_HAVE_SECURED_MY_CGI_DIRECTORY |
|||
420 | ``` |
|||
421 | В файле `/etc/nut/upsmon.conf` удаляем все и прописываем: |
|||
422 | ``` |
|||
423 | RUN_AS_USER root |
|||
424 | MONITOR ippon@тут_пишем_ip_адрес_proxmox 1 upsuser USERPASSWORD slave |
|||
425 | ``` |
|||
426 | Теперь добавляем модуль cgi и рестартим сервис apache: |
|||
427 | ```bash |
|||
428 | sudo a2enmod cgi |
|||
429 | sudo systemctl restart apache2 |
|||
430 | ``` |
|||
431 | Проверяем работу монитора перейдя по `http://ip-or-fqdn-lxc/cgi-bin/nut/upsstats.cgi` |
|||
84c8c0 | Mayekkuzu | 2024-12-08 15:12:19 | 432 |  |
433 | ||||
434 | ## Wake-on-Lan на Proxmox |
|||
435 | Включаем WOL в BIOS материнской платы. Как это сделать ищите в интернете потому что на разных материнских платах это делается по разному. |
|||
436 | Теперь ставим утилиту `ethtool` |
|||
437 | ```bash |
|||
438 | sudo apt install ethtool |
|||
439 | ``` |
|||
440 | Теперь нам нужно узнать мак-адрес физической сетевой карты, для этого пишем `ip a` |
|||
441 | ```bash |
|||
442 | root@kanonik-server:~# ip a |
|||
443 | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 |
|||
444 | link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 |
|||
445 | inet 127.0.0.1/8 scope host lo |
|||
446 | valid_lft forever preferred_lft forever |
|||
447 | inet6 ::1/128 scope host noprefixroute |
|||
448 | valid_lft forever preferred_lft forever |
|||
449 | 2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000 |
|||
450 | link/ether d4:fd:11:6a:89:56 brd ff:ff:ff:ff:ff:ff |
|||
451 | ... |
|||
452 | ``` |
|||
453 | где d4:fd:11:6a:89:56 - наш мак-адрес. Записываем себе в блокнотик |
|||
454 | Теперь нужно определить поддерживает ли сетевая карта WOL. Для этого пишем: |
|||
455 | ```bash |
|||
456 | root@kanonik-server:~# ethtool enp2s0 |
|||
457 | Settings for enp2s0: |
|||
458 | Supported ports: [ TP MII ] |
|||
459 | Supported link modes: 10baseT/Half 10baseT/Full |
|||
460 | 100baseT/Half 100baseT/Full |
|||
461 | 1000baseT/Full |
|||
462 | Supported pause frame use: Symmetric Receive-only |
|||
463 | Supports auto-negotiation: Yes |
|||
464 | Supported FEC modes: Not reported |
|||
465 | Advertised link modes: 10baseT/Half 10baseT/Full |
|||
466 | 100baseT/Half 100baseT/Full |
|||
467 | 1000baseT/Full |
|||
468 | Advertised pause frame use: Symmetric Receive-only |
|||
469 | Advertised auto-negotiation: Yes |
|||
470 | Advertised FEC modes: Not reported |
|||
471 | Link partner advertised link modes: 10baseT/Half 10baseT/Full |
|||
472 | 100baseT/Half 100baseT/Full |
|||
473 | 1000baseT/Half 1000baseT/Full |
|||
474 | Link partner advertised pause frame use: No |
|||
475 | Link partner advertised auto-negotiation: Yes |
|||
476 | Link partner advertised FEC modes: Not reported |
|||
477 | Speed: 1000Mb/s |
|||
478 | Duplex: Full |
|||
479 | Auto-negotiation: on |
|||
480 | master-slave cfg: preferred slave |
|||
481 | master-slave status: slave |
|||
482 | Port: Twisted Pair |
|||
483 | PHYAD: 0 |
|||
484 | Transceiver: external |
|||
485 | MDI-X: Unknown |
|||
486 | Supports Wake-on: pumbg <--------- Поддержка WOL |
|||
487 | Wake-on: d <--------- Включен или нет |
|||
488 | Link detected: yes |
|||
489 | ``` |
|||
490 | Если не включен то пишем: |
|||
491 | ```bash |
|||
492 | sudo ethtool -s enp2s0 wol g |
|||
493 | ``` |
|||
494 | Теперь добавляем строчку `ethernet-wol g` в блок нашей сетевой карты в`/etc/network/interfaces`. В нашем случае это получилось в таком виде: |
|||
495 | ``` |
|||
496 | root@kanonik-server:~# cat /etc/network/interfaces |
|||
497 | auto lo |
|||
498 | iface lo inet loopback |
|||
499 | ||||
500 | iface enp2s0 inet manual |
|||
501 | ethernet-wol g |
|||
502 | ||||
503 | iface enp3s0 inet manual |
|||
504 | ``` |
|||
505 | Теперь выключаем сервер и пробуем включить его какой-нибудь утилитой по запуску компьютеров. В моем случае это тул в mikrotik: |
|||
7ea87a | Mayekkuzu | 2024-12-08 15:13:01 | 506 |  |