frp frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,并且为 http 和 https 应用协议提供了额外的能力。 最近需要将内网的一些服务转发出来, 在自己的电脑上随时可用, 于是就研究了 frp 的文档, 操作记录如下。 frp 服务器配置 要使用 frp 进行内网穿透, 必须有一台有互联网 IP 的服务器, 否则没办法架设 frp 服务器。 服务器上根据操作系统安装 frp 的服务端, frps , 配置如下: [common] bind_addr = 0.0.0.0 bind_port = 7000 bind_udp_port = 70... 阅读全文
在 ASP.NET Core 默认的应用程序模板中, 配置文件的处理如下面的代码所示: config.AddJsonFile( path: "appsettings.json", optional: true, reloadOnChange: true ); config.AddJsonFile( path: $"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true ); appsettings.json 和 appsettings.... 阅读全文
下面是使用 PostgreSQL 内置的工具 pg_dump 和 psql 对超级表 conditions 进行备份和恢复的步骤。 备份 备份超级表架构: pg_dump -s -d old_db --table conditions -N _timescaledb_internal | \ grep -v _timescaledb_internal > schema.sql 将备份超级表的数据备份到 CSV 文件: psql -d old_db \ -c "\COPY (SELECT * FROM conditions) TO data.csv DELIMITER... 阅读全文
Linux 的 SSH 服务不仅仅能够远程登录和管理,还可以在本地计算机和服务器之间建立 TCP 通道, 实现代理、内网穿透、暴露内网服务等功能,简单可靠。 动态端口转发 将向本地指定端口发送的请求通过 SSH 服务器向外转发。 比如将 SSH 服务器作为一个代理服务器。 #!/bin/bash -e ssh -C -T -N -D 127.0.0.1:8088 ubuntu@192.168.6.67 将 127.0.0.1:8088 作为一个 SOCKS4/5 的代理, 比如 curl --proxy socks5://127.0.0.1:8088 https://ww... 阅读全文
Angular 最近发布了 9.0 版本, 需要先将一个模板项目升级至新版本。 虽然它提供了 ng update 命令来升级, 但是这个命令会自动调整 package.json 文件依赖项的顺序, 导致向其它项目合并时产生不必要的冲突。 为了不打乱现有的依赖项的顺序, 容易向其它派生项目进行合并, 同时也能明确知道究竟那些文件需要修改, 因此采用手工升级的办法。 项目结构采用 angular-cli 创建的的多项目架构, web 是一个应用, app-shared 是类库。 - angular.json - package.json - tsconfig.json - tslint.... 阅读全文
Termux 简介 Termux 可谓安卓上的开发神器, 注意, 不是开发安卓应用, 是在安卓手机上做开发的神器, 它的官方简介如下: Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT packa... 阅读全文
Cordova 简介 Cordova 非常的流行,因为它可以让 Web 开发人员来创建移动应用, 而且还可以通过 JavaScript 来调用设备硬件 API (GPS、蓝牙等)。 通常 Cordova 的做法是把应用的 Web 内容 (HTML, JavaScript, CSS) 打包到移动应用中, 这样看起来更像是一个本地应用, 即使在离线的情况下也可以使用。 其实还可以使用 Cordova 为现有的 Web 应用提供设备 API , 增强现有 Web 应用的功能。 这样做不仅可以使用服务端技术(aspx, cshtml, php等), 还可以随时更新 Web 应用, 只有在需... 阅读全文
三台服务器, 部署软件分别为: 服务器 软件 Web 地址 agportal.local Portal for ArcGIS 10.6 https://agportal.local:7443/arcgis/ agserver.local Server for ArcGIS 10.6 https://agserver.local:6443/arcgis/ nginx.local ... 阅读全文
什么是跨站请求伪造 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。【1】 跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。 想了解更多,请查看维基百科上的详细介绍。 使用 Asp.Net Core 内置的 Antiforgery Asp.Net Core 应用中内置了 Microsoft.AspNe... 阅读全文
需要一个远程桌面 App 进行演示, 安装 Windows 远程桌面服务太折腾, 需要安装域控制器, 再部署一整套的远程服务, 太折腾了, 如果只是演示的话, 没必要那么折腾。 本文介绍一种通过修改注册表来启用远程应用的方法, 可以用于远程应用演示。 在 Windows 上允许远程桌面访问 这个没什么好说的, 非常简单, 在系统属性中设置允许远程连接到此计算机即可。 修改注册表, 创建远程应用 打开注册表编辑器, 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Ser... 阅读全文
使用 .Net Core 开发 API 时, 有些 API 是需要认证, 添加了 [Authorize] 标记, 代码如下所示: [Route("api/[controller]")] [ApiController] public class AccountController : Controller { [HttpGet("info")] [Authorize] public async Task<ActionResult<AccountInfoModel>> GetInfo() { } } 客户端在没有认证之前, 应该返回 ... 阅读全文
什么是窗口函数? 一个窗口函数在一系列与当前行有某种关联的表行上执行一种计算。这与一个聚集函数所完成的计算有可比之处。但是窗口函数并不会使多行被聚集成一个单独的输出行,这与通常的非窗口聚集函数不同。取而代之,行保留它们独立的标识。在这些现象背后,窗口函数可以访问的不仅仅是查询结果的当前行。 可以访问与当前记录相关的多行记录; 不会使多行聚集成一行, 与聚集函数的区别; 窗口函数语法 窗口函数跟随一个 OVER 子句, OVER 子句决定究竟查询中的哪些行被分离出来由窗口函数处理。 可以包含分区 (PARTITION BY) 和排序 (ORDER BY) 指令, 这二... 阅读全文