Я хочу задокумментировать процесс, как я включаю свой тестовый полигон, базирующийся на связке Debian 10 + Proxmox 6 удаленно. Просто я сегодня, когда ехал в электричке, задумал используя все что у меня есть под руками, а именно смартфон включить свой полигон. Потому как чтобы на работе не палиться, запуская утилиту winbox подключаясь к удаленному серверу и уже от него включая через запуск скрипта компьютер тестового полигона или инициализировать VPN соединение, я использую то, что есть всегда под рукой – это смартфон Honor Huawei 5C

Моя схема:

1) Роутер (Mikrotik RB2011UiAS-2HnD), мой провайдер выдает мне динамический IPv4-адрес, используя данную возможность, я через Mikrotik Cloud получаю домен четвертого уровня. А чтобы к нему подключаться, на основном домене, к примеру ekzorchik.ru у меня настроена CNAME-запись. После уже на самом роутере есть правила в фаерволе на организацию VPN L2TP туннеля.

2) Компьютер/Сервер с установленной связкой Debian 10 + Proxmox 6

Предварительные шаги:

  • 1) На компьютере посредством BIOS активирована возможность включения по сети, применена технология Wake On LAN.Чтобы заработало включение по сети на материнской плате Gigabyte 970A-DS3P нужноDel (зайти в BIOS): → Power Management и значение параметра ErP сделать Disabled.
  • 2) На смартфоне настроено подключение через VPN к роутеру на CNAME-запись
  • 3) На Микротике создан скрипт для включения через WakeOnLan моего полигона
[ekzorchik@srv-gw] > system script add name="srv-proxmox" owner="ekzorchik" policy=”ftp,read,policy,password,sensitive,reboot,write,test,sniff,romon” source="/tool wol interface=bridge1 mac=E0:E5:5B:74:9B:D9"
  • 4) На Микротике настроены правила проброса порта на доступ к Web-интерфейсу моего полигона.
  • 5) На Смартфоне устанавливаю приложение Termux через PlayMarket.

Мои действия:

Шаг №1: На смартфоне инициализирую VPN подключение к роутеру: Настройки – Еще – VPN – выбираю настроенное соединение и нажимаю «Подключить» (VPN-соединение по протоколу L2TP/IPSec с общими ключами), убеждаюсь что статус «Подключено»

Шаг №2: Запускаю на смартфоне приложение Termux

Шаг №3: Из консоли приложения Termux проверяю какой IP адрес у смартфоне при подключенному к роутере через VPN туннель:

$ ip r

172.200.200.1 dev ppp0 proto kernel scope link src 172.200.200.94 -> адрес из VPN-сети отлично.

делаю запрос по SSH к своему роутеру на запуск скрипта:

$ ssh -l ekzorchik 172.200.200.1

Are you sure want to continue connecting (yes/no/[fingerprint])? Yes

ekzorchik@172.200.200.1’s password: ввожу пароль

[ekzorchik@srv-gw] >system script run number=0 (т.к. он у меня пока один)

Спустя несколько минут проверяю, что ресурс отвечает на ICMPзапросы:

[ekzorchik@srv-gw] > ping interface=bridge1 address=172.200.200.25

SEQ HOST                                     SIZE TTL TIME  STATUS            

    0 172.200.200.25     56  64 0ms 

    1 172.200.200.25                               56  64 0ms 

    sent=2 received=2 packet-loss=0% min-rtt=0ms avg-rtt=0ms max-rtt=0ms

[ekzorchik@srv-gw] >

Ответы приходят, что хост доступен, значит он включился через технологию WakeOnLAN

Отключаюсь от Mikrotik(а):

[ekzorchik@srv-gw] > quit

Interrupted

    Connection to 172.200.200.1 closed

$

Завершаю работу сессии приложения termux

$ exit

В следующий раз, когда понадобиться запустить, то из истории подниму команду подключения к Mikrotik приложения Termux.

Шаг №4: Закрываю VPN сессию на смартфоне:

Настройки – Еще – VPN – щелкаю по установленному VPN-соединению и нажимаю «Отключить».

Шаг №5: Теперь уже подключаюсь через браузер на адрес полигона (связка Debian 10 + Proxmox 6) либо с телефона, либо с планшета, либо работы по URL адресу вида: https://CNAME-запись:Forward-port и где отрабатывает правило проброс порта на IP вида: https://IP&DNS:8006 , авторизуюсь и начинаю работать.

Нюансы от 20.12.2019

В один момент включение через Wake On Lan перестало отрабатывать (я переустанавливал свой полигон Debian 10 + Proxmox 6), настройка для BIOS выше не помогала.

Вспомнил, что нужно в настройках сетевой карты включить работу Wake On Lan, делается это через утилиту ethtool:

ekzorchik@srv-proxmox:~$ sudo apt-get install ethtool
ekzorchik@srv-proxmox:~$ sudo ethtool vmbr0
Settings for vmbr0:
Link detected: yes
ekzorchik@srv-proxmox:~$

ekzorchik@srv-proxmox:~$ sudo ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full 
100baseT/Half 100baseT/Full 
1000baseT/Full 
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full 
100baseT/Half 100baseT/Full 
1000baseT/Full 
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full 
100baseT/Half 100baseT/Full 
1000baseT/Half 1000baseT/Full 
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
ekzorchik@srv-proxmox:~$

Директива Wake-on: g означает, что всё работает.

ekzorchik@srv-proxmox:~$ sudo ethtool -s enp3s0 wol g
ekzorchik@srv-proxmox:~$ sudo ethtool enp3s0 | grep Wake
Supports Wake-on: pumbg
Wake-on: g
ekzorchik@srv-proxmox:~$

После выключил систему

А включил через:

ekzorchik@navy:~$ alias | grep kvm1wol
alias kvm1wol='wakeonlan -i 255.255.255.255 E0:D5:5E:75:9B:D9'

Данный алиас прописан в файле:

ekzorchik@navy:~$ nano ~/.bashrc
alias kvm1wol='wakeonlan -i 255.255.255.255 E0:D5:5E:75:9B:D9'
ekzorchik@navy:~$ source ~/.bashrc

Работает.
Странно прошло пару часов, а после ни как как выше ни так не смог включить:

[ekzorchik@ekzorchik] > tool wol interface=bridge1 mac=E0:D5:5E:75:9B:D9

Разбираюсь, проверяю

ekzorchik@srv-proxmox:~$ sudo ethtool enp3s0 | grep Wake
[sudo] password for ekzorchik: 
Supports Wake-on: pumbg
Wake-on: d

опять выключилась настройка, нужно ее включать при каждой загрузке

ekzorchik@srv-proxmox:~$ ip r
default via 172.33.33.1 dev vmbr0 
10.90.90.0/24 dev vmbr1 proto kernel scope link src 10.90.90.1 
172.33.33.0/24 dev vmbr0 proto kernel scope link src 172.33.33.25 
ekzorchik@srv-proxmox:~$ cat /etc/network/interfaces | grep enp
allow-hotplug enp3s0
iface enp3s0 inet manual
bridge-ports enp3s0
ekzorchik@srv-proxmox:~$

ekzorchik@srv-proxmox:~$ sudo nano /etc/network/interfaces
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug enp3s0
iface enp3s0 inet manual
ethernet-wol g
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
auto vmbr1
iface vmbr1 inet static
address 10.90.90.1
netmask 24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.90.90.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.90.90.0/24' -o vmbr0 -j MASQUERADE

ekzorchik@srv-proxmox:~$ sudo poweroff

 

После того, как система выключится, вытаскиваю кабель питания из блока питания, спустя секунд 10 подключаю его и инициирую запуск компьютера (своего тестового полигона снова):

И вот теперь удаленное включение отработало.

Итого, я для себя зафиксировал в шагах, как включать свой полигон, в планах настроить все вышеуказанное через звонок на определенный номер с выполнением команд диалплана + защита на добавочный. Во! Хорошая задумка. Так и учусь, создавая себе задачи. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.