Habiendo comprado una nueva computadora portátil, lamenté que mi amado Ubuntu ya no sea compatible con los sensores y los ventiladores suenan constantemente, lo que hace que el trabajo sea incómodo. Al mismo tiempo, si descarga Windows 10 Pro preinstalado del disco duro original, habrá un silencio agradable para el oído. Si bien hacía frío afuera (y en casa), era soportable. Pero cuando llegó el calor, la paciencia llegó a su fin. Se decidió migrar a Windows.
En mi trabajo, utilizo numerosas máquinas virtuales para construir, probar y depurar software desarrollado. Windows 10 Pro incluye virtualización Hyper-V: una vez que se paga el dinero, ¡debe usarlo! En Ubuntu, usé libvirt y máquinas virtuales en una red virtual interna.
Transfiriendo Windows desde el disco original al SSD y convirtiendo las imágenes de las máquinas virtuales al formato para hyper-v, con dolor de corazón, comencé a desarrollar un nuevo sistema operativo.
Resultó no tan aterrador! Los escritorios virtuales fueron reemplazados por escritorios de Windows (desafortunadamente solo horizontales), la consola reemplazó la consola WSL (Windows Subsystem for Linux), se instaló VcXsrv y se agregó al programa de inicio para aplicaciones X11, las máquinas virtuales comenzaron a funcionar en Hyper-V e incluso lograron iniciar OSX.
El terminal nativo resultó no ser del todo conveniente y sin pestañas, por lo que fue reemplazado sin piedad por el terminal xfce4, que se inicia a través de un acceso directo con una ventana oculta de la consola de Linux:

Objeto
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.
, , , !
, !