Personal Blog

轶哥

轶哥的头像

妄图改变世界的全栈程序员。

Latest Stories

最新文章 · 第 12 页

记录技术实践、产品思考,以及持续探索世界的过程。

Nginx通过域名进行TCP反向代理

使用Nginx可以实现根据域名进行TCP反向代理到不同的内网服务器。

应用场景

一家公司购买了很多服务器,为了节约成本,使用了阿里云/腾讯云的NAT网关,通过几台网关服务器进行NAT出口,通过大量内网服务器进行数据计算,节约公网带宽费用且确保了内网服务器不因公网IP泄露导致被攻击。

aliyun.png

(上图来自阿里云)

但是在用作网关的出口服务器上,需要配置SSL域名证书。如果在网关配置域名证书,各个业务对证书的要求不一样,网关服务器管理员疲于运维。因此,通过TCP反向代理到内网服务器,让内网服务器管理员自行配置SSL证书。

云服务器Linux磁盘扩容

云服务器云盘扩容相关文章挺多的,坑也比较多。特整理正确操作如下。

支持的发行版

  • Ubuntu
  • CentOS
  • Debain
  • Alpine
  • Arch

Ubuntu 16.04Ubuntu 18.04Ubuntu 20.04测试过。

CentOS 6CentOS 7CentOS 8测试过。

阿里云腾讯云AWS EC2实测过扩容,以上云服务商都支持云盘扩容。

需要注意的是,虽然扩容方法支持系统盘和数据盘,然而部分云服务提供商并不支持系统盘扩容,只支持在购买云服务器/VPS的时候选择系统盘大小。通常这些服务商都支持对系统盘进行备份,可以通过新购服务器还原系统盘镜像然后再执行此文操作的方式进行迁移扩容。

此方法不支持ARM服务器扩容。一般来说,ARM服务器、Raspberry Pi、NanoPi等arm架构的设备都有专门的扩容方法,需要查阅相应文档进行扩容。

Node.js在VM环境使用ECMAScript modules

vm模块允许在V8虚拟机上下文中编译和运行代码。但是不是安全机制,如果有沙箱(sandbox)需求,可以考虑https://github.com/patriksimek/vm2

在VM环境中使用ECMAScript modules,即在VM环境中可以用import代替require引入某个模块,避免Cannot use import statement outside a module错误,也可以用export代替module.exports

我的使用场景:

通过Node.js在VM环境使用ECMAScript modules之目的,是为了构建一个虚拟环境(可控的上下文内容)动态执行一些代码,方便在复杂系统中构建小型脚本动态的快速验证一些想法。

https://github.com/yi-ge/api-proxy这个小项目中也有用到vm模块。

Node.js 获取项目根目录

介绍一个非常实用的小技巧获取node.js项目根目录

假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件。

获取node项目根目录

在node.js只提供了一个__dirname全局变量。通过__dirname可以获得“C:\wwwroot\yidata\server”。这时需要用到path。

ESXi + Frp 内网穿透

ESXi + Frp 实现内网穿透,可以做到远程管理ESXi。由于ESXi默认启用了SSL本地证书,因此配置方法与传统http站点反向代理有所不同。

[esxi-web]
type = tcp
local_ip = 10.10.10.254
local_port = 443
remote_port = 6012

可以看到上述绑定的本地端口号是443。这里的type只设置为tcp,远程访问地址:https://xx.xx.xx.xx:6012,注意,需要以https开头并忽略证书错误。

ESXi 7.0 安装教程

VMware vSphereVMware虚拟化平台VMwarev Sphere的两个核心组件是ESXivCenter ServerESXi是用于创建并运行虚拟机和虚拟设备的虚拟化平台。vCenter Server是一项服务,用于管理网络中连接的多个主机,并将主机资源池化

可以简单理解为ESXi是安装在物理机上的,通过vCenter Server将多个物理机资源整合起来。

目前ESXi可以独立运行在某个物理设备上,为设备提供虚拟化平台(虚拟机)。例如在软路由中安装ESXi 7.0,以实现爱快+OpenWrt等组合搭配。

ESXi 7.0.0 升级到 ESXi 7.0 Update 1

ESXi 7.0 Update 1 升级说明:《VMware ESXi 7.0 Update 1 Release Notes》,解决了诸多Bug。

随着VMware vSphere 7 Update 1的发布,不少VMware用户正在考虑将生产基础架构升级到新版本。

如何安装ESXi 7 Update 1

有多种安装ESXi 7 Update1的方法。

  1. 全新安装ESXi 7 Update 1
  2. 命令行升级
  3. vSphere Update Manager
  4. vSphere Lifecycle Manager

升级前需参考《ESXi宿主机联网配置》让ESXi宿主机联网。

也可以下载最新版的ISO文件,通过刻录光盘或U盘进行升级安装(方法一)。

以下以第二种方式为例。

ESXi无法添加网络适配器问题解决

netselect.png

ESXi有可能会出现无法添加网络适配器,即无法选择虚拟网卡,网络适配器没有选项(如图)。这个问题是错误的配置导致的,并非系统BUG。

netnumber.png

此时网络数量可能显示为0,或者与实际网络数量不符。

斐讯N1刷OpenWrt及开启旁路由/单臂路由教程(Mac&Win)

经常被朋友安x,由于可玩性强近期涨价了,最终还是忍不住入手。真香!😂

准备

  • 公对公USB数据线
  • U盘
  • 显示器 + USB鼠标 + HDMI线

原理

N1默认系统是Android,不过开机只显示一个简单界面。

  1. 先通过adb远程连接设备,然后发命令重启至fastboot模式,刷入bootbootloaderrecovery进行降级。
  2. 降级后使用U盘启动U盘中的OpenWrt系统(无需刷Armbian),然后使用ssh连接到设备,将U盘中的系统写入到emmc
  上一页 下一页