CasperG's Blog

Some People choose to see the ugliness in the world, the disarray. I choose to see the beauty.

Trojan的搭建

系统版本: CentOS 7 x64 (注意:不能使用CentOS 7 x64 bbr 版本的系统,会导致bbr plus内核无法正常安装)

1. 安装bbr plus加速

1
wget --no-check-certificate https://raw.githubusercontent.com/cx9208/Linux-NetSpeed/master/tcp.sh && chmod +x tcp.sh && ./tcp.sh

(Onedrive有本脚本的备份)

在脚本中按要求安装bbr plus加速内核和模块即可。

2. 安装Trojan

1
curl -O https://raw.githubusercontent.com/atrandys/trojan/master/trojan_mult.sh && chmod +x trojan_mult.sh && ./trojan_mult.sh

运行脚本,按要求输入已经做好dns解析的域名。

3. 配置Trojan

截至上一步,我们的Trojan其实已经开始工作了,但是通过配置Trojan,我们可以自定义Trojan监听的端口,密码等,以便不与其他服务冲突。

Trojan的配置文件位于/usr/src/trojan/server.conf

修改server.conf

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
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 50056, #端口号
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"grh123456" #密码
],
"log_level": 1,
"ssl": {
"cert": "/usr/src/trojan-cert/new.gurh16.top/fullchain.cer",
"key": "/usr/src/trojan-cert/new.gurh16.top/private.key",
"key_password": "",
"cipher_tls13":"TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
"prefer_server_cipher": true,
"alpn": [
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"session_timeout": 600,
"plain_http_response": "",
"curves": "",
"dhparam": ""
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"fast_open": false,
"fast_open_qlen": 20
},
"mysql": {
"enabled": false,
"server_addr": "127.0.0.1",
"server_port": 3306,
"database": "trojan",
"username": "trojan",
"password": ""
}
}

一般只需要修改端口号和密码。端口号建议避开443,避免和nginx冲突。

4. 启动Trojan

1
/usr/src/trojan/trojan -c /usr/src/trojan/server.conf

在Linux下搭建FTP服务

FTP服务让文件从本地到服务器的传输变得方便,但几乎每次搭建ftp都会遇到一些问题。本md记录了如何在linux下搭建ftp服务。

系统环境: CentOS 7 x64

1. 安装vsftpd

1
yum -y vsftpd

2. 配置vsftpd

vsftpd相关配置文件的默认位置为 /etc/vsftpd

编辑 vsftpd.conf

只有两行必须要改动,改为如下所示(即保留listen=yes,注释掉ipv6)

1
2
Listen=YES
#listen_ipv6=YES

在文件末尾插入

1
2
pasv_min_port=10060
pasv_max_port=10090

3. 添加FTP账户

首先需要创建一个ftp文件夹,这里我们使用/home/wwwroot

建议将文件夹权限设为www

1
2
chown -R www /home/wwwroot
chgrp -R www /home/wwwroot

执行如下语句添加用户并修改密码(username为用户名):

1
2
sudo useradd -d /home/wwwroot -s /bin/bash username
sudo passwd username

最后 启动vsftpd服务

1
2
3
sudo service vsftpd start #启动vsftpd
sudo service vsftpd stop #停止vsftpd
sudo service vsftpd restart #重启vsftpd

记得查看端口状态:

1
netstat -nlpt #ftp服务对应的默认端口是21端口且进程名为vsftpd

为hexo添加live2d

  1. 安装live2d模块

    npm install --save hexo-helper-live2d

  2. 安装live2d模型

    npm install {packagename}

    • live2d-widget-model-chitose
    • live2d-widget-model-epsilon2_1
    • live2d-widget-model-gf
    • live2d-widget-model-haru/01
    • live2d-widget-model-haru/02
    • live2d-widget-model-haruto
    • live2d-widget-model-hibiki
    • live2d-widget-model-hijiki
    • live2d-widget-model-izumi
    • live2d-widget-model-koharu
    • live2d-widget-model-miku
    • live2d-widget-model-ni-j
    • live2d-widget-model-nico
    • live2d-widget-model-nietzsche
    • live2d-widget-model-nipsilon
    • live2d-widget-model-nito
    • live2d-widget-model-shizuku
    • live2d-widget-model-tororo
    • live2d-widget-model-tsumiki
    • live2d-widget-model-unitychan
    • live2d-widget-model-wanko
    • live2d-widget-model-z16
  3. 相关配置

    在hexo的blog根目录下,编辑_config.yml文件,在最下方加入:

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
# Live2D
## https://github.com/EYHN/hexo-helper-live2d
live2d:
enable: true
# enable: false
scriptFrom: local # 默认
pluginRootPath: live2dw/ # 插件在站点上的根目录(相对路径)
pluginJsPath: lib/ # 脚本文件相对与插件根目录路径
pluginModelPath: assets/ # 模型文件相对与插件根目录路径
# scriptFrom: jsdelivr # jsdelivr CDN
# scriptFrom: unpkg # unpkg CDN
# scriptFrom: https://cdn.jsdelivr.net/npm/live2d-widget@3.x/lib/L2Dwidget.min.js # 你的自定义 url
tagMode: false # 标签模式, 是否仅替换 live2d tag标签而非插入到所有页面中
debug: false # 调试, 是否在控制台输出日志
model:
use: live2d-widget-model-haru
scale: 1
hHeadPos: 0.5
vHeadPos: 0.618
# use: live2d-widget-model-wanko # npm-module package name
# use: wanko # 博客根目录/live2d_models/ 下的目录名
# use: ./wives/wanko # 相对于博客根目录的路径
# use: https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json # 你的自定义 url
display:
superSample: 2
width: 150
height: 300
position: right
hOffset: 0
vOffset: -20
mobile:
show: true # 是否在移动设备上显示
scale: 0.5 # 移动设备上的缩放
react:
opacityDefault: 0.7
opacityOnHover: 0.8

注意:yml文件强制缩进,不要多打空格。

最后使用hexo g重新构建网站

路由器相关命令(持续更新~)

更改路由器发射功率

1
2
3
4
5
6
7
8
nvram set pci/1/1/maxp2ga0=120 #调整最大发射功率为28.5dBm
nvram set pci/1/1/maxp2ga1=120
nvram set pci/1/1/maxp2ga2=120
nvram set pci/2/1/maxp5ga0=120,120,120,120
nvram set pci/2/1/maxp5ga1=120,120,120,120
nvram set pci/2/1/maxp5ga2=120,120,120,120
nvram commit
reboot

然而,在未刷美版CFE之前,5g功率似乎被锁定在24dBm…

华硕AC1900p刷梅林固件并安装科学上网插件

须知: AC1900p与AC68U可以使用相同固件

1. 刷梅林固件

  1. 从恩山论坛下载梅林固件(ac68u):RT-AC68U_384.18_0_koolshare.trx (在OneDrive中有备份)

  2. 在路由器后台 固件更新中选择 上传固件

1610885813842.png

刷完后路由器会自动重启

2. 安装科学上网插件

刷梅林固件的意义就在于能够使用其内置的软件中心,而科学上网类的插件都已经被默认屏蔽了,所以我们需要手动安装。

  1. 下载科学上网插件(需使用arm384版本)

    shadowsocks_arm384_1.0.4.tar.gz (OneDrive有备份)

  2. ssh登陆路由器并安装科学上网

    可以使用软件中心下载的在线ssh登录,也可以用putty登录username@192.168.50.1(需要在后台开启ssh)

    1
    2
    3
    4
    5
    6
    7
    8
    远程计算机:
    scp shadowsocks_arm384_1.0.4.tar.gz username@192.168.50.1:/tmp #将安装包发送至路由器/tmp目录
    路由器终端:
    cd /tmp
    tar -zxvf shadowsocks_4.1.1.tar.gz #解压安装包
    cd shadowsocks
    chmod +x install.sh #给安装脚本添加执行权限
    ./install.sh #执行安装脚本

    安装完成后重启路由器,即可在软件中心找到 科学上网

v2ray/v2fly的搭建

本md记录了如何在一个vps上搭建v2ray (v2fly是新版本的v2ray)

1. 安装

  1. 同步时间
1
2
3
date -R
timedatectl set-local-rtc 1
timedatectl set-timezone Asia/Shanghai
  1. 安装源码
1
2
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh
  1. 安装及更新V2ray

    bash install-release.sh

  2. 安装geoip.dat和geosite.dat

    bash install-dat-release.sh

  3. 安装依赖

    yum update && yum install curl -y && yum install cron -y && yum install socat -y

  4. ##卸载v2ray

    bash install-release.sh --remove

2. 配置

  1. 配置文件位于/usr/local/etc/v2ray/config.json (需要自己创建)

配置文件:

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
{
"inbounds": [
{
"port": 50056, // 服务器端口
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "UUID", // V2ray客户端UUID
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws", // TCP或WS
"security": "tls", // security 要设置为 tls 才会启用 TLS
"tlsSettings": {
"certificates": [
{
"certificateFile": "/etc/v2ray/v2ray.crt", // 证书文件路径
"keyFile": "/etc/v2ray/v2ray.key" // 密钥文件路径
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}

需要更改的配置项有:端口、uuid、证书及密钥地址(经测试:证书和密钥可直接使用nginx网站的证书)

  1. 常用命令

    1
    2
    3
    systemctl restart v2ray
    systemctl status v2ray
    systemctl enable v2ray #开机自启动

    也可直接使用 /usr/local/bin v2ray -config /usr/local/etc/v2ray/config.json命令直接启动 (v2ray的程序安装在/usr/local/bin/v2ray, 配置文件在/usr/local/etc/v2ray/config.json)

3. 使用BBR plus 加速

安装四合一脚本

1
2
3
4
5
wget https://github.com/chiakge/Linux-NetSpeed/raw/master/tcp.sh #下载脚本

chmod +x tcp.sh #更改权限

./tcp.sh #运行脚本

在脚本中,先选择安装bbr plus内核,重启后再安装加速模块。

Docker的部署

1. 安装Docker

卸载旧版本docker

sudo apt-get remove docker docker-engine docker.io

安装所需依赖

sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

信任docker的GPG公钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加软件仓库

1
2
3
4
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"

安装docker

1
2
sudo apt-get update
sudo apt-get install docker-ce

2. docker命令

1
2
3
4
5
6
7
8
9
10
11
#启动docker
sudo systemctl start docker

#停止docker
sudo systemctl stop docker

#重启docker
sudo systemctl restart docker

#登录dockerhub账号
sudo docker login
镜像操作

符合命名规则的镜像由 用户名/库名:版本号 构成。(不写版本号默认为latest)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#列出镜像
sudo docker images

#从dockerhub拉取镜像
sudo docker pull <username>/<respo>:<tag>

#更改镜像tag
sudo docker tag iamge <username>/<respo>:<tag>

#上传镜像至dockerhub
sudo docker push <username>/<respo>:<tag>

#删除镜像
sudo docker rm image
容器操作

创建容器

sudo docker run [option] [镜像名] [向启动容器中传入的命令]

常用可选参数:

1
2
3
4
5
6
7
8
-i # 表示以“交互模式”运行容器
-t # 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
--name # 为创建的容器命名
-v # 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
-d # 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-p # 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
-e # 为容器设置环境变量
--network=host # 表示将主机的网络环境映射到容器中,容器的网络与主机相同

交互式容器

创建一个交互式容器,并命名为 myubuntu ,使用如下命令:

sudo docker run -it --name=myubuntu ubuntu /bin/bash

在容器中可以随意执行linux命令,就是一个ubuntu的环境,当执行exit命令退出时,该容器也随之停止。

守护式容器

如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出时,容器也不会停止。

sudo docker run -dit --name=myubuntu2 ubuntu

进入已运行的容器:

1
sudo docker exec -it [容器名或容器id] [进入后执行的第一个命令]

停止与启动容器

1
2
3
4
5
6
7
8
9
10
11
# 停止一个已经在运行的容器
sudo docker container stop [容器名或容器id]

# 启动一个已经停止的容器
sudo docker container start [容器名或容器id]

# kill掉一个已经在运行的容器
sudo docker container kill [容器名或容器id]

# 删除容器
sudo docker container rm [容器名或容器id]

将容器保存为镜像

1
sudo docker commit [容器名] [镜像名]

镜像备份与迁移

1
2
3
4
5
6
7
8
# 打包
sudo docker save -o [保存的文件名] [镜像名]

# 如
sudo docker save -o ./ubuntu.tar ubuntu

# 加载
sudo docker load -i ./ubuntu.tar

刚刚通关了看门狗:军团。在此简单的记录一下游玩的体验。主线通关时长:12小时(包含收集探员的时间)。剧情方面:主线剧情较短且为单结局。相比前作(狗1狗2)刻画的现代社会,本作的时间线发生在近未来。主角所在的DedSec黑客组织通过调查取证,完成各种任务最终自证清白,并将伦敦的“独裁者”阿尔比恩公司的恶行公之于众。流程中中出现的多股势力和反转的剧情很抓眼球。但是,我认为这款游戏在剧情方面是失败的。本作的剧情并不符合看门狗系列的剧情逻辑。前作看门狗2,一群有志黑客齐心协力解决当今社会由互联网引发的问题(如:隐私泄露等)。而在看门狗1中,狗哥所做的一切都是围绕着自己的家庭。剧情符合角色的身份,角色们做着力所能及的事情。这也正是看门狗系列剧情的核心:场景不大、小人物们做着平凡的小事。然而…在本作中,几个黑客竟然击败了私人安保公司(军队)并解放了伦敦???WTF我直接好家伙…这离谱的设定编剧没三年脑血栓能想的出来? 以至于玩到后期,场景越宏大,使命感越强,违和感也就越强。游戏玩法方面:本作主打的NPC招募系统属实让人眼前一亮,个人认为育碧在不固定主角这条道路上的探索是正确的。载具驾驶手感一如既往的烂,不做评价… 关卡设计重复度非常高,这算是育碧3A沙盒的通病,也暂不予评价… 本作在玩法方面最主要的问题是:看门狗是科幻风的潜入类游戏好吧??? 到了这一代怎么成无双突突突了?狗2那会我还经常把看门狗和杀手系列放在一起对比呢… 到了这,换上狠点的角色,拿上一把机枪,直接无脑突突突就vans了… 看门狗追求的解密呢?潜入暗杀呢?我相信很多看门狗的老玩家还是比较喜欢潜入解密类游戏的。育碧啊,探索新方向是好的,但是大方向千万别错啊… 还有,解放行政区的这个玩法我特别想拿出来说一说… 这个玩法怎么似曾相识?干,咱在1868年的伦敦不就搞了一次了吗?这跟刺客信条:枭雄简直一模一样啊…连解放行政区后庆祝的音乐都有几分相似… 当时玩枭雄就觉得解放行政区这个玩法冗长且重复,这里又给搞回来了…真有你的育碧。

总的来说,作为育碧旗下当红IP的正统续作,看门狗:军团算是一款合格的作品,但也仅仅是合格而已… 个人比较失望,且值不回票价…

以上仅代表个人观点,不具有权威性,欢迎探讨。

我们经常需要在两台不同的服务器间传输数据。scp命令可以通过ssh协议传输文件。

  1. 命令详解:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
scp [可选参数] file_source file_target 
可选参数:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
  1. 实例:

    本地上传至远程:scp local_file remote_username@remote_ip:remote_folder

    注意:复制目录需要用 -r 参数。

    远程下载至本地:scp root@www.runoob.com:/home/root/others/music/home/space/music/1.mp3


参考链接:

菜鸟教程-scp命令详解

本md记录了如何备份一个Linux系统并将其还原至新机器。

即:将/ 目录下所有内容全部打包为tar,并在新机器中解包。

1.备份

本a)可以直接通过tar对整个文件系统(’/‘)进行备份,但是有几点需要注意:

i. 不能备份以下几个文件(目录)

\1. 当前压缩文件

\2. /proc文件夹

\3. /lost+found文件夹

\4. /mnt文件夹

\5. /sys文件夹

\6. /media文件夹

b)所以,命令为:

1
2
tar cvpzf backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/backup.tar.gz --exclude=/mnt --exclude=/sys --exclude=/media /

2.还原

a) Linux可以再正在远行的系统中还原系统,如果当前启动无法启动,可以通过live cd来启动并执行恢复操作

b) 操作如下

1
tar xcpfz backup.tar.gz -C /

c) 需要额外创建目录

1
2
3
4
5
6
7
8
9
mkdir proc

mkdir lost+found

mkdir mnt

mkdir sys