Tendo comprado um laptop novo, lamento que meu amado Ubuntu não apóie mais os sensores e os fãs vibrem constantemente, tornando o trabalho desconfortável. Ao mesmo tempo, se você baixar o Windows 10 Pro pré-instalado no disco rígido original, haverá um silêncio agradável para o ouvido. Enquanto estava frio lá fora (e em casa), era suportável. Mas quando o calor chegou, a paciência chegou ao fim. Foi decidido migrar para o Windows.
No meu trabalho, uso várias máquinas virtuais para criar, testar e depurar software desenvolvido. O Windows 10 Pro inclui virtualização Hyper-V - depois que o dinheiro é pago, você precisa usá-lo! No Ubuntu, usei libvirt e máquinas virtuais em uma rede virtual interna.
Transferindo o Windows do disco original para o SSD e convertendo as imagens das máquinas virtuais para o formato hyper-v, com mágoa, comecei a desenvolver um novo sistema operacional.
Acabou não sendo tão assustador! Os desktops virtuais foram substituídos pelos desktops do Windows (infelizmente apenas os horizontais), o console substituiu o console WSL (Windows Subsystem for Linux), o VcXsrv foi instalado e adicionado ao programa de inicialização dos aplicativos X11, as máquinas virtuais começaram a trabalhar no Hyper-V e até conseguiram iniciar o OSX.
O terminal nativo acabou por não ser totalmente conveniente e sem abas, portanto foi implacavelmente substituído pelo terminal xfce4, que é iniciado por meio de um atalho com uma janela oculta do console do linux:

Object
C:\Windows\System32\wscript.exe ./runhidden.vbs bash -c "export DISPLAY=:0.0; export GDK_DPI_SCALE=1.2; cd ~; exec xfce4-terminal"
( , X11 ), :
' Simple command-line help.
select case WScript.Arguments(0)
case "-?", "/?", "-h", "--help"
WScript.echo "Usage: runHidden executable [...]" & vbNewLine & vbNewLine & "Runs the specified command hidden (without a visible window)."
WScript.Quit(0)
end select
' Separate the arguments into the executable name
' and a single string containing all arguments.
exe = WScript.Arguments(0)
sep = ""
for i = 1 to WScript.Arguments.Count -1
' Enclose arguments in "..." to preserve their original partitioning.
args = args & sep & """" & WScript.Arguments(i) & """"
sep = " "
next
' Execute the command with its window *hidden* (0)
WScript.CreateObject("Shell.Application").ShellExecute exe, args, "", "open", 0
:

, TP-LINK WR703N OpenWRT:

VPN . , , WiFi , , WiFi, . WiFi , , .
( ), , . , Windows .
Hyper-V . , . LAN Internal:

. , « » — Windows .
WiFi:

:

Ubuntu 16.04. 16.04? 18.04 /etc/network/interfaces netplan — ! :

, Microsoft UEFI .
, ifconfig. WiFi ip . , :
dhclient eth0 eth1 eth2
, dhcp.
eth0 — , eth1 — , eth2 — ( ). 192.168.3.0.
/etc/network/interfaces , , nano:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# Internal LAN
auto eth1
iface eth1 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
# The primary network interface
allow-hotplug eth2
iface eth2 inet dhcp
. ( ).
, .
:
sudo apt install dnsmasq iptables-persistent netfilter-persistent openvpn
ip :
cat > /etc/sysctl.d/10-forwarding.conf
net.ipv4.ip_forward=1
:
cat > /etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Fri Jun 22 11:13:10 2018
*nat
:PREROUTING ACCEPT [2901:568651]
:INPUT ACCEPT [707:80315]
:OUTPUT ACCEPT [445:30025]
:POSTROUTING ACCEPT [14:1200]
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth2 -j MASQUERADE
-A POSTROUTING -o tun+ -j MASQUERADE
COMMIT
# Completed on Fri Jun 22 11:13:10 2018
# Generated by iptables-save v1.6.0 on Fri Jun 22 11:13:10 2018
*filter
:INPUT ACCEPT [57264:68964200]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [44820:7558046]
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o tun+ -j ACCEPT
COMMIT
# Completed on Fri Jun 22 11:13:10 2018
dhcp :
cat > /etc/dnsmasq.d/router.conf
dhcp-authoritative
domain-needed
localise-queries
read-ethers
bogus-priv
expand-hosts
local-service
domain=lan
server=/lan/
dhcp-leasefile=/tmp/dhcp.leases
interface=eth1
dhcp-range=lan,192.168.3.100,192.168.3.249,255.255.255.0,12h
Windows !

openvpn .
, , ?
— Windows 10 ! . ! …

, . , . , , .
, ( — Visual Studio):

, , .
github.
, , (, ) Windows
NoWiFi.
, , , !
, !