常用APP

V2Ray Apps


F-Droid: https://f-droid.org/zh_Hans/ (Free Open-source apps)
NekoRay:https://github.com/MatsuriDayo/nekoray
Hiddify: https://github.com/hiddify

软件 平台 GitHub
NekoRay Windows 下载链接, 备用链接,桌面平台的NekoBox。
NekoBox Android 下载链接, 备用链接 ,后端核心为xray和sing-box。
Hiddify-Next 跨平台 下载链接, 备用链接 ,基于Sing-box内核,使用教程
HiddifyNG Android 下载链接, 备用链接 ,支持Xray
HiddifyN Windows 下载链接, 备用链接 ,支持Xray, v2fly Core
V2RayN Windows 下载链接, 备用链接 ,代理工具
V2RayNG Android 下载链接, 备用链接 ,移动端的代理工具
V2RayA Linux 下载链接 ,这是一个基于网页的代理工具
V2Ray-Core Kernal 下载链接, 备用链接 ,代理内核
Clash 平台 GitHub
Clash Verge Windows 下载链接, 备用链接, 旧版链接,基于Tauri开发的桌面端,集成Clash、Clash.meta内核
Clash Nyanpasu Windows 下载链接, 备用链接
Clash rev Windows 下载链接, 备用链接,归档仓库
ClashN Windows 下载链接,基于.Net的Clash桌面端
Clash.meta for Android Android 下载链接, 备用链接,Clash.meta安卓平台,可以在F-Droid下载
Clash.Meta Windows 下载链接, 备用链接 ,这是meta内核
Clash for Android Android 下载链接,Clash安卓移动端
Clash for Windows Windows 下载链接,Clash桌面端
Matsuri Android 下载链接,这是NekoBox的前身,项目已不再更新。
CatBox Android 下载链接 ,全平台的代理工具,支持的内核有xray和sing-box,支持多协议,开源软件。
NekoXray Windows 下载链接 ,桌面代理工具,基于Qt的跨平台代理配置管理器(后端Xray和sing-box),由AntiNeko开发。

注:删除线表示删库,斜体表示仓库已存档不再更新。

SSH连接工具

5款SSH工具, 视频

工具 说明
Tabby 开源美观的跨平台SSH连接工具,GitHub
Electerm 下载,多平台
Termius 这是一个基于Electron开发的SSH连接工具。界面漂亮,但响应有些延迟。下载
MobaXterm 这是免费的SSH工具,功能强大。代码高亮很亮眼。
FinalShell 国产SSH连接工具,界面美观,操作方便。高级功能收费。
WindTerm 体积小,开源免费工具,代码高亮显示。窗口可以置顶,这个就比较有用了。
Putty 下载,老牌SSH连接工具,界面较为传统。
WinSCP Windows平台下的开源SSH连接工具。
Bitwise 商业软件
Xterminal 界面漂亮,使用便捷

编译自定制OpenWRT固件

参考教程

  1. 更新系统,安装编译信赖
1
2
3
4
5
sudo apt update -y
# sudo apt full-upgrade -y

sudo apt-get -y install build-essential asciidoc binutils bzip2 curl gawk gettext git libncurses5-dev libz-dev patch python3.5 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf

  1. 下载源代码

打开科学上网工具,最好全局!以下源码三选一下载,也可以使用其他团队的源码!

1
2
3
4
5
6
7
8
9
git clone https://github.com/openwrt/openwrt                         # 官方版本
git clone https://github.com/coolsnowwolf/lede # lede版本
git clone -b 22.03 --single-branch https://github.com/Lienol/openwrt #lienol版本
git clone https://github.com/Lienol/openwrt.git
cd openwrt # 切换到文件目录

# 如需指定openwrt版本,可以使用以下命令
git tag # 查看稳定版,回车键拉到最低,按Q结束!
git checkout v22.03.3 # 指定版本,红色部分位版本号

Lienol大大配置的OpenWRT,默认是可以编译成功的。
只需要保证配置菜单的前三项设置与自己需要的固件型号一致的设置即可。

  1. 编译
1
2
3
4
./scripts/feeds clean
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
  1. 下载dl库
1
make -j8 download V=s
  1. 编译
1
2
3
make -j1 V=s

# 编译后的输出路径为:openwrt/bin/targets
  1. QuickStart

Run ./scripts/feeds update -a to obtain all the latest package definitions defined in feeds.conf / feeds.conf.default
Run ./scripts/feeds install -a to install symlinks for all obtained packages into package/feeds/
Run make menuconfig to select your preferred configuration for the toolchain, target system & firmware packages.
Run make to build your firmware. This will download all sources, build the cross-compile toolchain and then cross-compile the GNU/Linux kernel & all chosen applications for your target system.

RustDesk

RustDesk远程桌面


RustDesk是一款免费开源的远程桌面工具,支持自建中转服务节点。

RustDesk官网,
GitHUB

RustServer Install

GitHub

教程

Step1: 给服务器设置解析域名

Step2: 在中转服务器上安装Rust中转服务

https://github.com/rustdesk/rustdesk-server/releases
https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/

1
2
3
4
5
6
7
8
9
10
11
# 先放开服务器需要的端口
ufw allow 21115:21119/tcp
ufw allow 21116/udp
ufw allow 8000/tcp
sudo ufw enable

# 再安装Rust中转服务
wget https://raw.githubusercontent.com/dinger1986/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh

Step3: 保存中转服务器域名以及密钥

Step3: 设置需要远程的客户端,在RustDesk的网络设置中填写ID服务器、中继服务器和Key

注:***.xxx.xxx:8000 包含安装的脚本

Step4: 回到RustDesk首页,点击控制栏的连接服务,若提示连接成功则表示中继服务器设置成功

不被墙的vmess+ws

不被墙的vmess+ws


https://bulianglin.com/archives/ws.html

油管

Gcore

最佳的CDN节点优选IP工具

nodesCatch节点测速工具

获取CF IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
gcore.com
speedtest.gcore.com

kx-speedtest.tools.gcore.com
ww-speedtest.tools.gcore.com
hk2-speedtest.tools.gcore.com
la2-speedtest.tools.gcore.com
jp1-speedtest.tools.gcore.com
kal-speedtest.tools.gcore.com
lgs-speedtest.tools.gcore.com
ny2-speedtest.tools.gcore.com
pa5-speedtest.tools.gcore.com
pl1-speedtest.tools.gcore.com
sg1-speedtest.tools.gcore.com
sp3-speedtest.tools.gcore.com
sy4-speedtest.tools.gcore.com
teg-speedtest.tools.gcore.com
min4-speedtest.tools.gcore.com

cc1-speedtest.tools.gcore.com
hk2-speedtest.tools.gcore.com
jp1-speedtest.tools.gcore.com
kal-speedtest.tools.gcore.com
kx-speedtest.tools.gcore.com
la2-speedtest.tools.gcore.com
lgs-speedtest.tools.gcore.com
min4-speedtest.tools.gcore.com
ny2-speedtest.tools.gcore.com
pa5-speedtest.tools.gcore.com
pl1-speedtest.tools.gcore.com
sg1-speedtest.tools.gcore.com
sp3-speedtest.tools.gcore.com
sy4-speedtest.tools.gcore.com
teg-speedtest.tools.gcore.com
thn2-speedtest.tools.gcore.com
ww-speedtest.tools.gcore.com

几乎永不被墙的meek协议

https://bulianglin.com/archives/meek.html

Jupyter使用

Conda安装

Conda环境可用来为不同的程序设置不同的虚拟运行环境,因为不同的服务需要的环境不一样,
为每个服务设置不同的虚拟环境可以避免服务之间的依赖库冲突。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 对AMD架构
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

# 对ARM架构
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
bash Miniconda3-latest-Linux-aarch64.sh

# Conda的简单使用
conda create --name myenv
conda create --name myenv python=3.8

conda activate myenv
conda install numpy
conda deactivate

# Julia环境安装
pip install jill
jill upstream # 查看镜像名称
jill install --upstream TUNA # 从清华镜像安装最新版本的Julia环境

: Conda的安装应选择与机器架构相匹配的脚本。可查看:https://repo.anaconda.com/miniconda

Jupyter的使用

绘图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 导入库
import matplotlib.plt as plt
import pandas as pd
import numpy as np

# 读取csv数据
df = pd.read_csv("inp.asc",sep='\t',skiprows=6,header=None)

# 输出Dataframe中的数据
df.to_csv("out.tab",sep='\t',index=False,header='')

# 去除Dataframe中无效的数据
# 去除列中的NAN数据,因为有时输入数据中的最后一行可能包含'\t'字符。
df.dropna(axis=1)

# 画二维图:
plt.imshow(df)
plt.show()

# 输出Dataframe表头信息和前几行数据
print(df.columns)
print(df.header())

# 将Dataframe中的数据赋值给另一个变量
data = df.values

# 提取Dataframe中的数据:
row = df.iloc[1]
plt.plot(row)

col1 = df['T[s]']
col2 = df['h-[45,1]']
col3 = df['h-[50,1]']
col4 = df['h-[55,1]']

plt.plot(col1,col2,label='L$_1$')
plt.plot(col1,col3,label='L$_2$')
plt.plot(col1,col4,label='L$_3$')
plt.title('Dataframe Plot')
plt.xlabel('T[s]')
plt.ylabel('Depth[m]')
plt.legend()
plt.show()

AzureVPS开机

本文主要目的是分析Azure上的VPS开机过程要注意的事项。

Azure新注册用户可以体验12个月的免费服务,其中包括VPS,LightSail,AI翻译等功能。
同时赠送1个月使用时间的200美元额度。

Azure针对学生用户推出了特别的套餐,赠送100美元,期限是12个月。

虚拟机实例主要的收费项目为IP的收费。
公共IP的分配,有2种选择:标准SKU和基本SKU。
标准SKU只能分配静态IP,即该IP不会因为虚拟机的重启可关闭而消失;
基本SKU则会因为虚拟机重启或关闭而动态销毁,因此这种情况下IP是变化的。

从官方的说明中可以看到,2025年9月30日将停止基本SKU的使用。2025年3月31日之后,无法再创建新的地址。

很明显标准SKU比基本SKU高级很多,做了很多方面的改进。

公共IP地址,还可以设置DNS名称,这样就可以在CDN服务中使用CNAME进行映射解析。

Ubuntu远程桌面

假定服务器的系统为Ubuntu。
需要给服务器安装远程桌面,使本地计算机可以进行远程桌面连接。

Azure教程
油管教程

上面给了2个安装教程,其中微软Azure的教程安装的桌面为xfce,而油管视频教程中安装的是ubuntu-desktop。

下面主要以油管视频为例进行ubuntu远程桌面的安装说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1.添加新的管理员用户 
sudo -i
adduser rdpuser //rdpuser为新添加的用户名
sudo usermod -a -G rdpuser

# 2. 安装 Ubuntu 图形用户界面 (GUI)
sudo apt update
sudo apt install ubuntu-desktop -y

# 3. 安装和配置 RDP 服务器
sudo apt install xrdp -y
sudo systemctl status xrdp

sudo nano /etc/xrdp/xrdp.ini
# 修改:port=tcp://:3389
# -----------------------
# 重启xrdp服务
sudo systemctl restart xrdp

# 4. 在防火墙上打开 RDP 端口
sudo ufw allow 3389

Azure的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session

sudo apt-get -y install xrdp
sudo systemctl enable xrdp

sudo adduser xrdp ssl-cert

echo xfce4-session >~/.xsession

sudo service xrdp restart

Docker使用说明

安装Docker和Docker-compose

1
2
3
4
5
6
#===== For Ubuntu/Debian =====
# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

# 启动Docker
systemctl start docker

安装Docker-compose

1
sudo apt install docker-compose -y 

Docker使用,教程

1
2
3
4
5
# 创建镜像
docker build -t my-website .

# 运行容器
docker run -d -p 80:80 my-website

Docker安装

官方安装教程
CentOS平台安装Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#===== For Ubuntu/Debian =====
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# sudo sh get-docker.sh --mirror AzureChinaCloud
# sudo sh get-docker.sh --mirror Aliyun

#===== For CentOS =====
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 或者按如下方式安装(参考阿里云)
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce

Docker使用说明

构建容器镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 启动Docker
systemctl start docker

# 查看Docker运行状态
service docker stats

# 开启Docker
service docker start

# 构建容器镜像,注意末尾的 `.` 字符
docker build -t image_name .

# 运行容器
docker run --name App_Name -e OPENAI_API_KEY="sk-*******" -e CODE="00000,11111" -d -p 80:98732 image_name

命令说明:

参数 说明
--name App_Name 将容器名称设置为App_name
-d 让容器在后台运行
-p 80:98732 将容器端口98732映射为主机的80端口,即端口的形式为 主机端口:容器端口
-e OPENAI_API_KEY="sk-****" 设置容器中的环境变量 OPENAI_API_KEY
image_name 镜像名称,镜像名可以添加Tag(默认为latest),如image_name:tag

Docker 用法

Docker详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 查看docker状态 
docker stats

# 查看容器网络连接
docker network ls


# 查看容器镜像列表
docker image ls -a
docker image ls | docker images
docker image ls -f dangling-true
docker image --filter "dangling=true"
docker image ls -f dangling-true # list dangling images

# 删除容器镜像
docker rmi -f image_id
docker rmi -f NONE:NODE # REPOSITORY[:TAG]
docker rmi -f $(docker images --filter "dangling=true" -q) # delete dangling images


# 查看容器运行列表
docker ps
docker container ls
docker start CONTAINER_ID
docker stop CONTAINER_ID
docker rm CONTAINER_ID
docker logs CONTAINER_ID

# 进入容器环境
docker attach CONTAINER # 退出后容器也停止
docker exec -it CONTAINER bash # 退出后不影响容器

# 删除容器
docker container rm CONTAINER_ID # 删除特定编号停止运行的容器
docker container prune # 删除所有停止运行的容器

Docker-compose使用说明

安装Docker-compose,需要先安装Docker:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo apt install docker-compose -y 

docker-compose up # build container
docker-compose up -d # run background
docker-compose -f docker-compose.yml up

docker-compose build
docker-compose up --build

docker-compose ps # show status of the current container
docker-compose start
docker-compose stop
docker-compose restart
docker-compose down # delete container

订阅转换搭建工具

教程

工具 说明
sub-convert 后端转换工具,docker run -d --restart=always --name subconverter -p 25500:25500 tindy2013/subconverter:latest
sub-web 前端转换页面,docker run -d -p 58080:80 --restart always --name subweb careywong/subweb:latest
MyUrls 短链接生成,docker run -d --restart always --name myurls careywong/myurls:latest -domain example.com -port 8002 -conn 127.0.0.1:6379 -passwd '' -ttl 90

sub-web和MyUrls也可手动部署

sub-web应先修改好目录下面的/root/sub-web/src/views/Subconverter.vue文件,然后再构建容器。

1
2
3
4
5
6
7
8
9
10
11
12
# 摘取仓库代码 
git clone https://github.com/CareyWang/sub-web.git sub-web
git clone https://github.com/CareyWang/MyUrls.git MyUrls

# 构建节点转换前端网页,应先修改好Subconverter.vue文件
docker build -t subweb-local:latest .
docker run -d -p 58080:80 --restart always --name subweb subweb-local:latest

# 构建MyURls短链接工具,应先修改好.env文件
docker build -t subweb-local:latest . # 构建镜像
docker run -d -p 58080:80 --restart always --name subweb subweb-local:latest

常用容器构建举例

名称 说明
Pandora ChatGPT的反代聊天工具,可实现国内的无墙访问,并解除一些功能上的限制
ChatGPT-Next-Web 使用OpenAI的API接口搭建的聊天工具,可部署在Vercel、zeabur等免费的容器上,需要设置API_KEY,消耗用户的Token。
gpt_academic 多模型GPT学术辅助工具

部署可以通过conda虚拟环境或使用Docker容器进行,建议使用容器部署。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Pandora 
git clone https://github.com/lmzxtek/pandora-cloud-serverless.git
cd pandora-cloud-serverless
python3 -m pip install -r requirements.txt

nohup python3 -u main.py &

# ChatGPT-Next-Web
docker build -t chatgptnextweb .
docker run --name ChatGPTNextWeb -d -p 3000:3000 -e OPENAI_API_KEY="sk-***" -e CODE="12345" chatgptnextweb

# gpt_academic
git clone https://github.com/binary-husky/gpt_academic.git

docker build -t gptacademic . # 构建镜像
docker run --name GPT-Academic -it -e WEB_PORT=50923 -d -p 50923:50923 gptacademic # 运行容器
docker run --name gptaca -it \
-e API_KEY="sk-******" \
-e AUTHENTICATION='[("qq","12345")]' \
-e WEB_PORT=50923 \
-e AUTO_CLEAR_TXT=True \
-e ADD_WAIFU=True \
-d -p 50923:50923 \
gptacademic

# nohup python3 main.py &

域名反代管理工具

使用Caddy解析到机器端口

官方教程

1
2
3
4
5
6
7
# 安装caddy 
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo apt-key add -
echo "deb [trusted=yes] https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main" | sudo tee /etc/apt/sources.list.d/caddy-stable.list

sudo apt update
sudo apt install caddy
caddy version
  1. Caddy可以采用Caddyfile或者json配置文件两种方式运行。Caddyfile可较为方便自行构建配置信息,json则主要用于自动配置。

Nginx Proxy Manager

Nginx Proxy Manager是一款服务器管理工具,可进行域名绑定、反向代理、重定向、端口转发和证书管理。

创建模板文件 docker-compose.yml

1
2
3
4
5
6
7
8
9
mkdir nginx_proxy_manger
cd nginx_proxy_manger
touch docker-compose.yml

nano docker-compose.yml # 按下面提供的模板进行修改

# 构建并后台运行容器
docker-compose up -d

模板内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: '3.8'
services:
app:
# image: 'jc21/nginx-proxy-manager:latest' # English
image: 'chishin/nginx-proxy-manager-zh' # Chinese
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '81:81' # Admin Web Port
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
# Add any other Stream port you want to expose
# - '21:21' # FTP

# Uncomment the next line if you uncomment anything in the section
# environment:
# Uncomment this if you want to change the location of
# the SQLite DB file within the container
# DB_SQLITE_FILE: "/data/database.sqlite"

# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'

volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

默认登录用户名和密码

Email: admin@example.com
Password: changeme

Apache2

1
2
3
4
5
6
7
8
9
10
apt update 
apt install apache2

systemctl start apache2 # 启动Apache2服务
systemctl stop apache2 # 停止Apache2服务
systemctl restart apaceh2 # 重启Apache2服务

sudo a2ensite example.com.conf # 启用虚拟主机
sudo a2dissite example.com.conf # 禁用虚拟主机

常用终端命令

Window

> code . # 以当前目录为工作目录打开 VS Code
> start . # 以当前路径打开资源管理器
> powercfg -h off # 清除休眠文件

Ubuntu

> apt install app # 安装名为app的应用程序 
> apt update # 更新软件至可支持的最高版本
> ps 
> kill 
> top 
> pwd # 显示当前路径 
> sudo -i # 切换为root用户
> source ~/.bashrc # 更新环境变量到当前环境中
> touch a.txt # 创建一个名为a.txt的文件 
> cmd [options] & # 将当前命令在后台运行
> ctrl+l : clean screen 清屏操作
> which python3 # 查找python3的版本和路径
> sudo ln -s /src /dis # 创建软链接 
> uname -r # Release 
> uname -m # Machine 

显示系统版本:

> uname -a 
> lsb_release -a 
> neofetch 
> screenfetch 
> cat /etc/issue # cat=concatenate 读取文件内容并显示在当前容器
> cat /proc/version 
> cat /proc/cpuinfo 

CentOS

> yum install app # install app 
> yum list # list installed packages 
> df -h # Disk Info