Я хочу задокумментировать процесс, как я включаю свой тестовый полигон, базирующийся на связке 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.