ืืืงื ื ืื ืืฉืชืืฉืื ืืืื ืืจื ื ืืื VPN ืืกืืื ืืื ืื ืืืจืช: ืืืฉืื ืฆืจืื IP ืืืขืืื, ืืงื ืืืื ืืืชืจ ืืงื ืืช VPS ืขื ืฉื ื IPs ืืืฉืจ ืืงื ืืช ืืชืืืช ืืกืคืง, ืืืฉืื ืจืืฆื ืืืฉืช ืืื ืืืชืจืื , ืืื ืจืง ืืื ืืืืชืจืื ืืฉืื ืืคืืจืฆืื ืืจืืกืืช, ืืืจืื ืฆืจืืืื IPv6, ืืื ืืกืคืง ืื ืืกืคืง ืืช ืื...
ืืจืื, ื ืืฆืจ ืืืืืจ VPN ืืืืฉืืจ ืขืฆืื ืฉื ืืฆื ืืฉืืืืฉ ืืจืืข ืืกืืื, ืืื ืืืืื ื ืื ืืฉ ืื ืจืง ืืืฉื ืืื ืืืืคืื ืืื ืืืขืชืื ืจืืืงืืช ืืชื ืืฉืชืืฉ ืืื ืื ืืื ืืช. ืื ืืฉื ื ืืืฉืืจืื ืจืืื ืืจืฉืช ืืืืชืืช ืฉืื, ืื, ืืืฉื, ืืฉื ื ืืื ืืื ืื ื ืืชื ืืืืืืจ VPN, ืืืื ื ืื ืืืชืจ ืืืฆืืจ ืื ืืจื ืืฉืืจืืช ืขื ืื ืชื ืืืืชื ืืื ืื ืืืฉืื ืขื ืืืืจื ืฉื ืื ืืืฉืืจ ืื ืคืจื .
ืื ืื ืคืขื ืืชืงื ืช ืืช OpenVPN ืขื ืื ืชื ืฉืื, ืื ืจืื ืฉืืืคืชืขืช ืืฆืืจื ืื ื ืขืืื ืืืื ืืืจ ืื ืขืืื. ื-SoCs ืฉื ืืคืืื ื ืชืืื ืืืืื ืขืืืจืื ืืขืจื ืชืขืืืจืช ื'ืืื-ืืื ืืื ืืขืืืช, ืขืงื ืืขืืจืช ืคืื ืงืฆืืืช ืื ืืชืื ืื-NAT ืืฉืื ื ืคืจื ืืืืืขื ืื ืืจืง ืืืฉืืื ืื, ืืืืขืืืื ืืขืืงืจืืื ืฉื ื ืชืืื ืืืื ืืืฉืื ืืืื, ืืืืืื ืืื ืืืขื ืขืืืก ืขืืืื. ืคืฉืจื ืื ืืืคืฉืจืช ืืืฉืื ืืืืจืืช ืืืืื ืฉื ืื ืชื ืืืืืืื ืืฉืืขืืชืืช ืืช ืืืืจ ืืืืฉืืจ ืืืืืืจ - ื ืชืืื ืขื ืืขืืืื ืืืงืื ืขืืืื ืคื ืืื, ืืืืืงืืื ืื ืจืง ืืงืืคืกื ืืืคืฆืช ืืืื ืืจื ื, ืืื ืื ื-NAS, ืืืจื ื. ืืืจืื ืืืขืจืืช ืืืืืืืืื ืืืชืืช.
ืื ืชื ืฉืื, TP-Link TL-WDR4300, ืื ืืืื ืืืืงืจื ืืืฉ - ืืืื ืืืคืืข ืืืืฆืข 2012, ืืืฉ ืื ืืขืื ืืจืืืืงืืืจืช MIPS560 32Kc 74 ืืื-ืืจืฅ, ืฉืขืืฆืืชื ืืกืคืืงื ืจืง ื-20-23 ืืื-ืืื ืืฉื ืืื ืฉื ืชืขืืืจื ืืืฆืคื ืช ืืจื OpenVPN, ืฉืื ืืคื ืกืื ืืจืืื ืืืืืจืืช ืฉื ืืืื ืืจื ื ืืืืชื ืืืืืจื ื ืืื ื ืืืื ืืืื.
ืืืฆื ื ืืื ืืืืืืจ ืืช ืืืืืจืืช ืฉื ืื ืืจื ืืืฆืคื ืช? ืื ืชื ืฉืื ืื ืคืื ืงืฆืืื ืื, ืชืืื ื-3x3 MIMO, ืืืืืคื ืืืื ืขืืื ืืื, ืื ืืืืชื ืจืืฆื ืืฉื ืืช ืืืชื.
ืืืืืื ืฉืืืื ื ืืื ืืขืฉืืช ืืคื ืืื ืืจื ื ืฉื 10 ืืื, ืืืชืื ืืคืืืงืฆืืืช ืฉืืืื ืขืืืื ื-node.js ืืืืจืื ืืืชื ืืงืืืฅ ืฉื 100 ืืื, ืืืืืืจ ืืช ืืื ืืืืฉืื ืืืงืื ืืืคืืืืืืฆืื, ื ืขืฉื ืืฉืื ื ืืจื - ื ืขืืืจ ืืช ืืืืืจ ื-VPN ื- "ืืืฉื" ืืขื ืืื ืืืื ืคืจืืืืงืืืื Orange Pi One, ืืืชื ื ืชืงืื ืืืืจื ืื ืชื ืืืื ืืชืคืืก ืืฆืืืืช ืจืฉืช ื-USB ืงืืืืืช, ืชืืืจืช 9.99$ ืืืื*!
* + ืืฉืืื, + ืืกืื, + ืขืืืจ ืืืจื, + MicroSD.
OpenVPN
ืื ื ืืชื ืืื ืืช ืืช ืืืขืื ืฉื ืื ืชื ืืืฉ ืืืืืืื - ืืื ืืกืืื ืืืฆืคืื ืืืืืืืจ ื ืชืื ืื ืืืืฆืขืืช ืืืืืืจืืชื AES-128-CBC-SHA1 ืืืืืจืืช ืฉื 50 Mb/s, ืฉืืื ืืืืจื ืืฉืืขืืชืืช ืืืืคื ืืคืขืืื ืฉื OpenVPN, ืืืืจื ืืืืืจื ื CHACHA20 ืฆืืคื ืขื ืืืืื POLY1305 ืืืืข ืืคืืื ื-130 ืืื-ืืื ืืฉื ืืื! ืืืืข ืืืืืจืืช ืฉื ืื ืืจืช ื-VPN ืื ืื ื ืืืื? ืืื ืขืืกืง ืืืขืืจ ืืืงืฉืจ ืืื ืืจืื ืืืฉืชืืฉ ืืืจืื ืืงืจื ื: OpenVPN ืืฆืคืื ืชืขืืืจื ืืืชืงืฉืจ ืขื ืืขืืื ืืืืฆืื ืืืงืฉืจ ืืืฉืชืืฉ, ืืื ืืชืื ืขืฆืื ืืชืจืืฉ ืืืงืฉืจ ืืืืื. ืืขืจืืช ืืืคืขืื ืฆืจืืื ืืขืืืจ ืื ืืืื ืงืืืื ืืืืืจื ืขืืืจ ืื ืืืืื ืฉืืชืงืืืช ืื ืืฉืืืจืช, ืืืคืขืืื ืืื ืืืืืช. ืืขืื ืื ืืืืขื ืืื ืืคืืืงืฆืืืช ื-VPN ืืคืืขืืืช ืืจื ืื ืื ืืชืงื TUN/TAP, ืืื ืืคืฉืจ ืืืืจ ืฉืืืขืื ืฉื ืืืืจืืช ื ืืืื ื ืืจืืช ืืืืคืืืืืืฆืื ืืงืืื ืฉื OpenVPN (ืื ืื, ืืืืื, ืืฉ ืืงืืืืช ืฉืฆืจืื ืืขืื ืืืชื ืืืืฉ). ืืฃ ืืงืื VPN ืฉื ืืจืื ืืฉืชืืฉ ืื ืืกืคืง ืืคืืื ืืืื-ืืื ืืฉืืืฆืคื ื ืืืฉืืชืช ืืืืฉื ืื ืืื ืฉืื, ืฉืื ืืืืจ ืขื ืืขืจืืืช ืขื ืืขืื ืืืฉ.
ืืชืื ืคื ืืืื
ื-Orange Pi One ืืืื ืืืื ืืืืช Xunlong ืืื ืืืฆืขื ืืืืื ืืืืชืจ ืืืืื ืช ืืืก ืืืฆืืขืื/ืืืืจ ืืจืืข. ืชืืืจืช 9.99$* ืืชื ืืงืื ืืขืื ARM Cortex-A7 ืืืฆืง ืขื ืืจืืข ืืืืืช ืืคืืขื (ืืฆืื) ืืืืืจืืช ืฉื 1008 ืืื-ืืจืฅ, ืืขืืื ืืืืจืืจ ืขื ืฉืื ืื ืืืืืจ ื-Raspberry Pi Zero ืื-Next Thing CHIP. ืืื ืืกืชืืืืื ืืืชืจืื ืืช. ืืืจืช Xunlong ืฉืื ืื ืืืคืก ืืืืืง ืืชืืื ืช ืืืืืืช ืฉืื, ืืืืื ืฉื-One ืืืฉืง ืืืืืจื, ืืื ืืคืืื ืื ืกืืคืงื ืงืืืฅ ืชืฆืืจืช ืืื, ืฉืื ืืืืจ ืขื ืชืืื ืืช ืืืื ืืช. Allwinner, ืืฆืจื ืืช SoC, ืื ืืื ื ืจืืืฉื ืืืืืื ืืชืืืื ืืืืฆืจ ืฉืื. ืื ืืขืื ืืื ืื ืจืง ืืืืฆืืขืื ืืื ืืืืืื ืืืขืจืืช ืืืคืขืื ืื ืืจืืืื 4.4.4, ืื ืฉืืืืจ ืฉืื ื ื ืืืฆืื ืืืฉืชืืฉ ืืงืจื ื 3.4 ืขื ืชืืงืื ื ืื ืืจืืืื. ืืืจืื ืืืื, ืืฉ ืืืืืื ืฉืืจืืืืื ืืคืฆืืช, ืขืืจืืื ืืช ืืงืจื ื, ืืืชืืื ืงืื ืืืืืืช ืชืืืื ืืงืจื ื ืืจืืฉื, ืืืืืจ. ืื ืืืขืฉื ืขืืฉืื ืืช ืืขืืืื ืขืืืจ ืืืฆืจื, ืื ืฉืืืจื ืืฉืืืืืช ืืืื ืืขืืื ืืฆืืจื ืืงืืืืช. ืืืืจืืชืื ืืืจืชื ืืืคืฆืช ืืจืืืืื; ืืื ืืชืขืืื ืช ืืขืชืื ืงืจืืืืช ืืื ืืืืช (ืืจืขืื ืื ืืืฉืื ืืืชืงื ืื ืืฉืืจืืช ืืจื ืื ืื ืืืืืืืช, ืืื ืขื ืืื ืืขืชืงืช ืงืืฆืื ืืืืืฆื ืืืืืืช, ืืคื ืฉืงืืจื ืืืจื ืืื ืขื Allwinner), ืืืื ืชืืืืช ืืจืื ืฆืืื ืืืงืคื, ืื ืืืื ืืืืจืื.
ื ืชื
ืืื ืื ืืืขืืืก ืืช ืืืขืื ืืืืฉ ืฉื ืื ืชื ืืืฆืคื ื ืืืืืืฅ ืืช ืืืืืจ ื-VPN ืฉืื ื, ื ืืื ืืืขืืืจ ืืช ืืืฉืืื ืืื ืืืชืคืื ืฉื ืืขืื Orange Pi ืืืง ืืืชืจ ืขื ืืื ืืืืืจื ืื ืชื ืืืจื ืืืฉืื. ืืืืืจ ืื ืืืืฆืขืืช Ethernet ืื USB ืขืืื ืืจืืฉ - ืฉื ื ืืชืงื ืื ืืืื ื ืชืืืื ืขื ืืื ืฉื ื ืืืืฉืืจืื, ืืื ืื ืจืฆืืชื ืื ืฆื ืืฆืืืืช ืงืืืืืช. ืืืจืื ืืืื, ืืฉ ืืืฆื.
ืฉืื ืืจืืืช USB GL850G, ืืืฉืืฉ ืื ืชื, ืชืืื ื-4 ืืฆืืืืช USB, ืฉืชืืื ืืื ืืื ื ืืืืืืช. ืื ืืจืืจ ืืืืข ืืืฆืจื ืื ืคืชื ืืืชื, ืื ื ืื ืื, ืืื ืืื ืืข ืืืฉืชืืฉืื ืืืืจ 4 ืืืฉืืจืื ืืขืื ืฆืจืืืช ืืจื ืืืืื (ืืืฉื ืืื ื ืื ืงืฉืืืื) ืืืช ืืืช. ืกืคืง ืืืื ืืกืื ืืจืื ืฉื ืื ืชื ืืื ื ืืืืขื ืืขืืืก ืืื. ืืื ืืงืจื ืื ืืืืืชื ื.
ืืื ืืงืื ืืฆืืืช USB ื ืืกืคืช, ืืชื ืจืง ืฆืจืื ืืืืืื ืฉื ื ืืืืื ืืคืื ืื 8(D-) ื-9(D+) ืื 11(D-) ื-12(D+).
ืขื ืืืช, ืื ืื ืืกืคืืง ืคืฉืื ืืืืจ ืฉื ื ืืชืงื ื USB ืืืงืืืช ืฉืืื ืืขืืื ืืื, ืืื ืขื Ethernet. ืจืืฉืืช, ืขืืื ื ืืืจืื ืืืื ืืื ืืขืืื ืืืฆื USB Client, ืืื ื-USB Host, ืืฉื ืืช, ืขืืื ื ืืืืืื ืืืฆื ืืืืฉืืจืื ืืืชืจื ืื ืืช ืื. ืืฉื ื ืื ืืื ืืชืงื ืื ืจืืื ืขืืืจ ืื ืฉื ืงืจื USB Gadgets (ืขื ืฉื ืชืช-ืืขืจืืช ืืืืช ืืื ืืงืก), ืืืืคืฉืจืื ืื ืืืงืืช ืกืืืื ืฉืื ืื ืฉื ืืชืงื ื USB: ืืชืื ืจืฉืช, ืืจืืืก ืฉืืข, ืืงืืืช ืืขืืืจ, ืืื ื ืืืืง, ืืฆืืื, ืงืื ืกืืื ืืืืฆืขืืช ืกืืืืจื ื ืื. ืืืืืื ืฉืืืืฉืืจ ืฉืื ื ืืขืืื ืขื ืืจืฉืช, ืืืงืื ืืชืื Ethernet ืืื ืืืื ืืืืชืจ ืขืืืจื ื.
ืืฉื ื ืฉืืืฉื ืชืงื ื Ethernet-ืขื-USB:
- NDIS ืืจืืืง (RNDIS). ืชืงื ืืืืฉื ืืืืช ืืืงืจืืกืืคื, ืืฉืืืืฉ ืืขืืงืจ ืืืืื Windows XP.
- ืืื ืืงืจืช ืืชืจื ื (ECM). ืชืงื ืคืฉืื ืฉืืืื ืืกืืจืืช Ethernet ืืชืื ืื ืืช USB. ืืขืืื ืืืืืืื ืงืืืืื ืขื ืืืืืจ USB, ืฉืืื ื ืื ืืืขืืืจ ืืกืืจืืช ืืื ืขืืืื, ืืื ืืืื ืืคืฉืืืช ืืืืืืืืช ืฉื ืืคืืง ื-USB, ืื ืื ืืืืจ ืืืืืื.
- ืืืื ืืืืืฆืืืช Ethernet (EEM). ืคืจืืืืงืื ืืื ืืืชืจ ืฉืืืงื ืืืฉืืื ืืืืืืช USB ืืืืื ืืฆืืจื ืืืคืืืืืืช ืืกืคืจ ืคืจืืืืื ืืืื, ืืืื ืืืืื ืืช ืืชืคืืงื.
- ืืืื ืืงืจืช ืจืฉืช (NCM). ืืคืจืืืืงืื ืืืืฉ ืืืืชืจ. ืืขื ืืืชืจืื ืืช ืฉื EEM ืืืืืขื ืขืื ืืืชืจ ืืช ืืืืืช ืืืืืืืืก.
ืืื ืืืจืื ืืื ืืื ืืืคืจืืืืงืืืื ืืืื ืืขืืื ืืืื ืฉืื ื, ืืื ืชืืื, ื ืฆืืจื ืืืืชืงื ืืงืฉืืื ืืกืืืืื. ืืฉื ืืขืืืื ืฉ-Allwinner ืืชืขื ืืื ืช ืจืง ืืืืงื ืืื ืืจืืืื ืฉื ืืงืจื ื, ืจืง Android Gadget ืขืืื ืืจืืื - ืืงืื ืฉืืืืฉื ืชืงืฉืืจืช ืขื adb, ืืืฆืื ืืืืฉืืจ ืืืืฆืขืืช ืคืจืืืืงืื MTP ืืืืงืื ืืื ื ืืืืง ืืืืฉืืจื ืื ืืจืืืื. ืื ืืจืืืื ืืืื'ื ืขืฆืื ืชืืื ืื ืืคืจืืืืงืื RNDIS, ืืื ืืื ืืงืืืงื ืืืืืช Allwinner. ืื ืชื ืกื ืืืจืืื ืืช ืืืืื ืขื ืื ืืืื'ื USB ืืืจ, ืืืืฉืืจ ืคืฉืื ืื ืืืคืืข ืืืขืจืืช, ืื ืืฉื ื ืื ืชืขืฉื.
ืืื ืืคืชืืจ ืืช ืืืขืื, ืืืจื ืืืืืืชืืช, ืืชื ืฆืจืื ืืืฆืื ืืช ืืืงืื ืฉืื ืืชืืื ืืงืจ ื-USB ืืงืื ืฉื ืืืืื'ื ืื ืืจืืืื android.c ืฉืฉืื ื ืขื ืืื ืืืคืชืืื, ืืื ืืฉ ืื ืคืชืจืื ืืืืฆืืข ืืคืืืช ืืืืืฆืืืช Ethernet ืขื ืขืืืืช USB:
--- sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:40.427088792 +0300
+++ sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:45.339088792 +0300
@@ -57,7 +57,7 @@
static sunxi_udc_io_t g_sunxi_udc_io;
static u32 usb_connect = 0;
static u32 is_controller_alive = 0;
-static u8 is_udc_enable = 0; /* is udc enable by gadget? */
+static u8 is_udc_enable = 1; /* is udc enable by gadget? */
#ifdef CONFIG_USB_SUNXI_USB0_OTG
static struct platform_device *g_udc_pdev = NULL;
ืชืืงืื ืื ืืืืฅ ืืฆื ืืงืื USB, ืืืืคืฉืจ ืื ืืืฉืชืืฉ ืืืืื'ืืื USB ืจืืืืื ื-Linux.
ืืขืช ืขืืื ืืื ืืช ืืืืฉ ืืช ืืืืื ืขื ืืชืืงืื ืืื ืืืืืื'ื ืืืจืืฉ. ืืืจืชื ื-EEM ืื... ืขื ืคื ืชืืฆืืืช ืืืืืงื, ืืชืืจืจ ืฉืืื ืคืจืืืืงืืืื ืืืชืจ ื-NCM.
ืืฆืืืช ืืืจืืืืื ื ืืกืคืง userpatches/kernel/sun8i-default/otg.patch
, ืขืจืื ืงืฆืช compile.sh
ืืืืจ ืืช ืืืืื'ื ืื ืืจืฉ:
ืืงืจื ื ืืืจืื ืืชืื ืืืืืช deb, ืืฉืจ ืื ืชืืื ืงืฉื ืืืชืงืื ืืืชื ืขื ืืืื ืืืืฆืขืืช dpkg
.
ืื ืื ืฉื ืืชืจ ืืื ืืืืจ ืืช ืืืื ืืืืฆืขืืช USB ืืืืืืืจ ืืช ืืชืื ืืจืฉืช ืืืืฉ ืฉืื ื ืืื ืืงืื ืืชืืืช ืืืืฆืขืืช DHCP. ืืื ืืขืฉืืช ืืืช ืืชื ืฆืจืื ืืืืกืืฃ ืืฉืื ืืื ืืื /etc/network/interfaces
:
auto usb0
iface usb0 inet dhcp
hwaddress ether c2:46:98:49:3e:9d
pre-up /bin/sh -c 'echo 2 > /sys/bus/platform/devices/sunxi_usb_udc/otg_role'
ืขืืืฃ ืืืืืืจ ืืช ืืชืืืช ื-MAC ืืืืคื ืืื ื, ืื... ืื ืืืื ืืงืจืื ืืื ืคืขื ืฉืืืืฉืืจ ืืืคืขื ืืืืฉ, ืืื ืื ื ืื ืืืฆืืง.
ืื ื ืืืืจืื ืืช ืืื ื-MicroUSB ืืืืืจ ื-OTG, ืืืืจืื ืืฉืื ืืื ืชื (ื ืืชื ืืกืคืง ืืืชื ืืคืื ืื 2 ื-3 ืฉื ืืืกืจืง, ืืื ืจืง ืืืืืจ ืืืฉืื).
ืื ืื ืฉื ืืชืจ ืืื ืืืืืืจ ืืช ืื ืชื. ืื ืืกืคืืง ืืื ืืืชืงืื ืืช ืืืืืื ืขื ืื ืื ืืืชืงื ืฉื EEM ืืืืืกืืฃ ืืช ืืชืงื ืจืฉืช ื-USB ืืืืฉ ืฉืื ื ืืืฉืจ ืฉื ืืืืจ ืืืืช ืืืฉ ืืืงืืืืช:
opkg install kmod-usb-net-cdc-eem
ืืื ืื ืชื ืืช ืื ืืชืขืืืจื ืืื ืืจืช ื-VPN, ืขืืื ืืืืกืืฃ ืืื SNAT ืืืชืืืช ื-IP ืฉื ืืืื ืืฆื ืื ืชื, ืื ืืืคืืฅ ืืช ืืชืืืช ืืืื ืืืชืืืช ืฉืขืจ ืืจื dnsmasq. ืื ืืืืจืื ื ืขืฉื ืขื ืืื ืืืกืคืช ืืฉืืจื ืืืื ื /etc/dnsmasq.conf
:
dhcp-option = tag:lan, option:router, 192.168.1.100
ืืืคื 192.168.1.100
- ืืชืืืช ื-IP ืฉื ืืืื ืฉืื. ืื ืชืฉืืื ืืืืื ืืช ืืชืืืช ืื ืชื ืืืืืจืืช ืืจืฉืช ืืืื ืขืฆืื!
ื ืขืฉื ืฉืืืืฉ ืืกืคืื ืืืืื ืืื ืืืืื ืืช ืืืขื ืืืื ืืืืขื ืื ืชื. ืืฆื ืืฉืื ืืื:
ืืกืงื ื
ืืจืฉืช ืืจื USB ืขืืืืช ืืืืืจืืช ืืคืชืืขื: 100-120 Mb/s, ืฆืืคืืชื ืคืืืช. OpenVPN ืขืืืจ ื-70 Mb/s ืฉื ืชืขืืืจื ืืืฆืคื ืช, ืืื ืื ืื ืืจืื, ืืื ืืกืคืืง ืืฆืจืืื ืฉืื. ืืืกื ืื ืชื ืืื ื ื ืกืืจ ืืืื, ืืืฉืืืจ ืคืขืจ ืงืื. ืืกืชืืื ืืืืืื ืืืกืืจ ืืช ืืืืจื ื-Ethernet ื-USB Host ืืืืื, ืื ืฉืืืคืฉืจ ืืืืกื ืืืืกืืจ ืืืืืืื ืืขืืืื ืืฉืืจ ืงืฆืช ืืงืื.
ืขืืืฃ ืื ืืขืกืืง ืืคืืจื ืืืจืคืื ืืื ืืืงื ืืช
ืืงืืจ: www.habr.com