npm修改全局包安装路径
默认配置
默认安装路径:%AppData%\Roaming\npm
全局缓存路径:%AppData%\Roaming\npm_cache
安装全局包命令: npm install -g <包名>
修改方法
1 | # 设置全局包安装路径 |
添加环境变量
1 | NODE_PATH="<全局安装包路径>\node_modules\" |
默认安装路径:%AppData%\Roaming\npm
全局缓存路径:%AppData%\Roaming\npm_cache
安装全局包命令: npm install -g <包名>
1 | # 设置全局包安装路径 |
添加环境变量
1 | NODE_PATH="<全局安装包路径>\node_modules\" |
1 | # 官方源 |
1 | # 修改镜像源 |
1 | sudo vim /etc/sysctl.d/99-sysctl.conf: #重启后生效 |
1 | sudo vim /etc/security/limits.conf: |
netfilter/iptables 为 Linux 内核级有状态防火墙。支持连接跟踪,包含四种有效状态:ESTABLISHED、INVALID、NEW、RELATED。
whereis iptablesapt-get install iptablesmodprobe ip_tables编辑策略文件:vi /etc/iptables.rules
1 | *filter |
[!NOTE]
INPUT 为入口,OUTPUT 为出口,REJECT 为禁止。若需完全开放出口,将默认策略改为-A OUTPUT -j ACCEPT。
iptables-restore < /etc/iptables.rulesiptables -L -nln -s /lib/systemd/system/rc-local.service /etc/systemd/system/vi /lib/systemd/system/rc-local.service,末尾追加 [Install] 段vi /etc/rc.local,写入 iptables-restore < /etc/iptables.ruleschmod +x /etc/rc.local1 | # 查看现有规则 |
1 | # 开放常用端口 |
1 | # 设置默认策略 |
1 | service iptables save |
| 链 | 方向 | 说明 |
|---|---|---|
| INPUT | 入站 | 目标为本机的数据包 |
| OUTPUT | 出站 | 源为本机的数据包 |
| FORWARD | 转发 | 经本机路由转发的数据包 |
| 状态 | 说明 |
|---|---|
| ESTABLISHED | 已建立的连接 |
| NEW | 新连接请求 |
| RELATED | 与已有连接关联的数据包 |
| INVALID | 无法识别或无效的数据包 |
TDengine 是一款开源、高性能、云原生的时序数据库(Time Series Database, TSDB),专为物联网、车联网、工业互联网、金融、IT 运维监控等场景设计。
taosd: 数据库核心服务。taosAdapter: 提供 RESTful 和 WebSocket 接口。taosKeeper: 系统监控指标收集。taosExplorer: Web 管理控制台。创建 docker-compose.yml 文件:
1 | version: '3.9' |
启动服务:docker-compose up -d
1 | docker exec -it tdengine bash |
1 | taosBenchmark -y |
test 数据库下创建一张名为 meters 的超级表,包含 10,000 张子表,每表 10,000 条记录。1 | taos |
1 | -- 在 taos 提示符下执行 |
1 | ALTER USER root PASS 'YourNewPassword'; |
1 | taos -uroot -pYourNewPassword |
http://<服务器IP>:6060,使用数据库用户名密码登录 taosExplorer 进行可视化管理。假设使用 3 台服务器,所有节点均部署 TDengine。
| 服务器 | IP 地址 | 部署服务 | 对外代理端口 (Nginx) |
|---|---|---|---|
| node0 | 192.168.4.211 | TDengine | - |
| node1 | 192.168.4.115 | TDengine | - |
| node2 | 192.168.0.37 | TDengine, Nginx | 16041, 16043, 16060 |
端口说明:每个 TDengine 容器需开放与单节点相同的端口(6030, 6041, 6043, 6060, 6044-6049)。
(1)所有节点:准备配置文件
1 | # 1. 启动临时容器获取默认配置 |
(2)所有节点:配置集群首个节点 (firstEp)
编辑 conf/taos.cfg 文件,所有节点的此配置必须相同。
1 | # 指向规划中第一个启动的节点(例如 node0) |
(3)所有节点:启动 TDengine 服务
创建 docker-compose.yml,使用 host 网络模式以便节点间通信。
1 | version: '3.9' |
启动:docker-compose up -d
启动顺序建议:先启动 firstEp 指向的节点(node0),再启动其他节点。
1 | docker exec -it tdengine taos |
1 | SHOW DNODES; |
status 为 ready 的节点。1 | -- 在 dnode 2 (node1) 上创建第二个 Mnode |
leader 和一个 follower Mnode。在 node2 上部署 Nginx,对外提供统一的访问入口,实现 taosAdapter (REST API)、taosKeeper (监控) 和 taosExplorer (Web) 的负载均衡。
nginx.conf)1 | user root; |
创建 docker-compose-nginx.yml:
1 | version: '3.9' |
启动:docker-compose -f docker-compose-nginx.yml up -d
通过 Nginx 代理访问 REST API:
1 | curl -L 'http://192.168.0.37:16041/rest/sql/test' \ |
应返回包含测试数据的 JSON 响应。
host 网络或确保容器间在 6030-6049 端口上能直接通信。/var/lib/taos 目录以防止数据丢失。firstEp**:此配置是集群组建的关键,必须正确且一致。将 OpenCV 处理后的图像直接进行 RTSP 推流,支持多种实现方案。
1 | gst-launch-1.0 filesrc location=D:\5.mp4 ! decodebin ! videoconvert ! x264enc ! rtspclientsink location=rtsp://127.0.0.1:8554/live |
1 | gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:8554/live ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink |
1 | #include <gst/gst.h> |
| 步骤 | 操作 |
|---|---|
| 1 | 初始化 GStreamer |
| 2 | 创建管道和元素(appsrc → videoconvert → x264enc → rtph264pay → rtspclientsink) |
| 3 | 配置 appsrc 参数(分辨率、帧率、格式) |
| 4 | 启动管道 |
| 5 | 循环读取摄像头帧并推送 |
1 | #include "rtspencoder.h" |
1 | RTSPEncoder::RTSPEncoder(const char* rtspUrl, int outputWidth, int outputHeight, QObject* parent) |
1 | int RTSPEncoder::initialize() |
1 | void RTSPEncoder::encodeFrameAndSend() |
1 | void RTSPEncoder::AddFrame(cv::Mat& imGBR, int nFrame) |
1 | void RTSPEncoder::cleanup() |
1 | void push() |
| 方案 | 优点 | 缺点 |
|---|---|---|
| GStreamer | 灵活性高,延迟低 | 代码复杂 |
| FFmpeg | 功能强大,兼容性好 | 学习成本高 |
| OpenCV GStreamer | 实现简单 | 延迟较高 |
1 | int main1() |
1 | # 文件推流 |
| 方案 | 适用场景 |
|---|---|
| GStreamer | 低延迟、高性能推流 |
| FFmpeg | 复杂编码需求、跨平台 |
| OpenCV GStreamer | 简单场景、快速实现 |
本文档整合了多种SOCKS5代理服务器的搭建方法,包括SS5、Dante、Squid和Microsocks,旨在为不同需求和场景提供选择。
| 方案 | 特点 | 适用场景 | 复杂度 |
|---|---|---|---|
| SS5 | 经典SOCKS5服务器,功能全面,支持用户认证。 | 需要稳定、功能完整的SOCKS5代理。 | 中等 |
| Dante | 轻量级、高性能的SOCKS4/5服务器,配置灵活。 | 对性能和资源占用有要求的生产环境。 | 中等 |
| Squid | 功能强大的HTTP/HTTPS缓存代理,也支持SOCKS。 | 主要需求为Web缓存,同时需要SOCKS功能。 | 较高 |
| Microsocks | 极致轻量、内存占用极小的SOCKS5服务器。 | 资源受限的VPS、临时或简单代理需求。 | 低 |
环境建议:CentOS 7.x, Debian 7+, Ubuntu 14.04+。避免使用CentOS 8.x(兼容性问题)。确保服务器防火墙/安全组已开放代理端口。
SS5是一个功能完整的SOCKS5代理服务器。
1. 安装依赖与源码
1 | yum -y install gcc gcc-c++ automake make pam-devel openldap-devel cyrus-sasl-devel openssl openssl-devel |
2. 服务注册与自启
1 | chmod +x /etc/init.d/ss5 |
3. 核心配置
/etc/opt/ss5/ss5.conf):1 | auth 0.0.0.0/0 - u |
/etc/opt/ss5/ss5.passwd):1 | username password |
/etc/sysconfig/ss5):1 | SS5_OPTS=" -u root -b 0.0.0.0:8899" |
4. 启动与测试
1 | service ss5 start # 或 restart |
使用Proxifier等客户端工具,配置代理服务器地址和端口进行连接测试。
Dante是一个高效、配置灵活的SOCKS服务器。
1. 安装 (CentOS 7)
1 | rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm |
2. 基础配置 (/etc/sockd.conf)
以下是一个允许所有连接(无认证)的简单配置:
1 | errorlog: /var/log/sockd.errlog |
注意:需创建日志目录 mkdir /var/run/sockd。
3. 启动与管理
1 | systemctl start sockd |
4. 高级配置
method: none 改为 method: username,并使用系统用户登录。client pass 和 socks pass 块中,通过 from: / to: 字段精细控制源IP和目标地址。Squid主要用作HTTP代理,但也可配置为SOCKS代理,并支持强大的访问控制。
1. 安装
1 | sudo apt-get install squid -y # Ubuntu/Debian |
2. 基础正向代理配置
/etc/squid/squid.conf,添加允许的客户端网段:1 | acl localnet src 172.28.0.0/16 |
/etc/squid/conf.d/debian.conf 中取消注释:1 | http_access allow localnet |
sudo service squid restart3. 强大的访问控制示例 (在squid.conf中配置)
1 | # 1. 禁止特定IP |
4. 透明代理配置 (需双网卡)
squid.conf 中添加拦截端口。1 | http_port 3129 intercept # HTTP透明代理 |
1 | openssl req -new -newkey rsa:4096 -sha256 -days 3650 -nodes -x509 -keyout myCA.pem -out myCA.pem |
适用于内存资源紧张的VPS。
1. 安装
sudo apt install microsocks1 | wget http://ftp.barfooze.de/pub/sabotage/tarballs/microsocks-1.0.4.tar.xz |
2. 直接运行
1 | microsocks -1 -u USERNAME -P PASSWORD |
-1: 认证一次后IP加入白名单。-u / -P: 用户名和密码。0.0.0.0:1080。3. 配置为Systemd服务 (推荐)
/etc/systemd/system/microsocks.service。/etc/microsocks.conf,定义 MICROSOCKS_LOGIN 和 MICROSOCKS_PASSW。sudo systemctl enable --now microsocks1 | curl --socks5 USER:PASS@SERVER_IP:PORT https://www.google.com/ |
1 | export http_proxy=socks5://SERVER_IP:PORT |
systemctl status xxx)。journalctl -xe, /var/log/xxx.log)。squid-openssl,正确生成并配置了CA证书,且客户端已导入该证书。请根据您的具体需求(性能、功能、易用性、资源占用)选择最合适的方案进行部署。
在 Podman Desktop 设置中启用 **Experimental (Docker Compatibility)**:
1 | # 启用后即可使用 docker CLI 语法 |
因未安装 Docker Desktop,需通过 winget 独立安装:
1 | PS C:\> winget install Docker.DockerCLI |
安装完成后重启 PowerShell,验证连接:
1 | PS C:\> docker version |
1 | # 拉取镜像 |
创建 ASP.NET Core MVC 项目并启用容器支持,确认:
| 项目 | 说明 |
|---|---|
| Podman Desktop | Windows 环境运行 WSL2,后端为 podman-machine |
| Docker CLI Context | npipe:////./pipe/docker_engine 与 Podman 通信 |
| Experimental Compatibility | 启用后 docker CLI 可兼容操作 Podman |
| 独立 Docker CLI | 通过 winget 安装 Docker.DockerCLI 包 |